测试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)相关推荐

  1. openmpi参数_openmpi

    以ANSYS2020R2为例 问题一 fluent串行启动 (真串行,不是在启动界面选择的串行)是正常的,但是并行会挂,问题截图如下: 解决方案: 这个是Intel的问题,因为Fluent默认Inte ...

  2. openmpi参数_OpenMPI源码剖析:网络通信原理(一)

    MPI中的网络通信的原理,需要解决以下几个问题: 1. MPI使用什么网络协议进行通信? 2.中央数据库是存储在哪一台机器上? 3.集群中如果有一台机器挂掉了是否会影响其他机器? 根据MCA, 每个框 ...

  3. c 运行 java linux命令行参数,Linux下用命令行编译运行Java总结

    最近使用腾讯云的Cloud Studio写Java,只能使用命令行进行编译运行,趁此机会,学习一下Linux的一些常用命令.平时windows下IDE用习惯了,现在用命令行进行编译运行,发现其实问题还 ...

  4. maven常用命令(编译、测试、运行、打包、安装、部署)

    我们可以在cmd中通过一系列的maven命令来对我们的maven-helloworld工程进行编译.测试.运行.打包.安装.部署. compile compile是maven工程的编译命令,作用是将s ...

  5. 使用Eclipse编译运行MapReduce程序 Hadoop2.6.0/Ubuntu

    上篇介绍了使用命令行编译打包运行自己的MapReduce程序,使用 Eclipse 更加方便.要在 Eclipse 上编译和运行 MapReduce 程序,需要安装 hadoop-eclipse-pl ...

  6. notepad编译java_Notepad++直接编译运行java代码的具体步骤

    最近不少朋友表示还不会Notepad++直接编译运行java代码的操作步骤,使用下面小编就带来了Notepad++直接编译运行java代码的操作方法哦,一起去看看吧. Notepad++直接编译运行j ...

  7. c语言用命令行编译运行程序_使用C程序执行系统命令

    c语言用命令行编译运行程序 Sometimes, we may need to execute Linux/Windows DOS commands through our C program. (N ...

  8. 智能合约模糊测试编译部署脚本

    智能合约模糊测试编译部署脚本 0. 脚本仓库 https://github.com/peakcrosser7/Contracts-Compile-And-Deploy 1.依赖安装 1.1 升级npm ...

  9. 在线 OJ 项目(二) · 操作数据库 · 设计前后端交互的 API · 实现在线编译运行功能

    一.操作数据库前的准备 二.封装操作数据库数据的相关操作 三.设计前后端交互的 API 四.实现在线编译运行功能 一.操作数据库前的准备 设计数据库表 我们需要对数据库中存储的题目进行操作. 创建一个 ...

最新文章

  1. Python循环语句代码逐行详解:while、for、break和continue
  2. c语言课程设计贴吧,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  3. 【科技金融】某平台互金产品设计流程和运营策略
  4. Python基础概念_14_常见术语
  5. dot net操作sql服务器大全
  6. QT: 使用qtchooser修改ubuntu默认的qmake版本
  7. Android之Content和activity、service、Application关系和attachBaseContext函数调用的时候
  8. maven-shade-plugin插件将项目打成可执行的jar包
  9. 学python编程好就业吗_学好python编程就业真的没有压力吗?
  10. android语音识别服务,使用语音服务 API 的语音识别 - Xamarin | Microsoft Docs
  11. quick-cocos2d-x GameCenter 排行榜
  12. Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
  13. FFmpeg —— MP4文件提取h264文件
  14. NLP-文本分类(2)
  15. 教你用R画列线图,形象展示预测模型的结果
  16. DirectX12(D3D12)基础教程(十八)—— PBR基础从物理到艺术(下)
  17. HDU1922 POJ3004 Subway planning “神题”留名
  18. (附源码)springboot企业合同管理系统 毕业设计 161456
  19. c语言p215答案,卫生统计学综合测试卷二及答案
  20. 学习 Go 语言(Golang)读书笔记

热门文章

  1. Overfitting机器学习中过度拟合问题
  2. TCP的乱序和丢包判断(附Reordering更新算法)-理论
  3. ESP8266与STC8H8K单片机联动——天气时钟
  4. 彩色星球图片生成4:转置卷积+插值缩放+卷积收缩(pytorch版)
  5. ThinkPHP使用 PHPExcel 处理 Excel 表格
  6. electron打包ffi-napi报错 npm ERR! gyp reason: read ECONNRESET
  7. opencv35:FAST角点检测
  8. 100句关于生命的名人名言
  9. 开发android版本的直播app
  10. Problem I. S05-10 输入年月判断天数