linux下intel使用intel mpi(2)

1.任务调度支持
当使用Altair* PBS Pro*, TORQUE*, and OpenPBS*时:$PBS_ENVIRONMENT 设置为值 PBS_BATCH或者 PBS_INTERACTIVE
参考代码如下:

#PBS –l nodes=4:ppn=4 
#PBS –q queue_name cd $PBS_O_WORKDIR mpirun –n 16 ./myprog

当使用IBM* Platform LSF*时:
先设置$LSB_MCPU_HOSTS,并在其上添加上main processes的名称,下面是一个运行实例:

$ bsub -n 16 mpirun -n 16 ./myprog

当使用Parallelnavi NQS*时:
完成设置

$ENVIRONMENT,  $QSUB_REQID, $QSUB_NODEINF
 $QSUB_NODEINF

这个文件被作为 mpirun的machine file
当使用SLURM*时:
设置$SLURM_JOBID,

 $SLURM_TASKS_PER_NODE
 $SLURM_NODELIST

运行如下命令:

$ srun -N2 --nodelist=host1,host2 -A 
$ mpirun -n 2 ./myprog

当使用Univa* Grid Engine*时:
设置$PE_HOSTFILE:
这两个会被生成

/tmp/sge_hostfile_${username}_$$ 
and /tmp/sge_machifile_${username}_$$

当使用SIGINT, SIGTERM Signals Intercepting时,
当资源调用超过上限时,一个信号会向所有进程发送来结束大多数的任务安排。
例如:Torque* 向一个任务发送三遍SIGTERM ,假如这个任务还在活跃, 就会发送SIGKILL 来结束它。
用以下命令来看查看所有的队列:

$ qconf -sql

使用以下命令来修改队列设置:

$ qconf -mq <queue_name>

找到terminate_method然后把信号改成SIGTERM
关闭队列设置
关于Controlling Per-Host Process Placement:
默认情况下,intel mpi使用per-host process placement,这意味着-ppn命令将无用。可以使用如下命令将其关闭,以可以通过-ppn命令来控制。

$ export I_MPI_JOB_RESPECT_PROCESS_PLACEMENT=off

Cross-OS Launch Mode:
你可以跨平台的使用intel mpi通信:
首先确保所有节点的intel mpi版本一致。
确保hydra服务被开启,可以使用如下命令查看:

> hydra_service -status

假如没有开启,可以使用-start选项开启。
当运行一个跨平台的任务时,进行如下设置:

-demux select
-genv I_MPI_FABRICS=shm:tcp
-host <hostname>
-hostos <os> for nodes operating on the other OS
-env I_MPI_ROOT and -env PATH – local environment variables for the specified host
(optional) -bootstrap ssh – specifies the remote node access mechanism. If the option is not specified, the Hydra service is used. If you specify ssh, make sure the SSH connectivity is established between the Linux and Windows nodes.

以下是一个示例:

$ mpirun -demux select -genv I_MPI_FABRICS=shm:tcp -env 
I_MPI_ROOT=<windows_installdir> \ 
-env PATH=<windows_installdir>\<arch>\bin -hostos windows -host <windows_host> -n 2 IMB-MPI1 pingpong :\ 
-host <linux_host> -n 3 <linux_installdir>/<arch>/bin/IMB-MPI1 pingpong

2.设置项目启动选项:
设置library选项:
使用正确的参数运行mpivars.[c]sh脚本,例如:

$ . <installdir>/bin64/mpivars.sh release

下面是参数表:
release
Set this argument to use single-threaded optimized library.
debug
Set this argument to use single-threaded debug library.
release_mt
Set this argument to use multi-threaded optimized library (default).
debug_mt
Set this argument to use multi-threaded debug library.
控制节点放置:
通过使用 -host你可以明确的指定节点的运行内容,通过使用-ppn你可以
确定每个节点的进程数。例如:

$ mpirun -n 4 -ppn 2 -hosts node1,node2 ./testc 
Hello world: rank 0 of 4 running on node1 
Hello world: rank 1 of 4 running on node1
Hello world: rank 2 of 4 running on node2 
Hello world: rank 3 of 4 running on node2

你也可以使用一个包含有相关信息的host文件来完成相关设置,使用-f来传递文件信息给mpirun,下面是示例:

$ cat ./hosts 
#nodes 
node1 
node2 
$ mpirun -n 4 -ppn 2 -f hosts ./testc

运行结果是:

$ mpirun -n 6 -hosts node1,node2 ./testc 
Hello world: rank 0 of 6 running on node1 
Hello world: rank 1 of 6 running on node1 
Hello world: rank 2 of 6 running on node1 
Hello world: rank 3 of 6 running on node1 
Hello world: rank 4 of 6 running on node2 
Hello world: rank 5 of 6 running on node2

运用参数表:
参数表间应当用冒号隔开,全局变量应当最先出现,下面是一个示例:

$ mpirun -genv I_MPI_DEBUG=2 -host node1 -n 2 ./testc : -host node2 -n 2 ./testc

在设置文件中,每个参数表应当在新的一行,全局变量应该出现在第一行,下面是一个示例:

$ cat ./config 
-genv I_MPI_DEBUG=2 
-host node1 -n 2 ./testc 
-host node2 -n 2 ./testc

