[英]How to couple Fortran77 and Fortran90 applications? MPI, PVM or another way?
我需要耦合两个代码(一个在Fortran77中,另一个在Fortran90中),这些代码必须由守护进程控制并能够在它们之间传递信息。
我一直在寻找,两种可能的选择是PVM或MPI。 问题是我需要单独编译它们,任何想法?
最简单的方法是使用POSIX套接字 - 但是你需要进行数据序列化/反序列化,而且它通常很慢。 所以我不建议使用套接字。
从技术上讲,MPI可以工作。 如果您可以使用MPI 2.0兼容库,那么您可以使用在那里实现的客户端 - 服务器机制。 查看MPI_Open_port和MPI_Comm_connect的文档。 第一个将为您提供端口名称,您需要以某种方式将此名称传递给客户端。 一种选择是使用名称发布,但它可能不适用于任何MPI库。 另一种选择是使用其他机制(套接字连接,文件系统或其他任何机制)共享它。
但是,事实上,我仍然没有看到你应该单独编译这两个应用程序的原因(除非存在许可问题) - 你可以将它们编译成一个包(我预计会有一些代码更改,但它很小)然后将它们作为一个应用运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.