当前位置: 首页 > news >正文

mpirun指令使用

以下是关于mpirun使用的详细完整解释及示例:

一、简介

mpirun 是一个用于启动并行MPI(消息传递接口)程序的命令行工具。它能够管理进程的分布和执行,使得程序能够在多个处理器或节点上并行运行,从而提高计算效率。

二、常用参数解释

以下是mpirun的一些常用参数及其功能:

  • -n <num>:指定启动的进程数,这是最基本的参数,用于确定并行程序的规模。

  • --host <host_list>:指定程序运行的节点列表,格式为node1:proc1,node2:proc2,...,其中proc是每个节点上的进程数。

  • --hostfile <filename>:指定包含节点信息的文件,文件中每行定义一个节点及其可用的进程数。

  • -x <env_var>:将指定的环境变量从当前环境传递到远程节点。

  • --allow-run-as-root:允许以root用户身份运行mpirun,在某些集群环境中可能需要此权限。

  • --bind-to <bind_type>:指定进程绑定到硬件资源的方式,如core(核心)、hwthread(硬件线程)、none(不绑定)等,以优化性能。

  • --map-by <map_type>:控制进程如何映射到节点或核心上,例如node(按节点映射)、core(按核心映射)、ppr:<procs>:<type>(每个节点或核心上指定数量的进程)。

三、示例

示例一:基本用法

在本地机器上启动一个简单的并行程序,使用4个进程:

bash复制

mpirun -n 4 ./my_parallel_program

这条命令会在本地启动4个进程来运行my_parallel_program

示例二:跨多个节点运行

假设有一个集群,包含节点node1、node2和node3,想要在这些节点上分别启动8、8和4个进程,可以使用以下命令:

bash复制

mpirun --host node1:8,node2:8,node3:4 ./my_mpi_program

或者,将节点信息写入一个名为hosts.txt的文件中:

复制

node1 slots=8
node2 slots=8
node3 slots=4

然后使用--hostfile参数:

bash复制

mpirun --hostfile hosts.txt ./my_mpi_program
示例三:设置环境变量

如果需要在运行时传递特定的环境变量,例如LD_PRELOAD,可以使用-x参数:

bash复制

mpirun -x LD_PRELOAD=/usr/lib64/libpil4dfs.so -n 4 ./my_program
示例四:进程绑定和映射

为了优化性能,可以将进程绑定到特定的硬件资源上。例如,将每个进程绑定到不同的核心上:

bash复制

mpirun -n 4 --bind-to core ./my_program

或者按节点映射进程,每个节点上运行2个进程:

bash复制

mpirun -n 4 --map-by node:pe=2 ./my_program

通过合理使用mpirun的参数,可以根据不同的计算需求和硬件环境,灵活地配置并行程序的运行方式,以达到最佳的性能和效率。

http://www.dtcms.com/a/56819.html

相关文章:

  • 【OpenCV】005、查看图像的形状(图像高度、宽度、通道数)shape()函数,img.shape[0]、[1]、[2]
  • vulnhub靶场之【digitalworld.local系列】的snakeoil靶机
  • PPT 小黑第32套
  • Cyborg Hawk Linux自学
  • 护网中shiro常问的问题
  • 阿里云操作系统(AliOS)
  • C#控制台应用程序学习——3.8
  • Java Spring MVC (2)
  • Lab17_ Blind SQL injection with out-of-band data exfiltration
  • 【爬虫】开篇词
  • 通过Golang的container/list实现LRU缓存算法
  • 开源订货系统哪个好 三大订货系统源码推荐
  • C/C++蓝桥杯算法真题打卡(Day4)
  • Java @RequestBody注解
  • 30天入门Python(基础篇)——第16天:函数的作用域(局部变量、全局变量)
  • VB.NET 如何指定Microsoft Print To PDF的输出路径
  • PPT 小黑第6套
  • 从零开始了解Manus
  • TypeScript系列05-函数式编程与 TypeScript:打造类型安全的函数式架构
  • blender学习25.3.6
  • 群晖DS 223 Docker:开启私有云
  • OpenSSL 使用方法汇总:从证书管理到加密解密全解析
  • mapbox开发小技巧
  • 【简单的c程序设计精选题】
  • 《几何原本》命题I.22
  • 最大连续1的个数III --- 滑动窗口
  • VBA 数据库同一表的当前行与其他行的主键重复判断实现方案
  • Docker 安装 Nacos 2.1.1(单机版)
  • Ubuntu下MySQL的安装与使用(一)
  • 新手学习爬虫的案例