日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

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

發布時間:2023/12/1 综合教程 26 生活家
生活随笔 收集整理的這篇文章主要介紹了 手动搭建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簡介

高性能計算(Highperformance computing,縮寫HPC) 指通常使用很多處理器(作為單個機器的一部分)或者某一集群中組織的幾臺計算機(作為單個計算資源操作)的計算系統和環境。有許多類型的HPC 系統,其范圍從標準計算機的大型集群,到高度專用的硬件。大多數基于集群的HPC系統使用高性能網絡互連,比如那些來自 InfiniBand 或 Myrinet 的網絡互連。基本的網絡拓撲和組織可以使用一個簡單的總線拓撲,在性能很高的環境中,網狀網絡系統在主機之間提供較短的潛伏期,所以可改善總體網絡性能和傳輸速率。

2. hpc架構

HPC網絡架構如圖所示

上圖顯示了一網狀 HPC 系統。在網狀網絡拓撲中,該結構支持通過縮短網絡節點之間的物理和邏輯距離來加快跨主機的通信。

盡管網絡拓撲、硬件和處理硬件在 HPC 系統中很重要,但是使系統如此有效的核心功能是由操作系統和應用軟件提供的。

HPC 系統使用的是專門的操作系統,這些操作系統被設計為看起來像是單個計算資源。正如從圖1和圖2中可以看到的,其中有一個控制節點,該節點形成了 HPC 系統和客戶機之間的接口。該控制節點還管理著計算節點的工作分配。

對于典型 HPC 環境中的任務執行,有兩個模型:單指令/多數據(SIMD) 和多指令/多數據 (MIMD)。SIMD在跨多個處理器的同時執行相同的計算指令和操作,但對于不同數據范圍,它允許系統同時使用許多變量計算相同的表達式。MIMD允許HPC 系統在同一時間使用不同的變量執行不同的計算,使整個系統看起來并不只是一個沒有任何特點的計算資源(盡管它功能強大),可以同時執行許多計算。

不管是使用 SIMD 還是 MIMD,典型HPC 的基本原理仍然是相同的:整個HPC 單元的操作和行為像是單個計算資源,它將實際請求的加載展開到各個節點。HPC 解決方案也是專用的單元,被專門設計和部署為能夠充當(并且只充當)大型計算資源。

3.SSH無密碼訪問

建立腳本目錄

mkdir –p /root/rootUser

mkdir –p /home/普通用戶目錄

例如: mkdir –p /home/hpc (hpc就是一個普通用戶)

編寫如下三個腳本:

Setp1.exp

內容如下:

#!/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

step2.exp

內容如下:

#!/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

done;

step3.exp

內容如下:

#!/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

Done

執行命令: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無密碼訪問。

修改hostfile文件內容,把所有主機名稱添加進去。

先使用root用戶順序執行目錄/root/rootuser里面的腳本:

sh step1.exp

sh step2.exp root 密碼

sh step3.exp root 密碼

以下實現各服務器之間普通用戶之間ssh無密碼訪問。

先在所有主機上建立相同的用戶,執行命令:

Useradd 用戶名

Paswd 用戶名

修改hostfile文件內容,同上。

執行順序目錄/home/normalUser下面的腳本

sh step2.exp 普通用戶密碼

sh step3.exp 普通用戶名 密碼

以上腳本執行完成后使用root和普通用戶使用ssh命令測試各服務器之間是否可以無密碼訪問。

4. NFS配置

在管理節點上設置共享目錄:

touch /etc/exports

echo ‘/home *(rw,insecure,no_root_squash,sync)’>>/etc/exports

echo ‘/hpc *(rw,insecure,no_root_squash,sync)’>> /etc/exports

啟動nfs服務器

systemctl start nfs.service

查看nfs服務狀態

systemctl status nfs.service

設置nfs開機自啟動

systemctl enable nfs.service

在計算節點上執行mount命令把/home和/opt掛載到本地:

mount -t nfs -o vers=3 hpc:/opt /opt

