24小时热门版块排行榜    

查看: 1874  |  回复: 16

田山东

捐助贵宾 (著名写手)

引用回帖:
5楼: Originally posted by libralibra at 2012-08-28 17:25:17
4年前搞过的MPI,早都不知道哪儿去了
可以看看这个c的例子,很简单,但是基本的步骤都有

http://hi.baidu.com/xukeke2600/blog/item/dec0d512a15e4a47f2de32fe.html...

问题找到了。我的程序串行的时候最大内存占到48%,并行运算,8个节点,我发现每个节点占内存占到了12%多,妈呀,内存占满了,然后再继续运算的话就退出了。
很奇怪,串行运算内存48%,8个节点同时运算的话每个节点占内存应该在8%吧?怎么会达到12%呢?
everythinghasitsseason.enjoyyourlife.
11楼2012-08-29 19:49:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

可能跟你分发数据的代码有关系
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
12楼2012-08-29 19:51:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

引用回帖:
12楼: Originally posted by libralibra at 2012-08-29 19:51:36
可能跟你分发数据的代码有关系

我想应该是这样的。我的代码没有进行分发操作,直接在原先串行的基础上加了几个并行需要的调用命令。
如果进行分发代码的话还要根据你给我的那个例子还有你前面讲的进行吗?
everythinghasitsseason.enjoyyourlife.
13楼2012-08-29 20:43:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

引用回帖:
13楼: Originally posted by 田山东 at 2012-08-29 20:43:24
我想应该是这样的。我的代码没有进行分发操作,直接在原先串行的基础上加了几个并行需要的调用命令。
如果进行分发代码的话还要根据你给我的那个例子还有你前面讲的进行吗?...

MPI并行的大框架就是

读数据
分发数据 (前面2不不是必须,也可以根据core id号去读取自己需要的那部分数据,反正就是每个core只拿到自己运算需要的数据)
然后运算(如果运算过程有不能并行的部分,需要gather到一个core,计算完不能并行的部分后,继续分发数据,进行后面的运算)
最后输出之前gather数据写出结果(或者每个core独立写自己的那部分数据)

所以数据是否需要分发,跟你的运算过程与数据存放方式有关.中间需要gather同步几次,看运算过程有几个不能并行的阶段
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
14楼2012-08-31 18:22:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

引用回帖:
14楼: Originally posted by libralibra at 2012-08-31 18:22:53
MPI并行的大框架就是

读数据
分发数据 (前面2不不是必须,也可以根据core id号去读取自己需要的那部分数据,反正就是每个core只拿到自己运算需要的数据)
然后运算(如果运算过程有不能并行的部分,需要gather到一 ...

我发现我的问题是这样的:串行运行的时候,单个程序会产生一个很大的数组,大约60G,服务器总内存只有120G,所以一个程序产生的数组占内存占到了49%左右,我这个服务器最多只能运行两个程序。并行运算之后,比如我分配6个节点,我会发现很快每个节点占内存达到20%多,很奇怪,这样的话加在一起总数据量比原来大很多啊。
是你说的这个原因吗?是数据分配不合理的事吗?
everythinghasitsseason.enjoyyourlife.
15楼2012-09-01 21:20:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

引用回帖:
15楼: Originally posted by 田山东 at 2012-09-01 21:20:49
我发现我的问题是这样的:串行运行的时候,单个程序会产生一个很大的数组,大约60G,服务器总内存只有120G,所以一个程序产生的数组占内存占到了49%左右,我这个服务器最多只能运行两个程序。并行运算之后,比如我 ...

按理说数据分配给6个节点,每个节点可以拿到1/6来计算,也就是光数组分配需要10G内存,
不过如果这些节点在计算过程中还有临时变量等大数组,内存使用可能会高于10G,至于会多多少,要看你具体的运算过程
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
16楼2012-09-03 21:48:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Williamlyd

新虫 (初入文坛)

请教一下楼主,我最近刚刚开始学MPI,不知道怎么把数据输出到txt文件。 我用的是之前串行用的ofstream。
谢谢!
17楼2013-04-19 22:29:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 田山东 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 298-一志愿中国农业大学-求调剂 +5 手机用户 2026-03-17 5/250 2026-03-18 12:49 by Linda Hu
[考研] 0703化学调剂 +4 pupcoco 2026-03-17 7/350 2026-03-18 12:14 by djl2006
[考研] 【0703化学调剂】-一志愿华中师范大学-六级475 +6 Becho359 2026-03-11 6/300 2026-03-18 12:09 by djl2006
[考研] 281求调剂(0805) +4 烟汐忆海 2026-03-16 11/550 2026-03-18 11:57 by djl2006
[考研] 一志愿中国海洋大学,生物学,301分,求调剂 +3 1孙悟空 2026-03-17 3/150 2026-03-18 10:28 by macy2011
[考研] 工科材料085601 279求调剂 +6 困于星晨 2026-03-17 6/300 2026-03-18 10:21 by kkcoco25
[考研] 302求调剂 +9 负心者当诛 2026-03-11 9/450 2026-03-17 17:13 by ruiyingmiao
[考研] 302求调剂 +4 小贾同学123 2026-03-15 8/400 2026-03-17 10:33 by 小贾同学123
[考研] 285化工学硕求调剂(081700) +9 柴郡猫_ 2026-03-12 9/450 2026-03-17 10:18 by Sammy2
[考研] 材料专硕274一志愿陕西师范大学求调剂 +5 薛云鹏 2026-03-13 5/250 2026-03-17 10:15 by Sammy2
[考研] 274求调剂 +5 时间点 2026-03-13 5/250 2026-03-17 07:34 by 热情沙漠
[考研] 机械专硕325,寻找调剂院校 +3 y9999 2026-03-15 5/250 2026-03-16 19:58 by y9999
[考研] 一志愿华中师范071000,325求调剂 +6 RuitingC 2026-03-12 6/300 2026-03-16 14:50 by 可淡不可忘
[考研] 070305求调剂 +3 mlpqaz03 2026-03-14 4/200 2026-03-15 11:04 by peike
[考研] 085601材料工程315分求调剂 +3 yang_0104 2026-03-15 3/150 2026-03-15 10:58 by peike
[考研] 297求调剂 +4 学海漂泊 2026-03-13 4/200 2026-03-14 11:51 by 热情沙漠
[考研] 求材料调剂 +5 隔壁陈先生 2026-03-12 5/250 2026-03-13 22:03 by 星空星月
[考研] 329求调剂 +3 miaodesi 2026-03-12 4/200 2026-03-13 20:53 by 18595523086
[考研] 【考研调剂求收留】 +3 Ceciilia 2026-03-11 3/150 2026-03-13 20:18 by JourneyLucky
[考博] 福州大学杨黄浩课题组招收2026年专业学位博士研究生,2026.03.20截止 +3 Xiangyu_ou 2026-03-12 3/150 2026-03-13 09:36 by duanwu655
信息提示
请填处理意见