成都网站建设设计

将想法与焦点和您一起共享

手动搭建HPC(高性能计算)

建站服务器

撰写日期:2017年6月13日

成都创新互联专业为企业提供新县网站建设、新县做网站、新县网站设计、新县网站制作等企业网站建设、网页设计与制作、新县企业网站模板建站服务,十载新县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

作者:翟江恒

一般情况下不会采用手动的方式安装HPC,而是采用集成自动化方案来部署hpc,但是这些集成方案都是集成了指定的操作系统发行版本,比如常见的HPC集成自动化方案rockets,到目前为止集成centos 6.6,如果需要把HPC安装其他linux发行版本环境里面,就不能使用集成自动化方案,必须使用手动安装方法,这篇博客就是叙述如何手动搭建HPC的。敬请往下看。

1. HPC简介

2. HPC架构

3. ssh无密码访问

4. 安装配置NFS

5. 安装配置NIS

6. 安装tentakel

7. 安装openmpi

8. 安装torque

9. 安装ganglia

1.HPC简介

3.SSH无密码访问

#!/bin/bash

rm -fr/root/.ssh

/usr/bin/expect<

setforce_conservative 0 ;# set to 1 toforce conservative mode even if

;# script wasn\'t run conservativelyoriginally

if{\\$force_conservative} {

set send_slow {1 .1}

proc send {ignore arg} {

sleep .1

exp_send -s -- \\$arg

}

}

settimeout -1

spawnssh-keygen -t dsa

match_max100000

expect-exact Enter file in which to save the key (/root/.ssh/id_dsa):

send --\\r

expect-exact Enter passphrase (empty for no passphrase):

send --\\r

expect-exact Enter same passphrase again:

send --\\r

expecteof

EOF

cd/root/.ssh

catid_dsa.pub >> authorized_keys

chmod 600authorized_keys

#!/bin/bash