mount -t nfs -o vers=3 hpc:/home /home

5.安裝配置NIS服務

NIS的作用是讓整個系統里的機器的賬戶能統一管理。

yum install –y ypbind yp-tools ypser rpcbind protmap

NIS的配置如下:

1)server端的配置

1、開啟兩個服務:

[root@admin ~]# /sbin/chkconfig yppasswdd on

[root@admin ~]# /sbin/chkconfig ypserv on

[root@admin ~]# /sbin/service yppasswdd restart

[root@admin ~]# /sbin/service ypserv restart

2、配置NIS域名

[root@admin ~]# nisdomainname TS10K

(必需將nisdomainname TS10K加入到nis服務器的/etc/rc.d/rc.local文件里面或者把NISDOMAIN=TS10K加入到/etc/sysconfig/netwok文件里)

echo “/bin/nisdomainnamehpc”>>/etc/rc.d/rc.local

echo“NISDOMAIN=hpc”>>/etc/sysconfig/network

可以使用rpcinfo–u 本機名 ypserv 察看ypserv是否啟動,若成功啟動會看到:

program 100004 version 1 ready and waiting

program 100004 version 2 ready and waiting

若沒看到,則把ypserv重新啟動一下即可。

3、數據初始化

[root@admin ~]# cd /usr/lib/yp

[root@admin yp]#./ypinit –m 或者/usr/lib64/yp/ypinit -m

ctl+d(切記)來結束這個命令,再打入回車

回車后會顯示類似內容:admin has been set up as a NISserver ,now you can run ypinit –s admin on all slave server.

在server端重新建立新用戶后,需要到/var/yp 目錄下make一下(當nis map有任何修改必須重新make一下),這樣client端才能使用新用戶登錄。

2)client端的配置

1、設定NIS client

setup→authentication configuration→[*]use NIS

填寫:Domain:TS10K (NIS的域名)

Server: admin (server端的名稱或者ip)

2、開啟服務

[root@cu001 ~]# /sbin/chkconfig ypbind on

[root@cu001 ~]# /sbin/service ypbind restart

也可以直接修改/etc/yp.conf文件來設定nis client端

修改完畢后,serviceypbind restart重啟服務即可

新增用戶時,需要更新nis賬戶和資料庫:

cd/var/yp make

6.安裝tentakel

解壓軟件包pip-1.1.tar

進入目錄:pip-1.1

cd pip-1.1

執行:python setup.py install

解壓軟件包:sfermigier-tentakel-1564958.zip

unzipsfermigier-tentakel-1564958.zip

cdsfermigier-tentakel-1564958

執行如下命令進行安裝:

pip install . (.是表示當前目錄)

拷貝配置文件到/etc

cp tentakel.conf/etc

測試tentakel是否生效

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

7.安裝openmpi

安裝所需依賴包:

yum install –ygcc-gfortran gcc gcc-c++ *aclocal

解壓openmpi-1.6.4.tar

tar –zxvf openmpi-1.6.4.tar

cd openmpi-1.6.4

下面開始編譯安裝:

生成安裝配置信息

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

編譯安裝

make && make install(必須要make命令編譯成功才執行makeinstall開始安裝)

編輯文件/etc/ ld.so.conf, 文件末尾加入openmpi的lib目錄路徑。

vim /etc/ ld.so.conf

執行ldconfig命令

編輯/etc/profile文件和用戶目錄下面的.bashrc文件,.bashrc是隱藏文件需要使用ls–al命令才可以看到。

加入如下內容:

export OPENMPI_HOME=/hpc/openmpi

export OPENMPI_PATH=$OPENMPI_HOME/bin

export TORQUE_HOME=/var/spool/torque

exportLD_LIBRARY_PATH=$OPENMPI_PATH:$OPENMPI_HOME/lib:$TORQUE_HOME:$LD_LIBRARY_PATH

export PATH=$PATH:$LD_LIBRARY_PATH

再執行:

source/etc/profile

Source/home/用戶/.bashrc

測試openmpi

