华为云用户手册

  • 为创建的私有镜像打标签 登录到 API Explorer :https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IMS&api=Up dateImsInfo 按照图3进行信息填写, 其中 image_id 为制作的私有镜像 id,可以从镜像列表中获取。 图3 为创建的私有镜像打标签 请求体:[ {"op": "add", "path": "/__support_c6_22xl_physical", "value": "true" } ]
  • 操作步骤 关闭防火墙。 登录集群中任意一台E CS 。 执行以下命令,关闭ECS防火墙。 # systemctl stop firewalld.service 执行以下命令,查看防火墙是否关闭成功。 # systemctl status firewalld.service 图1 成功关闭防火墙 依次登录集群中所有ECS,重复执行1.a~1.c,关闭所有ECS的防火墙。 修改配置文件。 登录集群中任意一台ECS。 执行以下命令,查看ECS的主机名。 # hostname 图2 查看主机名 依次登录集群中所有ECS,重复执行2.a~2.b,获取所有ECS的主机名。 登录集群中任意一台ECS。 执行以下命令,添加hosts配置文件。 # vi /etc/hosts 添加的内容为集群中所有ECS的私网IP和主机名,例如: 192.168.0.1 host-192-168-0-1 192.168.0.2 host-192-168-0-2 ... 执行以下命令,添加hostfile文件。 # vi hostfile 添加集群中所有ECS的主机名,例如: host-192-168-0-1 host-192-168-0-2 ... 依次登录集群中所有ECS,重复执行2.d~2.f。 配置IB网卡的IP地址。 对集群中所有的ECS,执行以下命令,为IB驱动配置IP地址。 # ifconfig ib0 192.168.23.34/24 # ifconfig ib0 192.168.23.35/24 ... IP地址可随意指定,但需要在同一网段内。 在ECS中使用以下命令,验证连通性。 # ping 192.168.23.35 执行以下命令,在ECS集群运行Intel MPI,。 以两台ECS为例: # mpirun -perhost 2 -machinefile hostfile -np 12 /root/intel_hello hostfile文件在运行时需要指定路径,可执行文件hello路径需为绝对路径,集群中所有可执行文件在同一路径下。 图3 集群上运行Intel MPI成功
  • RDMA优势 零复制:零复制网络技术使网卡可以直接与应用内存相互传输数据,从而消除了在应用内存与内核之间复制数据的需要。因此,传输延迟会显著减小。 内核旁路:内核协议栈旁路技术使应用程序无需执行内核内存调用就可向网卡发送命令。在不需要任何内核内存参与的条件下,RDMA请求从用户空间发送到本地网卡并通过网络发送给远程网卡,这就减少了在处理网络传输流时内核内存空间与用户空间之间环境切换的次数。 没有CPU参与:应用程序可以访问远程内存,而不占用远程机器中的任何CPU。远程存储器将被读取,无需任何干预的远程进程(或处理器)。远程CPU中的缓存将不会被访问的内存内容填满。 基于消息的事务:数据被作为离散消息处理,而不是作为流,这消除了应用将流分成不同消息/事务的需要。 分散/收集条目支持: RDMA支持本地处理多个分散/收集条目,即读取多个内存缓冲区并将其作为一个流或获取一个流并将其写入多个内存缓冲区。
  • 运行Platform MPI下的STAR-CCM+ 设置路径。 将/etc/ld.so.conf.d/ibm_mpi.conf中内容改为如下内容: /opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/mpi/openmpi/4.0.1-cda-002/linux-x86_64-2.12 执行以下命令,运行ldconfig。 ldconfig 执行以下命令,运行STAR-CCM+。 /opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/star/bin/starccm+ -batch -np total_core_num -on ip1:core_num1,ip2:core_num2 -rsh ssh -mpi platform -mpiflags "-udapl -e MPI_HASIC_UDAPL=ofa-v2-cma-roe-enp177s0 -e MPI_ICLIB_UDAPL=/usr/lib64/libdat2.so.2" /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim 示例: /opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/star/bin/starccm+ -batch -np 88 -on 192.168.0.96:44,192.168.0.166:44 -rsh ssh -mpi platform -mpiflags "-udapl -e MPI_HASIC_UDAPL=ofa-v2-cma-roe-enp177s0 -eMPI_ICLIB_UDAPL=/usr/lib64/libdat2.so.2" /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim total_core_num:运行STAR-CCM+指定的物理核数。 ip1,ip2:运行STAR-CCM+指定的主机信息。 core_num1,core_num2:指定每个主机运行的物理核数。 MPI_HASIC_UDAPL:在/etc/dat.conf中配置的值。 /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim:算例文件。
  • 运行OpenMPI下的STAR-CCM+ 设置路径。 将/etc/ld.so.conf.d/ibm_mpi.conf中内容改为如下内容: /opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/mpi/openmpi/4.0.1-cda-002/linux-x86_64-2.12 执行以下命令,运行ldconfig。 ldconfig 执行以下命令,运行STAR-CCM+。 /opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/star/bin/starccm+ -batch -np total_core_num -on ip1:core_num1,ip2:core_num2 -rsh ssh -mpi mpi_lib -mpiflags "--allow-run-as-root --mca pml ucx --mca btl ^openib,tcp,uct --mca mca_base_env_list UCX_NET_DEVI CES =efi_0:1;UCX_IB_GID_INDEX=2;UCX_TLS=rc,shm" /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim 示例: /opt/Siemens/15.02.009-R8/STAR-CCM+15.02.009-R8/star/bin/starccm+ -batch -np 88 -on 192.168.0.96:44,192.168.0.166:44 -rsh ssh -mpi openmpi4 -mpiflags "--allow-run-as-root --mca pml ucx --mca btl ^openib,tcp,uct --mca mca_base_env_list UCX_NET_DEVICES=efi_0:1;UCX_IB_GID_INDEX=2;UCX_TLS=rc,shm" /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim total_core_num:运行STAR-CCM+指定的物理核数。 ip1,ip2:运行STAR-CCM+指定的主机信息。 core_num1,core_num2:指定每个主机运行的物理核数。 hiroce gids:查下设备名和index。 UCX_NET_DEVICES: hiroce gids查到的有ip一行的ib_dev的值,:后面的值为port的id。 UCX_IB_GID_INDEX:hiroce gids查到的有ip一行的idx的值。 /opt/Siemens/A-1.4T-inletsystem-blockqian-case2.sim:算例文件。
  • 操作步骤 安装Platform MPI 下载platformMPI,如:platform_mpi- 09.01.04.03r-ce.bin。 执行以下命令,安装依赖包。 # yum install glibc.i686 libgcc-4.8.5-11.el7.i686 libgcc_s.so.1 执行以下命令,增加执行权限。 #chmod +x platform_mpi-09.01.04.03r-ce.bin 安装Platform MPI。 # ./platform_mpi-09.01.04.03r-ce.bin 根据系统提示安装Platform MPI,默认安装到“/opt/ibm/platform_mpi”文件夹下。 图1 Platform MPI成功安装 配置环境变量。 执行以下命令,获取pkey。 # cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/* | grep -v 0000 图2 获取pkey 普通用户下,在~/.bashrc中添加: export MPI_ROOT=/opt/ibm/platform_mpi export PATH=$MPI_ROOT/bin:$PATH export LD_LIBRARY_PATH=/opt/ibm/platform_mpi/lib/linux_amd64 export MPI_IB_PKEY=2.a中获取的pkey $source ~/.bashrc 如果存在多个pkey,使用英文逗号隔开。 执行以下命令,检查环境变量是否配置成功。 # which mpirun 图3 检查环境变量 在单个BMS上运行Platform MPI。 执行以下命令,重新编译hello.c文件。 $ mpicc hello.c -o hello 执行以下命令,在单个BMS上运行Platform MPI。 $ mpirun -np 2 /home/rhel/hello 图4 在单台BMS上运行Platform MPI
  • 操作步骤 使用“PuTTY”,采用密钥对方式登录弹性云服务器。 登录用户为创建弹性云服务器时指定的用户名。 执行以下命令,防止系统超时退出。 # TMOUT=0 执行以下命令,验证参加测试的弹性云服务器之间是否可以免密码互相登录。 $ ssh 用户名@SERVER_IP 执行以下命令,关闭弹性云服务器的防火墙。 # iptables -F # service firewalld stop 执行以下命令,用“IP:Number”的形式作为MPI集群运行程序时的hostlist参数,在集群上通过Spectrum MPI运行可执行文件。其中, IP代表集群中的弹性云服务器IP地址。 Number代表该弹性云服务器的任务数。 假设集群中共有两个弹性云服务器,主机名分别是host-192-168-0-27和host-192-168-0-75,可执行程序的目录为/root/spe_hello,文件名为spe_hello,则命令行如下: # mpirun --allow-run-as-root -np 2 -hostlist host-192-168-0-27,host-192-168-0-75 /root/spe_hello 图1 在集群上通过Spectrum MPI运行可执行文件 hostfile文件在运行时需要指定路径,可执行文件hello路径需为绝对路径,集群中所有可执行文件在同一路径下。
  • 操作步骤 使用“PuTTY”,采用密钥对方式登录集群中任意一台ECS。 执行以下命令,防止系统超时退出。 # TMOUT=0 执行以下命令,添加集群中所有主机的私网IP地址和主机名。 # vi /etc/hosts 添加的内容为集群中所有ECS的私网IP地址和主机名,例如: 192.168.0.1 ecs-ff-0001 192.168.0.2 ecs-ff-0002 .. 执行以下命令,ssh方式登录本节点,验证是否可以不输入密码登录ECS。其中hostname1为本主机名。 $ ssh localhost $ ssh hostname1 依次登录集群中其他ECS,重复执行步骤1~4。 执行以下命令,验证参加测试的ECS之间是否可以免密码互相登录。 假设集群中有2个弹性云服务器,另一个云服务器的主机名为hostname2,则命令行为: $ ssh 用户名@SERVER_IP $ ssh hostname2
  • 操作步骤 安装Platform MPI。 执行以下命令,安装需要的库文件。 # yum install glibc.i686 libgcc-4.8.5-11.el7.i686 增加执行权限,例如安装包所在路径为/root。 # cd /root && chmod +x platform_mpi- 09.01.04.03r-ce.bin 执行以下命令,安装Platform MPI。 # ./platform_mpi- 09.01.04.03r-ce.bin 按照提示输入Enter或1(accept the agreement)直到安装完成,以下为安装成功界面。 图1 Platform MPI安装成功 默认安装路径为/opt/ibm/platform_mpi。 配置MPI环境变量。 执行以下命令,获取pkey。 # cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/* | grep -v 0000 图2 查询pkey值 普通用户下,在~/.bashrc中添加如下语句: export MPI_ROOT=/opt/ibm/platform_mpi export PATH=$MPI_ROOT/bin:$PATH export LD_LIBRARY_PATH=/opt/ibm/platform_mpi/lib/linux_amd64 export MPI_IB_PKEY=步骤2.1中获取的pkey $source ~/.bashrc 如果存在多个pkey,使用英文逗号隔开。 执行以下命令,检查环境变量是否配置成功。 # which mpirun 图3 Platform MPI环境变量导入成功 执行下列命令,在单个ECS上运行Platform MPI。 执行以下命令,重新编译hello.c文件。 # mpicc hello.c -o platform_hello 执行以下命令,在单个ECS上运行Platform MPI。 # mpirun -np 2 /root/platform_hello 图4 在单个ECS上运行Platform MPI
  • 操作步骤 安装Intel MPI。 下载Intel MPI。 下载地址:https://software.intel.com/en-us/intel-mpi-library 执行以下命令,解压并安装Intel MPI。 以l_mpi_2018.0.128.tgz为例: # tar -xvf l_mpi_2018.0.128.tgz # cd l_mpi_2018.0.128/ # ./install.sh 图1 Intel MPI安装成功 配置环境变量。 普通用户下,在“~/.bashrc”中添加如下语句: export PATH=$PATH:/opt/intel/impi/2018.0.128/bin64 export LD_LIBRARY_PATH=/opt/intel/impi/2018.0.128/lib64 执行下列命令,导入环境变量。 # source ~/.bashrc 执行下列命令,查看是否导入成功。 # which mpirun 图2 环境变量导入成功 回显结果如图2所示,表示环境变量导入成功。 执行以下命令,在单个ECS上运行Intel MPI。 执行以下命令,重新生成可执行文件。 # cd # mpicc hello.c -o intel_hello 执行以下命令,在单个ECS上运行Intel MPI。 # mpirun -np 2 /root/intel_hello 图3 在单个ECS上运行Intel MPI
  • 操作步骤 安装MPICH。 下载MPICH。 下载地址:https://aur.archlinux.org/packages/mpich/ 执行以下命令,解压并安装MPICH。 以mpich-3.3.2.tar.gz为例: # tar -xvf mpich-3.3.2.tar.gz # cd mpich-3.3.2/ # ./configure --prefix=/opt/mpich-332 --with-device=ch4:ucx --with-ucx=/pub/mpi/ucx160/ --enable-fast=O3 CFLAGS="-fPIC -std=gnu11" FFLAGS=-fPIC CXXFLAGS=-fPIC FCFLAGS=-fPIC # make -j 128 && make install 图1 MPCHI成功安装 配置环境变量。 普通用户下,在“~/.bashrc”中添加: export PATH=/opt/mpich-332/bin: $PATH export LD_LIBRARY_PATH=/opt/mpich-332/lib 执行下列命令,导入环境变量。 $ source ~/.bashrc 执行下列命令,查看是否导入成功。 $ which mpirun 图2 MPICH环境变量导入成功 回显结果如图2所示,表示环境变量导入成功。 执行以下命令,在单个BMS上运行MPICH。 执行以下命令,生成可执行文件。 $ mpicc hello.c -o hello 执行以下命令,在单个BMS上运行MPICH。 $ mpirun -np 2 /home/rhel/hello 图3 在单个BMS上运行MPICH
  • 使用背景 STAR-CCM+运行需要提供一个集群中所有节点均可读取的算例输入文件,通常做法是将算例文件放到NAS存储中,华为云SFS Turbo提供按需扩展的高性能文件存储,并针对HPC有优化,建议直接使用华为云SFS Turbo存放算例文件。 HPC仿真软件STAR-CCM+需要每个节点都安装,比较麻烦,可以将STAR-CCM+直接安装在NAS存储中,每个节点直接将NAS挂载到本地盘中,简化安装,使用更加方便。
  • 方案优势 降低TCO 可以按需租用,成本低,降低中小客户使用HPC的门槛。 提高效率 按需发放,快速部署与扩容,加速产品上市时间和缩短科研周期。 使用灵活 在镜像模板中预制MPI库、编译库及优化配置,加快环境部署。 企业分支、科研组织机构等跨全球地理位置进行及时协同工作,提高效率。 可以利用公有云的跨地域能力,共享计算资源,海量数据,并能实现云端大数据分析。 优化性能 性能比普通云服务器大幅提升。 通过虚拟化优化(SR-IOV、PCI直通)等,各类测试报告显示:大规模云化HPC性能损耗不大。
  • 购买SFS Turbo 1.在华为云控制台搜索“弹性文件服务 SFS”,并在弹性文件服务页面右上角选择“创建文件系统”。 图1 创建文件系统 2.在"创建文件系统"界面的"文件系统类型"选项中,根据业务需要,选择"HPC型"或"HPC缓存型"文件系统类型。 图2 选择文件系统类型 3.在"创建文件系统"界面的"选择网络"选项中,需注意与购买的弹性云服务器选择相同的网络配置。 4.在"创建文件系统"界面的其他选项中请您根据业务需要,按需填写即可,填写完成后点击购买,完成创建。 图3 完成创建
  • Udapl安装和测试 Udapl安装 cd /root wget https://linux.mellanox.com/public/repo/mlnx_ofed/4.1-1.0.2.0/SRPMS/dapl-2.1.10mlnx-OFED.3.4.2.1.0.41102.src.rpm rpm -ivh dapl-2.1.10mlnx-OFED.3.4.2.1.0.41102.src.rpm cd /root/rpmbuild/SOURCES && tar -xvf dapl-2.1.10mlnx.tar.gz cd dapl-2.1.10mlnx ./configure --prefix=/usr --sysconf=/etc --libdir=/usr/lib64 LDFLAGS="-L/usr/lib64" CPPFLAGS="-I/usr/include" make make install Udapl配置修改 在/etc/dat.conf首行(放在末尾运行STAR-CCM+会有异常)加入如下配置。 ofa-v2-cma-roe-enp177s0 u2.0 nonthreadsafe default libdaplofa.so.2 dapl.2.0 "enp177s0 0" "" ofa-v2-cma-roe-enp177s0为配置名称,可以修改,但是要保持所有节点一致,并且后面starccm使用platform方式启动时候需要使用该配置名称。 enp177s0为网卡名称,可以使用ip a或者ipconfig查看到。 验证Udapl(使用dtest测试RoCE网络) 使用 dtest 进行验证: server端(192.168.0.96):dtest -P ofa-v2-cma-roe-enp177s0 -v -s client端(192.168.0.166):dtest -P ofa-v2-cma-roe-enp177s0 -v -h 192.168.0.96 ofa-v2-cma-roe-enp177s0是上一步/etc/dat.conf中首行配置的名称; client端的192.168.0.96是server端的ip。 验证通过的观测指标:client和server端都出现DAPL Test Complete. PASSED则表示验证通过
  • 操作步骤 安装Intel MPI。 下载Intel MPI。 下载地址:https://software.intel.com/en-us/intel-mpi-library 执行以下命令,解压并安装Intel MPI。 以l_mpi_2018.0.128.tgz为例: # tar -xvf l_mpi_2018.0.128.tgz # cd l_mpi_2018.0.128/ # ./install.sh 图1 Intel MPI成功安装 配置环境变量。 普通用户下,在“~/.bashrc”中添加: export PATH=$PATH:/opt/intel/impi/2018.0.128/bin64 export LD_LIBRARY_PATH=/opt/intel/impi/2018.0.128/lib64 执行下列命令,导入环境变量。 $ source ~/.bashrc 执行下列命令,查看是否导入成功。 $ which mpirun 图2 Intel MPI环境变量导入成功 回显结果如图2所示,表示环境变量导入成功。 执行以下命令,在单个BMS上运行Intel MPI。 执行以下命令,生成可执行文件。 $ mpicc hello.c -o hello 执行以下命令,在单个BMS上运行Intel MPI。 $ mpirun -np 2 /home/rhel/hello 图3 在单个BMS上运行Intel MPI
  • 操作步骤 查询是否安装了IB驱动。 执行以下命令,查询是否已成功安装IB驱动。 $ ls /usr/mpi/gcc/openmpi-3.1.0rc2/bin/mpirun $ rpm -qa | grep mlnx-ofa 图1 确认已安装IB驱动 查看回显结果。 如果回显如图1所示,表示已安装IB驱动,执行3。 如果未安装IB驱动,执行2。 安装IB驱动。 下载安装包“MLNX_OFED_LINUX-4.3-1.0.1.0-rhel7.3-x86_64.tgz”。 下载地址:https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/ 图2 IB驱动的下载页面 执行以下命令,安装软件包。 # yum install tk tcl # tar -xvf MLNX_OFED_LINUX-4.3-1.0.1.0-rhel7.3-x86_64.tgz # cd MLNX_OFED_LINUX-4.3-1.0.1.0-rhel7.3-x86_64 # ./mlnxofedinstall 配置环境变量。 使用vim编辑“~/.bashrc”文件,添加如下配置内容: export PATH=$PATH:/usr/mpi/gcc/openmpi-3.1.0rc2/bin export LD_LIBRARY_PATH=/usr/mpi/gcc/openmpi-3.1.0rc2/lib64 执行以下命令,查看MPI环境变量是否正常。 $ which mpirun 图3 查看IB驱动自带的Open MPI环境变量 如果回显如图3所示,表示环境变量配置成功。 执行以下命令,在单台BMS上运行IB驱动自带的Open MPI。 $ mpirun -np 2 -mca btl_openib_if_include "mlx5_0:1" -x MXM_IB_USE_GRH=y /usr/mpi/gcc/openmpi-3.1.0rc2/tests/imb/IMB-MPI1 PingPong 图4 单台BMS上运行Open MPI
  • 背景信息 IBM Spectrum MPI v10.1版本当前支持的操作系统列表如下: IBM Spectrum MPI 10.1.0.1 Eval for x86_64 Linux Red Hat Enterprise Linux version 6.6及其之后的版本 Red Hat Enterprise Linux version 7.1及其之后的版本 SUSE Linux Enterprise Server version 11 SP4 SUSE Linux Enterprise Server version 12及其之后的版本 IBM Spectrum MPI 10.1.0.2 Eval for Power 8 Linux Red Hat Enterprise Linux version 7.3及其之后的版本
  • 操作步骤 安装Spectrum MPI。 获取IBM Spectrum MPI软件包,需要进行注册。 获取的IBM Spectrum MPI软件包有两个,包括license和软件两部分: ibm_smpi_lic_s-10.1Eval-rh7_Aug11.x86_64.rpm ibm_smpi-10.01.01.0Eval-rh7_Aug11.x86_64.rpm 下载地址:https://www-01.ibm.com/marketing/iwm/iwm/web/preLogin.do?source=swerpsysz-lsf-3 安装IBM Spectrum MPI。 将1.a中下载的MPI软件包上传至运行MPI的BMS内(建议“/home/rhel”目录下)。 执行以下命令,设置环境变量。 如果选择自动接受IBM Spectrum MPI安装许可协议,执行以下命令: # export IBM_SPECTRUM_MPI_LICENSE_ACCEPT=yes 如果选择手动接受IBM Spectrum MPI安装许可协议,执行以下命令: # export IBM_SPECTRUM_MPI_LICENSE_ACCEPT=no 安装License部分。 选择自动接受IBM Spectrum MPI安装许可协议的,执行以下命令: # rpm -ivh ibm_smpi_lic_s-10.1Eval-rh7_Aug11.x86_64.rpm 选择手动接受IBM Spectrum MPI安装许可协议的,执行以下命令: # rpm -ivh ibm_smpi_lic_s-10.1Eval-rh7_Aug11.x86_64.rpm # sh /opt/ibm/spectrum_mpi/lap_se/bin/accept_spectrum_mpi_license.sh 安装软件部分。 # rpm -ivh ibm_smpi-10.01.01.0Eval-rh7_Aug11.x86_64.rpm 配置环境变量。 默认情况下,Spectrum MPI会安装至“/opt/ibm/spectrum_mpi”目录。该场景下需要设置如下环境变量: $ export MPI_ROOT=/opt/ibm/spectrum_mpi $ export LD_LIBRARY_PATH=$MPI_ROOT/lib:$LD_LIBRARY_PATH $ export PATH=$MPI_ROOT/bin:$PATH $ export MANPATH=$MPI_ROOT/share/man:$MANPATH $ unset MPI_REMSH 执行以下命令,查看MPI环境变量是否正常。 $ which mpirun 图1 检查MPI环境变量 在单个BMS上通过Spectrum MPI运行可执行文件。 假设hello.c文件在“/home/rhel/”目录下,生成的可执行文件名为hello,执行以下命令: $ cd /home/rhel/ $ mpicc hello.c -o hello 执行以下命令,在单个BMS上通过Spectrum MPI运行可执行文件。 $ mpirun -np 2 /home/rhel/hello 图2 单BMS上运行Spectrum MPI成功
  • 操作步骤 关闭防火墙。 登录集群中任意一台BMS。 执行以下命令,关闭BMS防火墙。 # service firewalld stop # iptables -F 执行以下命令,查看防火墙是否关闭成功。 # service firewalld status 图1 确认关闭防火墙成功 依次登录集群中所有BMS,重复执行1.b~1.c,关闭所有BMS的防火墙。 修改配置文件。 登录集群中任意一台BMS。 执行以下命令,查看BMS的主机名。 $ hostname 图2 查看BMS的主机名 依次登录集群中所有BMS,重复执行1.b~2.b,获取所有BMS的主机名。 登录集群中任意一台BMS。 执行以下命令,添加hosts配置文件。 # vi /etc/hosts 添加的内容为集群中所有BMS的私网IP和主机名,例如: 192.168.0.1 bms-0004 192.168.0.2 bms-0005 ... 执行以下命令,添加hostfile文件。 $vi hostfile 添加集群中所有BMS的主机名,例如: bms-0004 bms-0005 ... 依次登录集群中所有BMS,重复执行2.e~2.f。 在任意一台BMS中执行以下命令,运行社区Open MPI。 以两个BMS为例: $ mpirun -np 2 --pernode -hostfile hostfile /home/rhel/hello 图3 集群上运行社区OpenMPI成功 hostfile文件在运行时需要指定路径,可执行文件hello路径需为绝对路径,集群中所有可执行文件在同一路径下。
  • 操作步骤 关闭防火墙。 登录集群中任意一台BMS。 执行以下命令,关闭BMS防火墙。 # service firewalld stop # iptables -F 执行以下命令,查看防火墙是否关闭成功。 # service firewalld status 图1 确认关闭防火墙成功 依次登录集群中所有BMS,重复执行1.b~1.c,关闭所有BMS的防火墙。 修改配置文件。 登录集群中任意一台BMS。 执行以下命令,查看BMS的主机名。 $ hostname 图2 查看BMS的主机名 依次登录集群中所有BMS,重复执行1.b~2.b,获取所有BMS的主机名。 登录集群中任意一台BMS。 执行以下命令,添加hosts配置文件。 # vi /etc/hosts 添加的内容为集群中所有BMS的私网IP和主机名,例如: 192.168.0.1 bms-0004 192.168.0.2 bms-0005 ... 执行以下命令,添加hostfile文件。 $vi hostfile 添加集群中所有BMS的主机名,例如: bms-0004 bms-0005 ... 依次登录集群中所有BMS,重复执行2.e~2.f。 执行以下命令,在BMS集群上运行社区OpenMPI。 $ mpirun -np 12 -machinefile hostfile /home/rhel/hello 图3 BMS集群上Platform MPI运行成功 hostfile文件在运行时需要指定路径,可执行文件hello路径需为绝对路径,集群中所有可执行文件在同一路径下。
  • 操作场景 本节指导用户安装和使用IBM Spectrum MPI(以IBM Spectrum MPI v10.1为例)。 其中,IBM Spectrum MPI v10.1版本当前支持的操作系统列表如下: IBM Spectrum MPI 10.1.0.1 Eval for x86_64 Linux Red Hat Enterprise Linux version 6.6及其之后的版本 Red Hat Enterprise Linux version 7.1及其之后的版本 SUSE Linux Enterprise Server version 11 SP4 SUSE Linux Enterprise Server version 12及其之后的版本 IBM Spectrum MPI 10.1.0.2 Eval for Power 8 Linux Red Hat Enterprise Linux version 7.3及其之后的版本
  • 操作步骤 关闭防火墙。 登录集群中任意一台BMS。 执行以下命令,关闭BMS防火墙。 # service firewalld stop # iptables -F 执行以下命令,查看防火墙是否关闭成功。 # service firewalld status 图1 确认关闭防火墙成功 依次登录集群中所有BMS,重复执行步骤1.2~步骤1.3,关闭所有BMS的防火墙。 修改配置文件。 登录集群中任意一台BMS, 执行以下命令,添加hosts配置文件。 # vi /etc/hosts 添加的内容为集群中所有BMS的私网IP和主机名,例如: 192.168.1.138 bms-arm-ib-0001 192.168.1.45 bms-arm-ib-0002 ... 执行以下命令,添加hostfile文件。 $vi hostfile 添加集群中所有BMS的主机名,以及对应的核数(假设为2核),例如: bms-arm-ib-0001 slots=2 bms-arm-ib-0002 slots=2 ... 依次登录集群中所有BMS,重复执行步骤2.1~步骤2.2。 运行MPI benchmark。 在任意一台BMS中执行以下命令,检验hostfile文件是否配置成功。 $ mpirun -np 2 -pernode --hostfile hostfile -mca btl_openib_if_include "mlx5_0:1" -x MXM_IB_USE_GRH=y hostname 图2 检查配置文件 回显如图2所示,显示集群中所有BMS的主机名,则表示hostfile文件配置成功。 在任意一台BMS中执行以下命令,运行MPI benchmark,运行时指定hostfile路径。 以两个BMS为例: $ mpirun -np 2 -pernode --hostfile hostfile -mca btl_openib_if_include "mlx5_0:1" -x MXM_IB_USE_GRH=y /usr/mpi/gcc/openmpi-4.0.2a1/tests/imb/IMB-MPI1 PingPong 图3 集群运行IB驱动自带OpenMPI 系统回显如图3所示,表示集群上运行IB驱动自带的OpenMPI成功。
  • 什么是IPoIB IPoIB(Internet Protocol over InfiniBand),指利用物理IB网络(包括服务器上的IB卡、IB连接线、IB交换机等)通过IP协议进行连接,并进行数据传输。 它提供了基于RDMA之上的IP网络模拟层,允许应用无修改的运行在InfiniBand网络上。但是,IPoIB性能比RDMA通信方式性能要低,大多数应用都会采用RDMA方式获取高带宽低延时的收益,少数的关键应用会采用IPoIB方式通信。
  • IPoIB的约束和限制 支持管理一个IB网卡。 继承BMS、H2型、HL1型、HI3型云服务器对IB网卡的使用约束与限制,使用IPoIB特性的弹性云服务器不支持迁移。 继承H2型、HL1型、HI3型云服务器对IB网卡的使用约束与限制,使用的IB网络不支持安全组、Qos、三层及以上网络功能。 受限于网卡驱动限制,使用IPoIB特性的弹性云服务器不支持anti arp-spoofing、dhcp-spoofing。
  • 步骤1 安装FFTW 依次执行以下命令,安装FFTW软件。 yum install gcc-gfortran gcc-c++ wget http://www.fftw.org/fftw-3.3.8.tar.gz export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/mpi/gcc/openmpi-2.1.2a1/lib64/ export PATH=/usr/mpi/gcc/openmpi-2.1.2a1/bin:$PATH tar -zxvf fftw-3.3.8.tar.gz cd fftw-3.3.8/ ./configure --prefix=/opt/fftw CC=gcc MPICC=mpicc --enable-mpi --enable-openmp --enable-threads --enable-avx --enable-shared make && make install
  • 步骤3 配置lammps 算例输入文件。 以melt为例,生成一个算例melt.in文件。设置每迭代100步生成一个checkpoint文件,假定该文件存放在共享目录“/share”中。内容如下: # 3d Lennard-Jones melt units ljatom_style atomic lattice fcc 0.8442region box block 0 20 0 20 0 20create_box 1 boxcreate_atoms 1 boxmass 1 1.0 velocity all create 1.44 87287 loop geom pair_style lj/cut 2.5pair_coeff 1 1 1.0 1.0 2.5 neighbor 0.3 binneigh_modify delay 5 every 1 fix 1 all nvedump 1 all xyz 100 /share/sample.xyzrun 10000 every 100 "write_restart /share/lennard.restart" 生成用于checkpoint续算的输入文件“melt.restart.in”,内容如下: # 3d Lennard-Jones melt read_restart /share/lennard.restartrun 10000 every 100 "write_restart /share/lennard.restart" 生成pbs作业脚本“job.pbs”,内容如下: #!/bin/sh#PBS -l ncpus=2#PBS -o lammps_pbs.log#PBS -j oe export PATH=/usr/mpi/gcc/openmpi-2.1.2a1/bin:$PATH export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/mpi/gcc/openmpi-2.1.2a1/lib64/module if [ ! -e "/share/lennard.restart" ]; then echo "run at the beginning" mpiexec --allow-run-as-root -np 2 /share/lmp_mpi -in /share/melt.inelse echo "run from the last checkpoint" mpiexec --allow-run-as-root -np 2 /share/lmp_mpi -in /share/melt.restart.infi
  • 步骤5 提交作业,模拟计算中断,使用断点续算模式完成计算 模拟作业中断情况:提交作业后,通过关机计算节点的方式手动中断作业,查看中断前、后作业运行时间。 执行以下命令,提交作业。 qsub job.pbs 作业运行1分30秒左右,关机作业运行的计算节点,模拟算例释放场景。 执行以下命令,查看关闭计算节点后的作业信息。 qstat -f 作业ID 图4 中断前作业信息 此时,pbs作业回到queued状态,等待可用的计算资源。 开机2中关闭的计算节点,提供可用的计算资源。 此时,pbs作业会继续进行。 作业执行完成后,执行以下命令,查看作业信息。 qstat -f 作业ID 如图5所示,作业运行了3分03秒。由此可以看出,作业是从断点的位置进行续算的。 图5 中断后运行作业信息
  • 步骤2 安装lammps 依次执行以下命令,安装lammps。 yum install libjpeg-* yum install libpng12-* wget https://lammps.sandia.gov/tars/lammps-2Aug18.tar.gz tar -zxvf lammps-2Aug18.tar.gz cd lammps-2Aug18/src vi MAKE/Makefile.mpi 根据图1、图2,修改红框标识中的内容。其中,版本号需根据实际情况进行填写。 只修改图1、图2中红框标识的内容。 图1 修改Makefile文件01 图2 修改Makefile文件02 执行以下命令,编译lammps,并将当前目录生成的lmp_mpi文件拷贝至“/share”目录。 make mpi
  • IPoIB的IP地址分配方式有哪些 有两种IP地址分配方式:静态配置和DHCP动态配置。 静态配置: IPoIB设备有20个字节的硬件地址,前4个字节是queue pair number,中间8个字节是子网前缀,最后8个字节是guid。 IPoIB设备的硬件地址只能通过ip命令查询,ifconfig查询不到完整地址。静态IP地址配置举例如下: 图1 静态IP地址配置 DHCP动态配置: 标准的DHCP帧格式包括了硬件类型(htype)、硬件地址长度( hlen)、 硬件地址(chaddr)等字段。由于MAC地址字段的长度不能容纳IPoIB的硬件地址,因此定义client-identifier字段来标识client端dhcp会话。该client-identifier用于IP地址和client关联,DHCP Server根据该标识来区分客户端分配IP地址。 HPC解决方案当前采用的是DHCP方式的IPoIB方案,实现IP地址自动化发放和配置。
共99354条