由于有待处理的消息而使mpi_finalize挂起,我可以不调用mpi_finalize而完成程序 [英] mpi_finalize hang due to pending message, can I finish program without calling mpi_finalize

查看:84
本文介绍了由于有待处理的消息而使mpi_finalize挂起,我可以不调用mpi_finalize而完成程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个很长的FORTRAN + MPI代码,它们挂在mpi_finalize()步骤上.可能是由于待处理的消息.即使我"ctrl-c"中止该挂起的程序,我也可以获得预期的输出.

这里的问题是:我可以从我的代码中删除mpi_finalize(),会有潜在的问题吗?看来,通过删除mpi_finalize()可以使输出保持不变,并且程序可以无错误地退出.

我使用的编译器是"ifort版本13.1.1".

谢谢.

-凯

解决方案

最有可能您正在使用非阻塞发送和接收数组中超出范围的写操作,该数组收集MPI_Waitall函数中使用的信息.

I have a very long FORTRAN+MPI codes that hang at mpi_finalize() step. It probably due to pending message. I can get the output expected even I "ctrl-c" abort that hanged program.

The question here is: Can I remove the mpi_finalize() from my code, will there be any potential problems? It seems that by removing mpi_finalize() the output doesn't differ, and the program can quit without error.

The compiler I use is "ifort version 13.1.1".

Thanks.

-Kai

解决方案

Most likely you are using non-blocking sends and receives that write out of bounds in the array that collects the information that is used in the MPI_Waitall function.

这篇关于由于有待处理的消息而使mpi_finalize挂起,我可以不调用mpi_finalize而完成程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