8.安裝torque

Torque在整個集群里面充當任務調度的角色。

以下步驟在管理節點操作

安裝torque之前需要先安裝依賴包。

yum update

yum install -ylibxml2-devel openssl-devel

上傳安裝包

解壓安裝包

tar -zxvf torque-4.2.10.tar.gz

cd torque-4.2.10/

生成安裝信息,如果加了—perfix指定了安裝目錄,就會安裝到指定目錄,如果不加會安裝到默認目錄/usr/local,我這里不指定目錄,安裝默認目錄下。

執行 ./configure

生成安裝配置信息后執行如下命令進行編譯安裝:

make && make install

拷貝服務啟動程序到/etc/init.d/

cp torque/contrib/init.d/trqauthd/etc/init.d/

cp torque/contrib/init.d/pbs_server/etc/init.d/

cp torque/contrib/init.d/pbs_sched}/etc/init.d/

添加trqauth到服務列表

設置以上服務開機自啟:

chkconfig pbs_server on

chkconfig pbs_sched on

chkconfig trqauthd on

執行如下命令:

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

ldconfig

echo <pbs_server\'s_hostname> >/var/spool/torque/server_name

添加TORQUE_HOMEH環境變量

vim /etc/profile

執行命令: source /etc/profile

在安裝包目錄下面執行:

執行:pbs_server –u

touch /var/spool/torque/server_priv/nodes

vim /var/spool/torque/server_priv/nodes 加入所有計算機節點。

安裝計算節點:

在管理節點的torque安裝包目錄下執行:makepackages

生成了幾個shell腳本:

在管理節點上執行:

cp torque-package-mom-linux*.sh /shared_storage/ ----/shared_storage指的是共享存儲目錄

cp torque-package-clients-linux*.sh /shared_storage/

在所有計算節點上執行:

cd 到共享目錄

執行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

Ganglia的web監控界面是基于PHP的,因此需要安裝PHP環境,PHP環境的安裝不在介紹,可以在http://sourceforge.net/projects/ganglia/files/下載ganglia-web,然后放到web根目錄即可。

配置ganglia的web界面比較簡單,只需要修改幾個php文件即可,首先第一個是conf_default.php,可以將conf_default.php重命名為conf.php,也可以保持不變,ganglia的web默認先找conf.php,找不到會繼續找conf_default.php,需要修改的內容如下:

