24小时热门版块排行榜    

查看: 1904  |  回复: 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的回帖

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的回帖
查看全部 10 个回答

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的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见