【发布时间】:2014-06-23 03:32:44
【问题描述】:
我尝试使用 numa_alloc_onnode() 通过运行以下代码在 32GB 节点上分配 40GB 内存。但是它不会报告任何错误。
a = (int *) numa_alloc_local (sizeof(int) * GB_8 * 5);
if (a == NULL)
printf("a error\n");
for ( i = 0; i <GB_8*5; i++ )
a[i] = (int)i;
printf("a done\n");
这是我机器的规格。 http://i.stack.imgur.com/bM2Gr.png
谁能帮忙解释一下?
【问题讨论】:
-
您分配 40G x sizeof(int) 而不是 40GB(假设 GB_8 为 8GB)。但这并不能回答问题
-
我想见你
printf("0x%llX\n", (sizeof(int) * GB_8 * 5)); -
对不起,GB_8 = 8*1024*1024*1024/4,我已经除以4了。