24小时热门版块排行榜    

查看: 822  |  回复: 1
【悬赏金币】回答本帖问题,作者fo3mt2将赠送您 10 个金币

fo3mt2

金虫 (小有名气)

[求助] MPI并行收集数据

大家好,

我想请教一段用fortran写的mpi并行程序。代码如下:

do i = 1, nomi, 1
   if (mod(i-1,world_size) /= world_rank) cycle
   kkim = kkimp(i,1:3)
   call proce(i,ndegen,nbc,npo,kkim,hil,thil,tecv,teve,bcb,eni,er,pi,nne,hb,bcp1)
   if (world_rank == 0) then
      bcp2 = bcp1 !the 6th line
      do j = 1, world_size-1, 1
         if (i-1+j == nomi) exit
         k = i + j + 1000
         call mpi_recv(bcp3,nomi*nne*6,mpi_double_complex,j,k,mpi_comm_world,mpi_status_ignore,ierr)
         bcp2 = bcp2 + bcp3
      end do
   else
      k = i + 1000
      call mpi_send(bcp1,nomi*nne*6,mpi_double_complex,0,k,mpi_comm_world,ierr)
   end if
end do

假设根进程(root processor)在外循环里一共被使用了两次,每次都会调用子程序proce,并从子程序得到传回的数组bcp1。

当用根进程(root processor)使用数组bcp2,从各个进程(包括其自身)收集各自得到的数组bcp1时,根进程(root processor)需要先收集自己得到的数组bcp1。

因为假设根进程(root processor)在外循环里一共被使用了两次,根进程(root processor)一共要从自身收集两次bcp1数组。那程序里的第6行(标记为!the 6th line),写成bcp2 = bcp1是否合理呢?

我觉得这样写,会使得根进程(root processor)在循环里第二次被使用得到的数组bcp1,覆盖掉第一次被使用得到的数组bcp1,进而导致丢失了第一次使用时得到的数组bcp1信息。

如果不丢失信息,应该进行叠加,也就是把第6行写成bcp2 = bcp2 + bcp1;但程序里却不是这样写的。

我想不通是什么原因,能否请大家给些建议呢?或者是否是程序写错了呢?

谢谢啦。

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

taichiman

新虫 (正式写手)

请问mpi并行程序的编译环境是?

发自小木虫Android客户端
2楼2022-12-05 12:05:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fo3mt2 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿安徽大学材料工程专硕313分,求调剂的学校 +6 Yu先生 2026-03-10 8/400 2026-03-10 23:13 by wangjihu
[考研] 调剂 +5 调剂的考研学生 2026-03-09 5/250 2026-03-10 22:13 by peike
[考研] 265求调剂 +8 小木虫085600 2026-03-09 11/550 2026-03-10 19:44 by 绿色低碳化学
[考研] 一志愿山东大学105500药学专硕,总分302求调剂 +5 五维天空 2026-03-04 13/650 2026-03-10 19:02 by 清风月
[考研] 收调剂 +7 调剂的考研学生 2026-03-10 7/350 2026-03-10 17:57 by 麦茶汤圆
[考研] 材料专硕调剂 +7 慕辰123 2026-03-05 10/500 2026-03-10 14:22 by peike
[考博] 求材料读博院校 +9 yanglei131 2026-03-08 9/450 2026-03-10 11:54 by 天道酬勤2026686
[考研] 材料与化工 一志愿山大 321分 求调剂 +6 每天散步 2026-03-09 7/350 2026-03-10 10:52 by 星空星月
[考研] 313求调剂 +4 Yyt杨1 2026-03-07 5/250 2026-03-09 13:48 by macy2011
[基金申请] 第二个面上项目的获批几率如何? +3 wawm9296 2026-03-04 5/250 2026-03-09 13:00 by xujie4132
[考研] 0817找调剂 +6 kk扛 2026-03-08 6/300 2026-03-09 06:38 by houyaoxu
[考研] 材料工程330分求调剂,一志愿985 +3 小材化本科 2026-03-07 3/150 2026-03-09 05:35 by houyaoxu
[考研] 考研求调剂,工科,总分304 +4 矮子不想长高了 2026-03-08 7/350 2026-03-08 22:21 by 小木虫tim
[考博] 26年博士申请 +4 科研狗111 2026-03-07 4/200 2026-03-08 21:56 by 0611517sll
[考研] 安徽农业大学材料与化学学院0856材料招收调剂 +3 akakk47 2026-03-05 9/450 2026-03-08 21:03 by deng.z.1314
[考研] 276求调剂 本科天津工业大学 一志愿北京化工大学0855 +4 路lyh123 2026-03-06 6/300 2026-03-07 11:37 by shdliugang
[考研] 不限学校专业的调剂同学看过来 +5 啊摆啊摆 2026-03-05 9/450 2026-03-06 12:06 by 啊摆啊摆
[考研] 材料调剂 +4 L9370 2026-03-05 4/200 2026-03-05 19:36 by caszguilin
[考研] 320材料一志愿西工大专硕英二数二 有两年光伏工作经验 +5 锤某人 2026-03-04 8/400 2026-03-05 09:24 by oxidpl
[考研] 295求调剂 +4 小赛不吃香菜 2026-03-04 4/200 2026-03-04 16:13 by sslc1985
信息提示
请填处理意见