if [ $#-ne 1 ]

then

{

echo \'usage: step1.exp root_password\'

exit

}

fi;

ROOTPASSWD=$1

rm -fr/root/.ssh/known_hosts

#for((node=1;node<=10;node++))

for nodein $(cat hostfile)

do

/usr/bin/expect<

# set to1 to force conservative mode even if

setforce_conservative 0 ;

;# script wasn\'t run conservativelyoriginally

if{\\$force_conservative} {

set send_slow {1 .1}

proc send {ignore arg} {

sleep .1

exp_send -s -- \\$arg

}

}

settimeout -1

spawn ssh${node} hostname

match_max100000

expect-exact Are you sure you want to continue connecting (yes/no)?

send --yes\\r

expect-exact ${node}\'s password:

send --${ROOTPASSWD}\\r

expecteof

EOF

#!/bin/bash

if [ $#-ne 1 ]

then

{

echo \'usage : step3.exp root_password\';

exit 1;

}

fi;

ROOTPASSWORD=$1

#for((node=1;node<=10;node++))

for nodein $(cat hostfile)

do

/usr/bin/expect<

setforce_conservative 0 ;# set to 1 toforce conservative mode even if

;# script wasn\'t run conservativelyoriginally

if{\\$force_conservative} {

set send_slow {1 .1}

proc send {ignore arg} {

sleep .1

exp_send -s -- \\$arg

}

}

settimeout -1

spawn scp-rp /root/.ssh ${node}:/root

match_max100000

expect-exact root@${node}\'s password:

send --${ROOTPASSWORD}\\r

expecteof

EOF

执行命令:touch hostfile

编辑hostfile文件,加入说有主机名,一行一个。

例如:

node136

node137

node138

hpc-test

执行如下命令:

cp setp1.exp setp2.exp setp3.exp hostfile /root/rootUser/

cp setp1.exp setp2.exp hostfile /home/普通用户目录

chmod755 –R /root/rootUser/

chmod755 –R /home/普通用户目录

chown root:root –R /root/rootUser/

chown普通用户:普通用户组–R /home/普通用户目录/

以下实现各服务器之间root用户之间ssh无密码访问。

4. NFS配置

5.安装配置NIS服务

测试tentakel是否生效

执行命令:tentakel –g all “uptime”

./configure --prefix=/hpc/openmpi CC=gcc CXX=g++F77=gfortran FC=gfortran

编译安装

make && make install(必须要make命令编译成功才执行makeinstall开始安装)

再执行:

source/etc/profile

Source/home/用户/.bashrc

测试openmpi

8.安装torque

/shared_storage/ ----指的是共享存储目录

/shared_storage/


执行torque-package-clients-linux-x86_64.sh和torque-package-mom-linux-x86_64.sh

把管理节点上的安装包目录里的contrib/init.d/pbs_mom拷贝到所有计算节点的/etc/init.d/目录。

把pbs_mom加入服务列表

chkconfig--add pbs_mom

设置pbs_mom服务开机自启动

chkconfigpbs_mom on

在管理节点编写脚本:

startpbs_server.sh和shutpbs_server.sh

startpbs_server.sh用来启动所有pbs服务,内容如下:

#!/bin/bash

for iin pbs_server pbs_mom pbs_sched trqauthd;

do

/etc/init.d/$istart

done

shutpbs_server.sh用来停止所有pbs服务,内容如下:

#!/bin/bash

for iin pbs_server pbs_mom pbs_sched trqauthd;

do

/etc/init.d/$istop

done

添加执行权限:

chmod+x startpbs_server.sh

chmod+x shutpbs_server.sh

执行:shstartpbs_server.sh启动所有服务。

在计算节点的编辑/etc/profile文件加入TORQUE_HOME环境变量

source/etc/profile

在计算节点执行:

#echo /usr/local/lib> /etc/ld.so.conf.d/torque.conf

#ldconfig

启动pbs_server

/etc/init.d/pbs_momstart

在管理节点执行命令:qnodes

状态为free就是正常的,为down就是计算节点的pbs_mom服务挂了。

编写测试脚本:

test.pbs内容如下:

#PBS-l nodes=1

##PBS-N test_1

#PBS-S /bin/bash

mpiexec–H localhost,node136,node137 -np 30 /home/hpc/a.out > /home/hpc/cu1111.log2>&1

su – 普通用户

提交作业:

qsub test.pbs

查看作业队列:

qstat

状态为C表示作业执行完成,为E表示作业执行完成正在退出。

9.安装ganglia监控

Ganglia由gmond、gmetad和gweb三部分组成

gmond(GangliaMonitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。

gmetad(GangliaMeta Daemon)是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。

gweb(GangliaWeb)gweb是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。

管理节点需要安装的组件:

gmetad

http

php

gweb

计算节点需要安装的组件:

gmond

在所有节点执行下面的操作:

安装软件源:wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm –ivh epel-release-6-8.noarch.rpm

执行如下命令:

yum clean all

yum makecach

yum update –y

yum search ganglia-gmetad ganglia-gmond

如果yum search命令可以找到ganglia软件包在开始安装管理节点和计算节点。

安装管理节点:

安装gmetad

执行:

yum installganglia-gmetad -y

安装ganglia-web

在安装ganglia-web之前需要先安装httpd和php

执行:

yum install httpd php

建立ganglia的web目录:

mkdir /var/www/html/ganglia

把ganglia-web下面的所有文件拷贝到/var/www/html/ganglia

配置管理节点:

配置gmetad

修改gmetad服务的配置配文件:

vim /etc/ganglia/gmetad.conf

修改data_source参数

格式为:data_source “集群名称” host1:port,host2:port,.. hostN:port

如果不指定端口会使用默认端口:8649

配置ganglia-web

gmond服务配置

name字段需要和管理节点一致。

在管理节点执行:

systemctl enablegmetad.service

systemctl startgmetad.service

systemctl enablehttpd.service

systemctl enablehttpd.service

在计算节点执行:

systemctl enablegmond.service

systemctl start gmond.service

下面是见证奇迹的时刻。

在浏览器地址栏里面输入:

http://apache-hosot/ganglia


名称栏目:手动搭建HPC(高性能计算)
本文链接:http://chengdu.cdxwcx.cn/article/cppeig.html