我在linux机器上使用基于POSIX API的共享内存来在多个MPI进程之间进行通信。我有一个可行的解决方案,但我想知道如何有效地使用共享内存空间来存储大数据。
我有一台64GB共享内存限制的机器,我可能需要写入数据> 64GB进入这个空间,但这些都是1-2GB的小块。
我想知道的是:
我正在使用shm_unlink()但它似乎没有清除/ dev / shm /
中的空格请帮忙!
答案 0 :(得分:0)
来自http://pubs.opengroup.org/onlinepubs/009695399/functions/shm_unlink.html中的sum_unlink说明 似乎实际上推迟了内存删除,如下所示:
如果对象取消链接时存在对共享内存对象的一个或多个引用,则在shm_unlink()返回之前应删除该名称,但是应该推迟删除内存对象内容,直到所有打开和映射引用为止。共享内存对象已被删除。
我希望这有帮助。