手动搭建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<<EOF

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<<EOF

# 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<<EOF

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(高性能计算)
网站URL:https://www.cdcxhl.com/article6/cppeig.html

成都网站建设公司_创新互联,为您提供云服务器建站公司网站策划标签优化响应式网站网站设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计