openmpi参数_openMPI测试 编译 运行 及MCA框架(zz)
测试Open MPI的安装
命令"ompi_info"可用来检测Open MPI的安装状态。该命令会返回
一个关于你的Open MPI安装的大概信息。
Note that the ompi_info command
is
extremely helpful in determining which components are installed as well
as
listing all the run-time settable parameters that are available in each
component (as well as their default values).
下列选项可能会有用:
--allShow a *lot* of information about your Open MPI installation.
--parsableDisplay all the information in an easily grep/cut/awk/sed-able
format.
--param
A of
"all" and a of "all" will show all
parameters to all components.Otherwise,
the parameters of all the components in a specific framework, or just
the
parameters of a specific component can be displayed by using an
appropriate
and/or name.
Changing the values of these
parameters is
explained in the "The Modular Component Architecture (MCA)" section,
below.
编译Open MPI应用
Open MPI提供了可用来编译MPI应用的"wrapper"编译器:
C:mpicc
C++:mpiCC (or mpic++ if your filesystem is case-insensitive)
Fortran 77: mpif77
Fortran 90: mpif90
例如:
shell$ mpicc hello_world_mpi.c
-o
hello_world_mpi -g
All the wrapper compilers do is
add a
variety of compiler and linker flags to the command line and then invoke
a
back-end compiler.To be specific: the
wrapper compilers do not parse source code at all; they are solely
command-line
manipulators, and have nothing to do with the actual compilation or
linking of
programs.The end result is an MPI executable
that is properly linked to all the relevant libraries.
运行Open MPI应用
Open MPI提供了mpirun和mpiexec(他们是相同的)。例如:
shell$ mpirun -np 2
hello_world_mpi
和
shell$ mpiexec -np 1
hello_world_mpi : -np
1 hello_world_mpi
是相同的。某些mpiexec的switches(比如-host和–arch)are not yet functional,
尽管在你使用它们时并不会发生错误。
The rsh launcher接受一个-hostfile参数(也可以使用选项"-machinefile",两者是等价的);你可以指定一个-hostfile参数来标志一个标准的mpirun-style
hostfile(每行一个主机名):
shell$ mpirun -hostfile
my_hostfile -np 2
hello_world_mpi
如果你想在一个节点上运行多个进程,那么hostfile可以使用"slots"属性。如果没有指定"slots",那么将假设其数目为1。例如,使用如下的hostfile:
---------------------------------------------------------------------------
node1.example.com
node2.example.com
node3.example.com slots=2
node4.example.com slots=4
---------------------------------------------------------------------------
shell$ mpirun -hostfile
my_hostfile -np 8
hello_world_mpi
will launch MPI_COMM_WORLD rank 0
on node1,
rank 1 on node2, ranks 2 and 3 on node3, and ranks 4 through 7 on node4.
Other starters, such as the
batch
scheduling environments, do not require hostfiles (and will ignore the
hostfile
if it is supplied). They will also launch as many processes as slots
have been
allocated by the scheduler if no "-np" argument has been
provided.For example, running an
interactive SLURM job with 8 processors:
shell$ srun -n 8 -A
shell$ mpirun a.out
The above command will launch 8
copies of
a.out in a single MPI_COMM_WORLD on the processors that were allocated
by
SLURM.
Note that the values of
component
parameters can be changed on the mpirun / mpiexec command line.This is explained in the section below,
"The Modular Component Architecture (MCA)".
The Modular Component Architecture (MCA)
The MCA is the backbone of Open
MPI -- most
services and functionality are implemented through MCA components.Here is a list of all the component frameworks
in Open MPI:
---------------------------------------------------------------------------
MPI组件框架:
-------------------------
allocator - Memory allocator
bml- BTL management layer
btl- MPI point-to-point byte transfer layer, used for MPI
point-to-point
messages on some types of networks
coll- MPI collective algorithms
io- MPI-2 I/O
mpool- Memory pooling
mtl- Matching transport layer, used for MPI point-to-point messages
on some
types of networks
osc- MPI-2 one-sided communications
pml- MPI point-to-point management layer
rcache- Memory registration cache
topo- MPI topology routines
Back-end run-time environment
component
frameworks:
---------------------------------------------------
errmgr- RTE error manager
gpr- General purpose registry
iof- I/O forwarding
ns- Name server
odls- OpenRTE daemon local launch subsystem
oob- Out of band messaging
pls- Process launch system
ras- Resource allocation system
rds- Resource discovery system
rmaps- Resource mapping system
rmgr- Resource manager
rml- RTE message layer
schema- Name schemas
sds- Startup / discovery service
smr- State-of-health monitoring subsystem
Miscellaneous frameworks:
-------------------------
backtrace - Debugging call stack
backtrace
support
maffinity - Memory affinity
memory- Memory subsystem hooks
memcpy- Memopy copy support
memory- Memory management hooks
paffinity - Processor affinity
timer- High-resolution timers
---------------------------------------------------------------------------
Each framework typically has one
or more
components that are used at run-time.For example, the btl framework is used by MPI to send bytes
across
underlying networks.The tcp btl, for
example, sends messages across TCP-based networks; the gm btl sends
messages
across GM Myrinet-based networks.
Each component typically has
some tunable
parameters that can be changed at run-time.Use the ompi_info command to check a component to see what its
tunable
parameters are.For example:
shell$ ompi_info --param btl tcp
shows all the parameters (and
default
values) for the tcp btl component.
These values can be overridden
at run-time
in several ways.At run-time, the
following locations are examined (in order) for new values of
parameters:
1.
/etc/openmpi-mca-params.conf
This file is intended to set any system-wide default MCA
parameter values
-- it will apply, by default, to all users who use this Open MPI
installation.The default file that is
installed contains many comments explaining its format.
2.
$HOME/.openmpi/mca-params.conf
If
this file exists, it should be in the same format as
/etc/openmpi-mca-params.conf.It is intended to provide per-user default parameter values.
3. environment variables of the
form
OMPI_MCA_ set equal to a
Where is the name of the parameter.For
example, set the variable named
OMPI_MCA_btl_tcp_frag_size to the value 65536 (Bourne-style shells):
shell$ OMPI_MCA_btl_tcp_frag_size=65536
shell$ export OMPI_MCA_btl_tcp_frag_size
4. the mpirun command line:
--mca
Where is the name of the parameter.For
example:
shell$ mpirun --mca btl_tcp_frag_size 65536 -np 2 hello_world_mpi
These locations are checked in
order.For example, a parameter value passed on
the
mpirun command line will override an environment variable; an
environment
variable will override the system-wide defaults.
openmpi参数_openMPI测试 编译 运行 及MCA框架(zz)相关推荐
- openmpi参数_openmpi
以ANSYS2020R2为例 问题一 fluent串行启动 (真串行,不是在启动界面选择的串行)是正常的,但是并行会挂,问题截图如下: 解决方案: 这个是Intel的问题,因为Fluent默认Inte ...
- openmpi参数_OpenMPI源码剖析:网络通信原理(一)
MPI中的网络通信的原理,需要解决以下几个问题: 1. MPI使用什么网络协议进行通信? 2.中央数据库是存储在哪一台机器上? 3.集群中如果有一台机器挂掉了是否会影响其他机器? 根据MCA, 每个框 ...
- c 运行 java linux命令行参数,Linux下用命令行编译运行Java总结
最近使用腾讯云的Cloud Studio写Java,只能使用命令行进行编译运行,趁此机会,学习一下Linux的一些常用命令.平时windows下IDE用习惯了,现在用命令行进行编译运行,发现其实问题还 ...
- maven常用命令(编译、测试、运行、打包、安装、部署)
我们可以在cmd中通过一系列的maven命令来对我们的maven-helloworld工程进行编译.测试.运行.打包.安装.部署. compile compile是maven工程的编译命令,作用是将s ...
- 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu
上篇介绍了使用命令行编译打包运行自己的MapReduce程序,使用 Eclipse 更加方便.要在 Eclipse 上编译和运行 MapReduce 程序,需要安装 hadoop-eclipse-pl ...
- notepad编译java_Notepad++直接编译运行java代码的具体步骤
最近不少朋友表示还不会Notepad++直接编译运行java代码的操作步骤,使用下面小编就带来了Notepad++直接编译运行java代码的操作方法哦,一起去看看吧. Notepad++直接编译运行j ...
- c语言用命令行编译运行程序_使用C程序执行系统命令
c语言用命令行编译运行程序 Sometimes, we may need to execute Linux/Windows DOS commands through our C program. (N ...
- 智能合约模糊测试编译部署脚本
智能合约模糊测试编译部署脚本 0. 脚本仓库 https://github.com/peakcrosser7/Contracts-Compile-And-Deploy 1.依赖安装 1.1 升级npm ...
- 在线 OJ 项目(二) · 操作数据库 · 设计前后端交互的 API · 实现在线编译运行功能
一.操作数据库前的准备 二.封装操作数据库数据的相关操作 三.设计前后端交互的 API 四.实现在线编译运行功能 一.操作数据库前的准备 设计数据库表 我们需要对数据库中存储的题目进行操作. 创建一个 ...
最新文章
- Python循环语句代码逐行详解:while、for、break和continue
- c语言课程设计贴吧,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
- 【科技金融】某平台互金产品设计流程和运营策略
- Python基础概念_14_常见术语
- dot net操作sql服务器大全
- QT: 使用qtchooser修改ubuntu默认的qmake版本
- Android之Content和activity、service、Application关系和attachBaseContext函数调用的时候
- maven-shade-plugin插件将项目打成可执行的jar包
- 学python编程好就业吗_学好python编程就业真的没有压力吗?
- android语音识别服务,使用语音服务 API 的语音识别 - Xamarin | Microsoft Docs
- quick-cocos2d-x GameCenter 排行榜
- Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
- FFmpeg —— MP4文件提取h264文件
- NLP-文本分类(2)
- 教你用R画列线图,形象展示预测模型的结果
- DirectX12(D3D12)基础教程(十八)—— PBR基础从物理到艺术(下)
- HDU1922 POJ3004 Subway planning “神题”留名
- (附源码)springboot企业合同管理系统 毕业设计 161456
- c语言p215答案,卫生统计学综合测试卷二及答案
- 学习 Go 语言(Golang)读书笔记
热门文章
- Overfitting机器学习中过度拟合问题
- TCP的乱序和丢包判断(附Reordering更新算法)-理论
- ESP8266与STC8H8K单片机联动——天气时钟
- 彩色星球图片生成4:转置卷积+插值缩放+卷积收缩(pytorch版)
- ThinkPHP使用 PHPExcel 处理 Excel 表格
- electron打包ffi-napi报错 npm ERR! gyp reason: read ECONNRESET
- opencv35:FAST角点检测
- 100句关于生命的名人名言
- 开发android版本的直播app
- Problem I. S05-10 输入年月判断天数