借助基于 MPICH 的应用使用英特尔® MPI 库 5.0

优势

不同的 MPI 实现具备不同的优势。 因此在特定集群环境中,采用其他 MPI 实现的 HPC 应用可能能够提供更高的性能。

 英特尔® MPI 库 具备以下优势:

  • 多种集群硬件和软件支持
    • 全面支持各种现代英特尔处理器,并可针对其执行性能调优
    • 全面支持多种现代互联,并可针对其执行性能调优;全面支持英特尔互联
  • 集成英特尔® 跟踪分析器和采集器
    • 跟踪并行应用中的所有 MPI 事件;
    • 不平衡检测;
    • MPI 正确性检查;
    • 用于用户代码插装的 API;
  • 更长的调试和统计数据输出
    • 英特尔 MPI 库能够输出并行运行的主要数据,以便确认问题并执行性能调优。
  • 全面控制并行应用执行
    • 可通过环境变量、控制标记或配置文件提供多种控制
  • 支持

要求

如要使用英特尔 MPI 库,需要满足以下条件:

  • 基于英特尔® 64 或英特尔® MIC 架构的系统;

使用方法

注. 有两种方法可以通过基于 MPICH 的应用使用英特尔 MPI 库 5.0:

本文将涉及 ABI 兼容性的使用。

MPI-3 标准宣布将使用新例程 MPI_Get_library_version 来确定运行时使用的 MPI 实现。
我们将通过下面的小型 MPI 应用来演示其功能。

$ cat ./version_info.c 
#include "mpi.h"
#include <stdio.h>

int main (int argc, char *argv[])
{
    int rank, namelen;
    char mpi_name[MPI_MAX_LIBRARY_VERSION_STRING];

    MPI_Init (&argc, &argv);

    MPI_Comm_rank (MPI_COMM_WORLD, &rank);

    MPI_Get_library_version (mpi_name, &namelen);

    if (rank == 0)
        printf ("Hello world: MPI implementation:\n %s\n", mpi_name);

    MPI_Finalize ();

    return (0);
}

 

  1. 为了进行测试,请使用 MPICH 来编译应用
     
    $ export PATH=~/mpich/3.1.2/bin/:$PATH
    $ mpicc ./version_info.c -o version_info
    
  2. 确认 MPI 库是否进行动态链接(如果不是,需要从源进行重新编译)
     
    $ ldd ./version_info | grep libmpi
     libmpi.so.12 => /home/user/mpich/3.1.2/lib/libmpi.so.12 (0x00007f44e7c29000)
    
  3. 对于 MPICH-3,MPI 应用显示
     
    $ mpiexec -n 2 ./version_info
    Hello world: MPI implementation:
     MPICH Version: 3.1.2
    MPICH Release date: Mon Jul 21 16:00:21 CDT 2014
    MPICH Device: ch3:nemesis
    MPICH configure: --prefix=/home/user/mpich/3.1.2/
    MPICH CC: gcc    -O2
    MPICH CXX: g++   -O2
    MPICH F77: gfortran   -O2
    MPICH FC: gfortran   -O2
    
  4. 确保英特尔(R) MPI 库已加载
     
    $ export LD_LIBRARY_PATH=/opt/intel/impi/5.0.1.035/intel64/lib/:$LD_LIBRARY_PATH
    $ mpiexec -n 2 ./version_info
    Hello world: MPI implementation:
     Intel(R) MPI Library 5.0 Update 1 for Linux* OS
  5. 步骤 4 中只有库进行了修改,其他的 MPI 部署都是 MPICH。 It is simple to change it also
     
    $ source /opt/intel/impi/5.0.1.035/intel64/bin/mpivars.sh 
    $ mpiexec.hydra -V
    Intel(R) MPI Library for Linux* OS, Version 5.0 Update 1 Build 20140709
    Copyright (C) 2003-2014, Intel Corporation. All rights reserved.
    $ mpiexec.hydra -n 2 ./version_info
    Hello world: MPI implementation:
     Intel(R) MPI Library 5.0 Update 1 for Linux* OS
    

结论

如要评估英特尔 MPI 库的 ABI 兼容性功能,您可以下载30 天免费评估版本或使用免费的英特尔 MPI 库运行时环境(包含有限支持选项)。 关于更多具体信息,请参阅英特尔 MPI 库许可 FAQ

 

 

Для получения подробной информации о возможностях оптимизации компилятора обратитесь к нашему Уведомлению об оптимизации.
Возможность комментирования русскоязычного контента была отключена. Узнать подробнее.