24小时热门版块排行榜    

查看: 1902  |  回复: 9

362720651

新虫 (初入文坛)

[交流] 【求助】更改源代码 并行出问题 已有6人参与

我最近对lammps中 deposit的源代码进行了更改,然后编译运行在我的单核上都没问题,但在集群服务器上,就不能输出dump,运行会自动终止,也不报错,log文件变空白。但在单机运行是没问题的,自己解决了好久也不知道问题出在哪里,不知道有没有前辈有类似的经验。
我在deposit源文件中增加的代码如下:
int i,j;
>  int flag,flagall;
>  double coord[3],lamda[3],delx,dely,delz,rsq;
>  double *newcoord;
>  double **x = atom->x;
>  int    *mask = atom->mask;
>  int    nlocal = atom->nlocal;
>  int    natoms;
>  int    data = 0;
>  Region *region = domain->regions[iregion];
>
>  for(int i=0; i< nlocal ; i++) {
>    if (mask && groupbit && region->match(x[0],x[1],x[2]))  data += 1;
>  }
>  MPI_Allreduce(&data,&natoms,1,MPI_INT,MPI_SUM,world);
感觉就算其中涉及到并行问题的代码,也就是最后一句,都是模仿lammps源代码编写的,不知道问题出在哪里。
希望前辈能给予指点,万分感谢 谢谢了!!
回复此楼

» 猜你喜欢

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

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

zyj8119

木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
帮顶,呼唤老虎大王,哈哈,你是这方面的专家。
好好学习,天天向上。
2楼2010-09-14 14:57:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

362720651

新虫 (初入文坛)

再说一下 运行别的例子都没问题的
一旦用到我改了代码的deposit命令  就不dump
别的列子可以运行  说明集群服务器的mpi通信配置没问题的
但为什么单机单核可以计算 集群并行就不行了呢?
3楼2010-09-14 15:00:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

362720651

新虫 (初入文坛)

有前辈指导么。。555
4楼2010-09-15 15:19:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bluewhale

铁杆木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
zh1987hs(金币+3):谢谢指教 2010-09-15 22:55:55
>  int flag,flagall;
>  double coord[3],lamda[3],delx,dely,delz,rsq;
>  double *newcoord;
>  double **x = atom->x;
>  int    *mask = atom->mask;
>  int    nlocal = atom->nlocal;
>  int    natoms;
>  int    data = 0;
>  Region *region = domain->regions[iregion];
>
>  for(int i=0; i< nlocal ; i++) {
>    if (mask && groupbit && region->match(x[0],x[1],x[2]))  data += 1;
>  }
>  MPI_Allreduce(&data,&natoms,1,MPI_INT,MPI_SUM,world);

首先定位错误,将最后一行comment掉,编译后运行。如果没有问题,说明是最后一行的问题,检查world传入的是否有问题。
5楼2010-09-15 20:43:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

362720651

新虫 (初入文坛)

★ ★
zh1987hs(金币+2):谢谢 2010-09-20 10:49:59
引用回帖:
Originally posted by bluewhale at 2010-09-15 20:43:44:
>  int flag,flagall;
>  double coord[3],lamda[3],delx,dely,delz,rsq;
>  double *newcoord;
>  double **x = atom->x;
>  int    *mask = atom->mask;
>  int    nlocal = atom ...

。。。。。把最后一行都去掉的话 连并行语句都没。。。如何并行呢。。。
更别说定位错位了。。。。
6楼2010-09-20 09:44:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bluewhale

铁杆木虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
如果说用原位调试的话,加编译调试代码选项后编译,再用totalview进行调试。不知道你能不能玩得转?
7楼2010-09-20 21:44:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fantexi2008

铜虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
御剑江湖(金币+3): 谢谢 2011-10-08 10:54:56
if (mask && groupbit && region->match(x[0],x[1],x[2]))
??if (mask && groupbit && region->match(x[ i ][0],x[ i ][1],x[ i ][2]))

[ Last edited by fantexi2008 on 2011-10-5 at 13:29 ]
8楼2011-10-05 13:26:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shusuyun

新虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
您好,请问一下这个涉及并行问题的代码是自己写的吗?还是说lammps里面专门有文件写关于并行的代码?
9楼2014-11-28 17:08:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

清风独立

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
您好,请问你的代码是直接加在源程序里面吗?还要做其他修改吗?
10楼2017-11-25 13:22:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 362720651 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见