Message Passing Interface有人用过没

qyxqyxqyx 2013-06-24 01:52:54
我有几个问题。
1.从这儿下的源码,不知道怎么使用和编译http://www.open-mpi.org/
2.使用boost库中的MPI

// boostMPI_test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <boost/interprocess/shared_memory_object.hpp>
#include <boost/interprocess/mapped_region.hpp>
#include <iostream>

using namespace boost::interprocess;

int _tmain(int argc, _TCHAR* argv[])
{
try
{
shared_memory_object sharedmem1(create_only,
"Hello",
read_write);
sharedmem1.truncate(256);

mapped_region mmap(sharedmem1 , read_write , 256);

char * str = static_cast<char*>(mmap.get_address());

assert(str);

strcpy_s( str , -1 , "Hello world!\n");

system("pause");
}
catch (interprocess_exception & e)
{
std::cout<<e.what()<<std::endl;
shared_memory_object::remove("Hello");
}
return 0;
}



运行之后,发现有异常。异常是捕获到的interprocess_exception.
拒绝访问。这个是什么情况。
...全文
197 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zybjtu 2013-06-24
  • 打赏
  • 举报
回复
开源嘛,windows本身就是闭源的,开源项目极少,不然岂不是对windows最大的讽刺?
Dobzhansky 2013-06-24
  • 打赏
  • 举报
回复
qyxqyxqyx 2013-06-24
  • 打赏
  • 举报
回复
下了个MPICH2的预编译版,可以直接使。
感谢楼上的回答。
之前下过各种源代码,比如mapreduce的一个实现phoenix2,看了里面的代码,貌似是linux下某些版本的实现。是不是现在很多开源的东东,都有linux版本较多,windows下的较少???
wangeen 2013-06-24
  • 打赏
  • 举报
回复
编译: 首先默认的编译器是不行的要换成mpi相关的编译器进行编译, 运行的时候一般都是 mpirun -np 2 ./youprogram yourprogramoption
Dobzhansky 2013-06-24
  • 打赏
  • 举报
回复
编译了解过 MPICH2, open mpi 没用过, 是不是要用 cmake? boost 不会

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