假设我的计算机上有 N Fortran可执行文件和 M 核心,其中 N 大于中号。我希望能够并行运行这些可执行文件。我使用的是RHEL 6.9
我过去曾使用OpenMP和GNU Parallel来并行运行代码。但是对于我目前的用途,这两个选项都不起作用:RHEL没有GNU并行分发,而OpenMP适用于并行化单个可执行文件中的块,而不是多个可执行文件。
并行运行这些 N 可执行文件的最佳方式是什么?会是一个简单的方法,如
executable_1 & executable_2 & ... & executable_N
工作?
答案 0 :(得分:3)
仅仅因为它不是官方存储库的一部分,并不意味着你不能在RHEL系统上使用GNU parallel。只需自己构建GNU parallel或install a third party rpm。
答案 1 :(得分:0)
xargs
也支持并行执行。它的界面不适合您的用例,但这应该有效:
echo executable_1 executable_2 ... executable_N | xargs -n1 -P8 bash -c
(-P8
表示“并行运行8个进程”。)
对于更复杂的任务,我有时会编写makefile并使用make -j8
并行运行目标。