Quantcast
Channel: Intel® Xeon Phi™ Coprocessor
Viewing all articles
Browse latest Browse all 32

面向英特尔® 至强融核™ 协处理器的 NWChem*

$
0
0

目的

本代码介绍了如何获取、构建和使用包括针对采用英特尔® 集成众核 (MIC) 架构的英特尔® 至强融核™ 协处理器的支持的 NWChem* 代码。

简介

NWChem 可提供可扩展的计算化学工具。 NWChem 代码能够高效处理大量科学性计算化学问题,而且它们能够利用并行计算资源 — 从高性能并行超级计算机到便携的工作站集群。

NWChem 软件可以处理

  • 生物分子、纳米材料和固态设备
  • 从量子到经典物理,以及各种组合
  • 基态和激发态
  • 高斯基函数或平面波
  • 高可扩展性,从一台处理器到数千台处理器
  • 属性和相对论效应

NWChem 由多位开发人员积极开发,并由位于华盛顿州西北太平洋国家实验室 (PNNL) 的环境分子科学实验室 (EMSL) 进行维护。 该代码在教育社区许可证 2.0 版 (ECL 2.0) 的条款下作为开源代码发布。

最新版 NWChem 可从 http://www.nwchem-sw.org/进行下载。 NWChem 6.5 或更高版本中包括最新的英特尔® 至强融核™ 协处理器。 最新开发版本可通过 https://svn.pnl.gov/svn/nwchem/trunk下载,并包括带有针对至强融核协处理器支持的 NWChem 附加模块。  请查看版本注释和 NWChem 文档,了解更多信息。

代码访问

NWChem 代码支持英特尔® 至强™ 处理器(本文中称“主机”)与英特尔® 至强融核™ 协处理器(本文中称“协处理器”)在单节点和单集群环境中使用面向卸载的英特尔® 语言扩展。

如要下载 NWChem,请访问 http://www.nwchem-sw.org/index.php/Download并下载最新版本。  建议下载源代码版本,以便为所需的系统配置 NWChem。

构建说明

针对英特尔至强融核协处理器构建带有卸载支持的 NWChem 分三个步骤。

  1. 为系统配置 NWChem。
  2. 启用卸载支持。
  3. 构建 NWChem。

配置

设置以下配置选项(以下选项使用 bash 语法):

export ARMCI_NETWORK=OPENIB
export ARMCI_DEFAULT_SHMMAX_UBOUND=65536
export USE_MPI=y
export NWCHEM_MODULES=all\ python
export USE_MPIF=y
export USE_MPIF4=y
export MPI_HOME=$I_MPI_HOME/intel64
export MPI_INCLUDE="$MPI_HOME"/include
export MPI_LIB="$MPI_HOME"/lib
export LIBMPI="-lmpi -lmpigf -lmpigi -lrt -lpthread"
export MKLROOT=/msc/apps/compilers/intel/14.0/composer_xe_2013_sp1.1.106/mkl/
export SCALAPACK_LIB=" -mkl -openmp -lmkl_scalapack_ilp64 -lmkl_blacs_intelmpi_ilp64 -lpthread -lm"
export SCALAPACK="$SCALAPACK_LIB"
export LAPACK_LIB="-mkl -openmp  -lpthread -lm"
export BLAS_LIB="$LAPACK_LIB"
export BLASOPT="$LAPACK_LIB"
export USE_SCALAPACK=y
export SCALAPACK_SIZE=8
export BLAS_SIZE=8
export LAPACK_SIZE=8
export PYTHONHOME=/usr
export PYTHONVERSION=2.6
export PYTHONLIBTYPE=so
export USE_PYTHON64=y
export USE_CPPRESERVE=y
export USE_NOFSCHECK=y

启用卸载支持

设置以下环境变量,启用卸载支持:

export USE_OPENMP=1
export USE_OFFLOAD=1

构建

如要构建 NWChem,请发布以下命令:

