24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1674  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

460536813

新虫 (初入文坛)

[求助] MPI文件分发

请问,我在MPI环境下,想把某个文件,比如说计算目标参数文件,分发到各个节点,用什么方法比较好。

如果用my_id =0的节点读文件,my_id!=0节点写文件,感觉有点搓。。。MPI里面有没有文件广播分发的功能?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
余泽成: 金币+3, 专家考核, 谢谢参与应助! 2012-03-30 14:07:03
数据并行,你得先读进来,然后分发不同的部分给不同的cpu
你所谓的文件分发是什么,复制多份文件给不同的cpu?那还不如读进来数据,然后分发数据
因为只要有一个cpu打开文件,文件就被锁住了,直到释放资源,其他cpu才会继续读取,
mpi程序要注意的就是同步问题,你这个需求不实际啊
只能:

1.master读,然后分发数据到各个unit,计算完后collect数据,写结果;
2.每个unit都copy一份数据,根据当前unit的id计算offset,然后同时读取各自数据计算,运算结束自己写自己的文件,最后master再copy所有文件,合并.

其实2的方案,所有unit读写一个文件也可以,可是得不断测试文件读写状态,当文件空闲时才能读写,跟1是一样的,而且逻辑还不如1清楚.
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
6楼2012-03-29 03:51:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

引用回帖:
8楼: Originally posted by 460536813 at 2012-04-27 12:57:19:
广播 我知道的   就是分发一下么  不需要同步什么的

在collect之前最好同步一下,保证能收到所有的数据
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
9楼2012-04-28 17:28:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 460536813 的主题更新
信息提示
请填处理意见