使用-configfile命令指定:

$ mpirun -configfile config 
Hello world: rank 0 of 4 running on node1 
Hello world: rank 1 of 4 running on node1 
Hello world: rank 2 of 4 running on node2 
Hello world: rank 3 of 4 running on node2

3.选择通信结构:
下面是相应的表格:
shm
Shared memory (for intra-node communication only).
dapl
Direct Access Programming Library* (DAPL)-capable network fabrics, such as InfiniBand* and iWarp* (through DAPL).
tcp
TCP/IP-capable network fabrics, such as Ethernet and InfiniBand* (through IPoIB*).
tmi
Tag Matching Interface (TMI)-capable network fabrics, such as Intel® True Scale Fabric, Intel® Omni-Path Architecture and Myrinet* (through TMI).
ofa
OpenFabrics Alliance* (OFA)-capable network fabrics, such as InfiniBand* (through OFED* verbs).
ofi
OpenFabrics Interfaces* (OFI)-capable network fabrics, such as Intel® True Scale Fabric, Intel® Omni-Path Architecture, InfiniBand* and Ethernet (through OFI API).
使用I_MPI_FABRICS变量来指定一个通信结构,另外还有控制变量比如I_MPI_FABRICS_LIST and I_MPI_FALLBACK,这个会在之后的博客提到。
默认的行为:
使用共享内存,并从结构表中选择最前面且可用的结构方式,结构表一般为(dapl,ofa,tcp,tmi,ofi),也可以看I_MPI_FABRICS_LIST。
我们可以通过设置I_MPI_DEBUG=2查看使用了哪种结构。
例如:

$ mpirun –n 4 –ppn 2 –hosts <node1>,<node2> -genv I_MPI_DEBUG=2 ./myprog ... MPI startup(): shm and dapl data transfer modes

设置结构列表:
使用I_MPI_FABRICS_LIST变量,例如:

$ export I_MPI_FABRICS_LIST=ofi,tcp 
$ mpirun –n 4 –ppn 2 –hosts <node1>,<node2> ./myprog

你也可以直接指定intra-node和inter-node(节点内部和外部)通信,语法为:

I_MPI_FABRICS=<fabric>|<intra-node fabric>:<inter-node fabric>

如果你只指定了

<fabric>

那么指定的内容会被用于节点内外。
例如如下设置:

$ export I_MPI_FABRICS=shm:tcp 
$ mpirun –n 4 –ppn 2 –hosts <node1>,<node2> ./myprog

节点内为shared memery,节点外为tcp
如果你设置为:

$ export I_MPI_FABRICS=tcp

节点内外均为tcp

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Intel Parallel Studio XE Cluster Edition 2020是Intel发布的一款集成工具套件,主要用于高性能计算和并行处理应用程序的开发和调试。该套件支持Linux操作系统,包含了一系列编译器、库和工具,可用于构建和优化各种类型的应用程序。 Intel Parallel Studio XE Cluster Edition 2020主要包含了以下组件:Intel C++和Fortran编译器、Intel MPI库、Intel Trace Analyzer和Collector工具、Intel VTune Amplifier Profiler、Intel Inspector XE、Intel Advisor等。这些组件提供了更加强大和丰富的功能,可用于优化应用程序的性能、提高可靠性和可扩展性,以及提高开发效率。 其中,Intel C++和Fortran编译器采用了优化的算法和技术,在编译和优化过程中可以自动调整代码,提高程序的性能和效率。Intel MPI库是一种高性能消息传递接口,可用于实现并行化和分布式计算。Intel Trace Analyzer和Collector工具可用于分析和优化并行应用程序的性能问题,而Intel VTune Amplifier Profiler则可用于检测和解决性能瓶颈问题。 总之,Intel Parallel Studio XE Cluster Edition 2020是一款强大的工具套件,可用于优化高性能计算和并行处理应用程序的性能和效率,在科学计算、人工智能、深度学习、金融等领域有广泛的应用。 ### 回答2: Intel Parallel Studio XE Cluster Edition 2020是一款面向高性能计算的软件开发工具包,在Linux操作系统上运行。该工具包提供了一系列最先进的组件和库,如Intel C++和Fortran编译器、Threading Building Blocks、Intel MPI库、Math Kernel Library等,以及用于可视化和调试并行应用程序的Intel Trace Analyzer和Collector。 Intel Parallel Studio XE Cluster Edition 2020具有高度的可扩展性和性能优化特性,支持开发和优化运行在多核和众核处理器上的应用程序。该工具包采用了全新的编译和优化技术,可显著提高应用程序的性能和可靠性,使程序员能够更快地编写高效的代码。 在Intel Parallel Studio XE Cluster Edition 2020中,用户可以使用工具包中的MPI库和分布式调试器来开发和调试运行在分布式计算机集群中的应用程序。该工具包还提供了许多其他的调试和性能优化工具,如Intel Advisor、Intel Inspector和Intel VTune Profiler等,以帮助用户进一步优化和调试其并行应用程序。 总之,Intel Parallel Studio XE Cluster Edition 2020是一款功能强大的软件开发工具包,适用于广泛的高性能计算领域和应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值