mpi运行时为什么不能在两个节点上跑?

mpi运行时为什么不能在两个节点上跑?,第1张

集群上使用的是openmpi,PBS有点问题,所以我一直用命令“mpirun -np 8 vasp”提交任务。不知道如何使用命段裂令进行多节点的并行计算(把一个任务分配到多个节点上)。在《并行计算导论》上查到关于mpich的使用:运行MPICH程序多机环境中运行MPICH程序与单机环境类似,可以用mpirun来进行。运行程序前先创建一个machinefile文件,其中列出要使用的结点机名,然后用命令“mpirun -machinefile 文件名 ...”来在卜段指定的结点上运行程序。例如,假设用户登录在结点node2上,文件mfile中包含下述内容: node3 node4 则命令: mpirun -machinefile mfile -np 3 cpi 将用node2,node3 和node4来运行程序cpi,每个结点一个进程,这是因为默认情况下mpirun总是将当前结点添加到程序的结点机列表中。握弊闭如果不希望使用当前结点(node2),可以加上-nolocal选项: mpirun -nolocal -machinefile mfile -np 3 cpi 选项-np给出的进程数与-machinefile给出的文件中的结点机数不一定要相等。如果进程数少于结点机数,则程序只使用其中的一部分结点。如果进程数多于结点机数,则一些结点上会运行多于一个进程。

很明显并行比多线程具有更高的CPU利用率,因此效率相对更高;并行是利用CPU的多个核进行计算,而多线程是利用CPU一个核在不同时间段内进行计算。并行计算式多个线程运行在多个cpu上,多线程是多个线程运行在一个cpu上,并行计算基本是依赖多


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12333317.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存