在我的C ++应用程序中,我应该每次都在进程间共享信息。它使用MPI_Send和MPI_Recv运行良好,但在我的工作中,当发送/ recv消息互相发送时,进程形成的“同步障碍”是不必要的。即使使用MPI_Isend等类型,程序中也会出现“同步障碍”。
找到的解决方案是将信息放在文件上(以便在没有消息的情况下共享数据),以便进程可以获取/放置数据,而无需等待另一个数据到达特定的代码点。它也有效,但它会使程序失去时间性能而且这个想法正好相反。
因此,存在一个可以与上面描述的文件应用程序类似地工作的存储器(或方式)空间?无需使进程通过消息进行通信而且需要安全性?
PS:“同步障碍”我指的是该进程必须等待另一个发送/接收信息的时间。
答案 0 :(得分:1)
是的,可以在不与MPI同步的情况下访问内存。这称为单向通信或RMA(远程内存访问)。称为窗口的存储区域必须明确地用于此,例如,使用MPI_Get
。使用System.setProperty("phantomjs.binary.path", "lib/phantomjs.exe");
WebDriver driver = new PhantomJSDriver();
和success: function(data)
{
var jsonDate = data.myDateField;
var value = new Date(parseInt(jsonDate.toString().substr(6)));
var finalResult = value.getMonth() + 1 + "/" + value.getDate() + "/" +
value.getFullYear();
}
等功能可以明确内存访问。请注意,它们中的每一个都是非阻塞的,并且必须显式同步数据移动。总体而言,存在相当多的样板和陷阱,因此请仔细阅读材料。