Hug*_*ins 0 multithreading distributed-computing mpi openmp lsf
我想用LSF提交一份工作:
在没有LSF的情况下,我只需在4个节点上启动mpi,例如:
mpirun -hosts host1,host2,host3,host4 -np 4 ./myprocess --numthreads = 12
但是,在LSF存在的情况下,我看不出怎么做?我确信这可能是一种非常标准的方法,但我对LSF来说还是个新手.我用Google搜索,但答案对我来说并不是很明显.我在LSF中发现了混合MPI/OpenMP,但它似乎并不完全相同,似乎一次只需要一台主机.
您链接的另一个问题为您提供了您所需要的,但您必须稍微调整它,因为它是为OpenMP应用程序编写的,其线程数由OMP_NUM_THREADS环境变量控制.
以下是作业脚本中最重要的部分:
#BSUB -n 4 - 请求4个插槽#BSUB -R "span[ptile=1]" - 请求每个节点分配一个插槽; 此选项与前一个选项一起跨越4个不同节点的作业,并指示LSF在生成的主机文件中为每个主机放置一个插槽#BSUB -x - 请求对节点的独占访问权限以上三个选项将指示LSF分配4个节点,并在每个节点上保留一个插槽.由于还要求独占访问,因此没有其他作业将与作业共享相同的节点,您可以为每个节点启动任意数量的线程.然后您只需要调用Open MPI mpiexec,如果在Open MPI设置中编译了LSF集成,它将自动从LSF中获取主机列表并为每个节点启动一个进程.
示例LSF作业文件如下所示:
#BSUB -n 4
#BSUB -R "span[ptile=1]"
#BSUB -x
mpiexec -np 4 ./myprocess --numthreads=12
确保您还使用该-W选项请求足够的运行时间和足够的内存量-M.每个插槽请求LSF(以及大多数其他分布式资源管理器)中的内存,因此您应指定任何实例./myprocess将消耗的最大内存量.
如果未在Open MPI发行版中编译LSF集成,则该过程稍微复杂一些,因为您必须解析LSF主机文件并从前者创建Open MPI主机文件.
| 归档时间: | 
 | 
| 查看次数: | 4086 次 | 
| 最近记录: |