Fortran 使用文件与另一个程序通信

Fortran communicating with another program using files

我有一个程序(我们称之为 a.exe),它从文件中读取一些数据,计算一些东西,然后将结果写入另一个文件。 我需要从我自己的 Fortran 代码中调用 a.exe。

我想出了以下解决方案:

这在理论上可行,但速度不够快,因为我需要经常调用 a.exe。因此我的程序花太多时间做IO。

所以,如果有人有想法改进我的解决方案,我将不胜感激。

只要 a.exe 仍然是按照您描述的方式运行的单独的可执行文件,就不可能有任何改进。第一次调用后,a.exe 的内容应该缓存在你的内存中,以后的调用不应该再从磁盘读取 a.exe,直到它被挤出。

只要您使用磁盘进行进程间通信,您在读写您正在处理的文件上花费的时间是不可避免的;这可以通过设置 ram 磁盘 (tmpfs) 来大大加快。

显然,如果您可以重写 a.exe 的代码,可以做更多的事情。如果您可以将它放入一个可以与您的 Fortran 代码链接的目标文件,那将是理想的。如果没有,您可以将它变成一个持久服务器,例如,这样您就可以只 运行 它一次。如果在将数据文件移动到 ramdisk 后你的进程仍然很慢,你可能有其他问题。