91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

手動搭建HPC(高性能計算)

發布時間:2020-09-01 01:14:40 來源:網絡 閱讀:8352 作者:zhaijiangheng 欄目:建站服務器


撰寫日期: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 系統中很重要,但是使系統如此有效的核心功能是由操作系統應用軟件提供的。

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

手動搭建HPC(高性能計算)

執行如下命令:

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

cp setp1.exp setp2.exp hostfile /home/普通用戶目錄

chmod 755 –R  /root/rootUser/

chmod 755 –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端

手動搭建HPC(高性能計算)


修改完畢后,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”

手動搭建HPC(高性能計算)

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, 文件末尾加入openmpilib目錄路徑。

vim /etc/ ld.so.conf

手動搭建HPC(高性能計算)

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

上傳安裝包

手動搭建HPC(高性能計算)


 

解壓安裝包

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

手動搭建HPC(高性能計算)

添加TORQUE_HOMEH環境變量

vim /etc/profile

手動搭建HPC(高性能計算)

執行命令: source /etc/profile


在安裝包目錄下面執行:

手動搭建HPC(高性能計算)


執行:pbs_server –u

手動搭建HPC(高性能計算)

touch /var/spool/torque/server_priv/nodes

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

手動搭建HPC(高性能計算)

安裝計算節點:

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


生成了幾個shell腳本:

手動搭建HPC(高性能計算)


在管理節點上執行:

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

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

手動搭建HPC(高性能計算)


在所有計算節點上執行:

cd 到共享目錄

手動搭建HPC(高性能計算)


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

手動搭建HPC(高性能計算)

把管理節點上的安裝包目錄里的contrib/init.d/pbs_mom拷貝到所有計算節點的/etc/init.d/目錄。

手動搭建HPC(高性能計算)


把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啟動所有服務。

手動搭建HPC(高性能計算)

在計算節點的編輯/etc/profile文件加入TORQUE_HOME環境變量

手動搭建HPC(高性能計算)


source/etc/profile

 

在計算節點執行:

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

#ldconfig

啟動pbs_server

/etc/init.d/pbs_momstart

手動搭建HPC(高性能計算)


在管理節點執行命令:qnodes

狀態為free就是正常的,為down就是計算節點的pbs_mom服務掛了。

手動搭建HPC(高性能計算)


編寫測試腳本:

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

手動搭建HPC(高性能計算)

查看作業隊列:

qstat

手動搭建HPC(高性能計算)

狀態為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 

手動搭建HPC(高性能計算)

如果不指定端口會使用默認端口:8649

 

配置ganglia-web

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

配置gangliaweb界面比較簡單,只需要修改幾個php文件即可,首先第一個是conf_default.php,可以將conf_default.php重命名為conf.php,也可以保持不變,gangliaweb默認先找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{…….}部分如下:

手動搭建HPC(高性能計算)


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(高性能計算)

手動搭建HPC(高性能計算)

手動搭建HPC(高性能計算)


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衢州市| 建湖县| 盐池县| 宁化县| 苍梧县| 民勤县| 监利县| 奉贤区| 牡丹江市| 东乌珠穆沁旗| 绵阳市| 兰西县| 张家口市| 彭山县| 武城县| 岑巩县| 壶关县| 繁峙县| 颍上县| 通山县| 保定市| 新化县| 西宁市| 和平区| 手游| 海宁市| 柘城县| 南郑县| 包头市| 宝山区| 绥宁县| 武冈市| 平塘县| 小金县| 资讯| 清原| 驻马店市| 望城县| 宝丰县| 东阳市| 关岭|