$conf[\'gmetad_root\'] =/var/www/html/ganglia/;# ganglia web根目錄

$conf[\'rrds\'] =${conf[\'gmetad_root\']}/rrds;#ganglia web讀取rrds數據庫的路徑

$conf[\'dwoo_compiled_dir\'] =${conf[\'gmetad_root\']}/dwoo/compiled;#需要777權限

$conf[\'dwoo_cache_dir\'] =${conf[\'gmetad_root\']}/dwoo/cache;#需要777權限

$conf[\'rrdtool\'] =/usr/bin/rrdtool;#指定rrdtool的路徑

$conf[\'graphdir\']= $conf[\'gweb_root\'] .\'/graph.d\';#生成圖形模板目錄

$conf[\'ganglia_ip\'] =127.0.0.1;#gmetad服務器的地址

$conf[\'ganglia_port\'] = 8652;#gmetad服務器的交互式提供監控數據端口發布

執行如下命令:

chmod 777 -R /var/www/html/ganglia/dwoo/cache/

配置計算節點gmond服務

在所有計算節點執行如下命令:

yum install ganglia-gmond –y

gmond服務配置

gmond服務配置文件是/etc/ganglia/gmond.conf

部分配置說明如下:

globals {

daemonize = yes #以后臺的方式運行

setuid = yes

user = nobody #運行gmond的用戶

debug_level = 0 #調試級別

max_udp_msg_len = 1472

mute = no #本節點將不會再廣播任何自己收集到的數據到網絡上

deaf = no #本節點將不再接收任何其他節點廣播的數據包

allow_extra_data = yes

host_dmax = 0 /*secs */

cleanup_threshold = 300 /*secs */

gexec = no #是否使用gexec

send_metadata_interval = 0

}

cluster {

name = Cluster1 #本節點屬于哪個cluster

owner = junfeng #指定該節點的所有者

latlong = unspecified #在地球上的坐標,經度、緯度

url = unspecified

}

host {

location = unspecified

}

udp_send_channel { #udp包的發送通道

mcast_join = 239.2.11.71 #多播模式,工作在239.2.11.71通道下。如果使用單播模式,則要 寫成host = host1,單播模式下也可以配置多個udp_send_channel

port = 8649 #監聽端口

ttl = 1

}

udp_recv_channel { #接收udp包配置

mcast_join = 239.2.11.71 #同樣工作在239.2.11.71通道下

port = 8649 #監聽端口

bind = 239.2.11.71 #綁定

}

tcp_accept_channel {

port = 8649 #通過tcp協議監聽的端口,遠端可以通過鏈接8649端口得到監控數據

}

在此文檔中我們只需要修改cluser{…….}部分如下:

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(高性能计算)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 小毛片网站 | 性五月天| 999精品| 久草精品视频在线观看 | 欧美黑人一级爽快片淫片高清 | 德国性猛交xxxxhd | 男人舔女人下部高潮全视频 | 欧美成人午夜视频 | 久久久久无码国产精品一区 | 亚洲成人av一区二区三区 | 少妇不卡视频 | 黄色国产在线视频 | 久久久无码一区二区三区 | 人妻少妇精品久久 | 粉嫩av国产一区二区三区 | 理论片在线观看理伦片 | 亚洲成人黄 | 久久久久久91| 国产浪潮av | 久久久久人妻一区精品色欧美 | 在线成人影视 | 日本在线观看www | 极品销魂美女一区二区 | 99在线精品免费视频 | 成人www视频 | 亚洲青草视频 | 99色精品| 无码aⅴ精品一区二区三区 精品久久在线 | 欧美bbbbb| 中文在线一区二区三区 | 毛片av在线| 一本色综合 | 国产白丝精品91爽爽久久 | 精品国产一 | 天天噜日日噜 | 超碰在线日韩 | 绿帽人妻精品一区二区 | 图片区偷拍区小说区 | www欧美色 | 日韩人妻一区二区三区蜜桃 | 亚洲午夜在线视频 | 国产经典一区 | 性av网站 | wwww黄色片 | 国产一级做a爱免费视频 | 99久久久国产精品无码免费 | 免费黄色入口 | 日韩毛片网| 国产精品vip | 麻豆网站入口 | 69社| 亚洲热av | 三上悠亚人妻中文字幕在线 | 日本成人一二三区 | 欧美大黄视频 | 91热爆在线 | 一级空姐毛片 | 欧美色图3p | 黄色69| 久色视频在线播放 | 黄色av网站免费在线观看 | 久热精品在线视频 | 影音先锋亚洲精品 | 污的网站| 四虎8848精品成人免费网站 | 欧美视频在线观看免费 | 欧美日日夜夜 | 最新国产网站 | 先锋av资源在线 | 台湾少妇xxxx做受 | 少妇视频一区二区三区 | 波多野结衣影院 | 亚洲一区二区免费在线观看 | 亚洲aaaaaa| 乱老熟女一区二区三区 | 欧美人体做爰大胆视频 | 精品黄色片 | 超碰在线观看免费 | 日本精品视频在线 | 欧美中出| 正在播放经典国语对白 | 美国式禁忌1980 | 久久久久亚洲av成人网人人网站 | 非洲一级片| 99视频网址 | 亚洲一区视频在线 | 欧美精品一二三四 | 午夜精品免费观看 | 任你操精品| 99热2| 在线看黄色网 | 综合久久久久久久 | 亚洲欧美另类中文字幕 | 黑名单上的人全集免费观看 | 亚洲网址 | 欧美黄色大片免费观看 | 国产97自拍 | 肉肉视频在线观看 | 久久福利小视频 |