我正在向 Fortran 程序添加一个选项,以使用 MPI 使用多个处理器运行它。如果用户要并行运行它,用户需要指定不同的输入文件——为问题的每个域(处理器)指定一个文件。默认情况下,该程序将查找特定的文件名(名为“serial.inp”的文件)。所以我需要程序知道它何时并行运行,以便它可以改为查找其他文件名(例如“parallel_1.inp”、“parallel_2.inp”、“parallel_3.inp”等)。我的第一个想法是让用户在执行程序时将参数传递给程序,例如:
mpiexec -n 4 myprogram.exe -parallel
这样,当该参数存在时,它将查找并行文件。但这似乎有点多余。如果使用 mpiexec 调用程序,则毫无疑问用户正在尝试并行运行它。有什么方法可以让我的程序知道它是使用 mpiexec 启动的?还是命令行参数是我最好的选择?