cd $NWCHEM_TOP/src
make FC=ifort CC=icc AR=xiar

由于支持面向 CCSD(T) 方法的英特尔至强融核协处理器,所以能够构建 NWChem (截至 2014 年 8 月 12 日)。 未来将发布可提供更多 NWChem 方法的协处理器支持。

如果您运行的是基于英特尔® True Scale Fabric 的集群,请查看 NWChem 文档,了解正确的配置设置。

使用 NWChem CCSD(T) 方法运行工作负载

如要运行 CCSD(T) 方法,您需要使用能够触发该模块的 NWChem 输入文件。 您可以在本文档的附录中查找输入文件示例。 其他使用 CCSD(T) 方法的输入文件可在 NWChem 网站上查找:http://www.nwchem-sw.org/

如要使用普通的全局数组 (GA) 仅在主机上以传统模式运行代码,则运行以下命令:

$ OMP_NUM_THREADS=1 mpirun –np 768 –perhost 16 nwchem input.nw

该命令将使用名为 “input.nw” 的文件(每节点包含 768 个 GA rank 和 16 条进程,共 48 台设备)运行 NWChem。

如要在主机上启用 OpenMP* 线程并使用更少的 GA rank,请运行以下命令:

$ OMP_NUM_THREADS=2 mpirun –np 384 –perhost 8 nwchem input.nw

这将引导 NWChem 在每个节点上使用 8 个 GA rank,并在节点的每个进程上启用 2 条线程。 由于它使用较少的 GA rank,所以通信较少;因此,与上面的普通方法相比,速度将会有所提升。

接下来通过执行以下命令,在英特尔至强融核协处理器上启用卸载:

$ NWC_RANKS_PER_DEVICE=2 OMP_NUM_THREADS=4 mpirun –np 384 –perhost 8 nwchem input.nw

如果将 NWC_RANKS_PER_DEVICE环境变量设置为大于 0 的整数,它将可支持卸载。 此外,它还可控制从主机向每个电脑节点的处理器卸载的 GA rank 数量。

在示例中,我们假定节点包含两路协处理器,NWChem 应可在每路协处理器上找到两个 GA rank。 因此,指派到一个电脑节点上的 GA rank 中有 4/8 将卸载到协处理器。 在卸载过程中,将有一个主机内核闲置;因此,我们将针对主机的 OpenMP 线程数量加倍 (OMP_NUM_THREADS=4 ),以便在闲置的内核中填充其他 GA rank 的任务。

NWChem 本身可以自动检测系统中可用的协处理器,并可对其进行正确划分,以便优化使用。

如要获取最佳性能,您还需要在主机系统和协处理器上启用加速模式,而且需要对以下环境变量进行设置,以便在协处理器设备上使用较大的页面:

export MIC_USE_2MB_BUFFER=16K

在上述所有案例中,NWChem 将按照输入文件中的请求生成输出文件。

NWChem 在控制台日志上显示最后几行之后,您将会看到其中一行报告消耗的总运行时:

Total times  cpu:           wall: 

所报告的运行时中将显示,OpenMP 线程版本和卸载版本中的速度显著提升。 当然,具体的运行时将取决于您的系统配置。 以上对控制 OpenMP 和卸载的设置的试验旨在为您的系统寻找最佳值。

性能测试 1,2

下表展示了使用以下列出的配置的 NWChem 能够带来的加速。 您的性能可能稍有差别,具体将取决于您的系统配置、系统优化和上述的 NWChem 设置。

 

测试平台配置

节点英特尔® 至强™ 处理器内核英特尔® 至强融核™ 协处理器内核异构内核
13020801560017680
23036802760031280
36057604320048960
45072005400061200

