我有一个非常基础的脚本,用于在Wine下运行多个Windows种群遗传学程序(msvar.exe)。它使用“find”命令查找多个文件夹中的初始化文件(INTFILE),然后使用该初始化文件在每个目录中启动一个msvar.exe实例。不同的文件夹将在初始化文件中具有不同的参数,因此我可以通过添加“&”参数来运行一系列模拟。这是脚本内容:
for i in $(find /home/msvartest -name INTFILE -type f)
do (
cd $(dirname $(realpath $i));
# wine explorer /desktop=name msvar.exe;
wineconsole --backend=user msvar.exe;
) &
done
目前我在我的双六核机器上,每次同时运行多达20个msvar.exe副本,每个副本都在自己的wineconsole(或wine浏览器窗口)下运行。每个运行实例可能需要3到4天,但程序只能在单个核心上运行,因此我需要并行运行模拟。看起来Gnu parallel是运行msvar.exe的更好方法,并且可以让我在远程计算机上运行更多模拟。我尝试了在Run wine in parallel with gnu-parallel - needs {%} slot substitution to work中建议的使用wineconsole运行Gnu parallel,但没有成功。是否有人能够帮助,或者最好能提供一个脚本供我使用。感谢您的帮助。