服务器配置:

  • Atipa Visione vf442,双插槽/16 个内核,英特尔® C600 IOH
  • 处理器: 两枚采用英特尔® 超线程技术的英特尔® 至强™ 处理器 E5-2670 @ 2.60GHz (8 个内核)3
  • 操作系统: Scientific Linux* 6.5
  • 内存: 128GB DDR3 @ 1333 MHz
  • 协处理器: 2 路英特尔® 至强融核™ 协处理器 5110P,速度为 3.6 GT/秒的 GDDR5,驱动程序 v3.1.2-1,FLASH 映像/micro OS 2.1.02.390
  • 英特尔® Composer XE 14.0.1.106

附录: 输入文件示例

start  example

title example

echo

memory stack   4800 mb heap 200 mb global 4800 mb noverify

geometry units angstrom noprint
symmetry c1
C     -0.7143     6.0940    -0.00
C      0.7143     6.0940    -0.00
C      0.7143    -6.0940     0.00
C     -0.7143    -6.0940     0.00
C      1.4050     4.9240    -0.00
C      1.4050    -4.9240     0.00
C     -1.4050    -4.9240     0.00
C     -1.4050     4.9240     0.00
C      1.4027     2.4587    -0.00
C     -1.4027     2.4587     0.00
C      1.4027    -2.4587    -0.00
C     -1.4027    -2.4587     0.00
C      1.4032    -0.0000    -0.00
C     -1.4032     0.0000     0.00
C      0.7258     1.2217    -0.00
C     -0.7258     1.2217     0.00
C      0.7258    -1.2217     0.00
C     -0.7258    -1.2217     0.00
C      0.7252     3.6642    -0.00
C     -0.7252     3.6642     0.00
C      0.7252    -3.6642     0.00
C     -0.7252    -3.6642     0.00
H     -1.2428     7.0380    -0.00
H      1.2428     7.0380    -0.00
H      1.2428    -7.0380     0.00
H     -1.2428    -7.0380     0.00
H      2.4878     4.9242    -0.00
H     -2.4878     4.9242     0.00
H      2.4878    -4.9242    -0.00
H     -2.4878    -4.9242     0.00
H      2.4862     2.4594    -0.00
H     -2.4862     2.4594     0.00
H      2.4862    -2.4594    -0.00
H     -2.4862    -2.4594     0.00
H      2.4866    -0.0000    -0.00
H     -2.4866     0.0000     0.00
end

basis spherical noprint
H    S
     13.0100000              0.0196850
      1.9620000              0.1379770
      0.4446000              0.4781480
H    S
      0.1220000              1.0000000
H    P
      0.7270000              1.0000000
#BASIS SET: (9s,4p,1d) -> [3s,2p,1d]
C    S
   6665.0000000              0.0006920             -0.0001460
   1000.0000000              0.0053290             -0.0011540
    228.0000000              0.0270770             -0.0057250
     64.7100000              0.1017180             -0.0233120
     21.0600000              0.2747400             -0.0639550
      7.4950000              0.4485640             -0.1499810
      2.7970000              0.2850740             -0.1272620
      0.5215000              0.0152040              0.5445290
C    S
      0.1596000              1.0000000
C    P
      9.4390000              0.0381090
      2.0020000              0.2094800
      0.5456000              0.5085570
C    P
      0.1517000              1.0000000
C    D
      0.5500000              1.0000000
#END
end

scf
#thresh 1.0e-10
#thresh 1.0e-4
#tol2e 1.0e-10
#tol2e 1.0e-8
#noscf
singlet
rhf
vectors input atomic output pent_cpu_768d.movecs
direct
noprint "final vectors analysis" multipole
end

tce
freeze atomic
ccsd(t)
thresh 1e-4
maxiter 10
io ga
tilesize 24
end

set tce:pstat t
set tce:nts  t

task tce energy

 

  • Intel® Xeon Phi™ Coprocessor
  • NWChem*
  • Sviluppatori
  • Linux*
  • Server
  • Intermedio
  • Intel® C++ Composer XE
  • Architettura Intel® Many Integrated Core
  • Server
  • URL
  • Area tema: 

    IDZone

    Viewing all articles
    Browse latest Browse all 32

    Trending Articles



    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>