Professional Documents
Culture Documents
http: //ome ga.h pc.cs ie .t hu .ed u. tw /wi ki/i nde x. ph p/ %E 9% A6 %96 %E9 %A 0% 81
前言
本實驗室主要研究方向之一為網格計算,為了達成分享分散的計算、儲存資源,我們利用 Globus
Alliance 所維護髮展的 Globus Toolkit 作為中介軟體,將分散各地的機器串聯起來。我們將教你如何安
裝 Globus Toolkit 4 於 Fedora Core 3 ,主要是因為 Globus Toolkit 到了版本 4 開始有支援 Fedora Core 3
的 Binary 版本,也就是說,我們現在可以不用像以前一樣裝 Globus Toolkit 3 時要花很多時間編譯原始
碼,就可以很快享有網格計算帶來的便利。
• 圖片顯示的軟體版本與文字不一為正常現象,請依照新版版號自
行判斷
IP 與 Hostname 設定
執行「」指令確認 設定是否正確
檢查「」設定,如圖才是正確的,別忘了把 主機也加入,後面會用到, 「」
有需要的話可以編輯「」修改 ,重開機後生效
需要帳號
需要軟體
使用 root 於「/opt」下建立子目錄「src」存放所需軟體。我們將安裝所需軟體於「/opt」底下,你可以直接連
到「http://hpc.csie.thu.edu.tw/~cagen/gt4.0.1/」下載(使用 wget 指令)下列軟體,或是到各軟體的官網上下
載最新版本。
•
o 網址:
o 說明:版本以 以上為佳,請下載 「」。
•
o 網址:
o 說明:這是安裝 必備軟體,請下載「」。
•
o 網址:
o 說明:請下載「」,我們需要裡面的「」。
•
o 網址:
o 說明:請下載「」的「」,如果你是使用其他 ,請找相對應的版本,如果找不到的話,請
下載原始碼版本「」或是「」。
•
o 網址:
o 說明:如果你需要安裝 才需要下載安裝「」,這邊我們直接使用實驗室的 即可。
•
o 網址:
o 說明:請下載由實驗室所發的 「」。
•
o 網址:
o 說明:這邊我們下載最新版本 「」。
下載至「」裡面的所有軟體
安裝步驟
準備好上面的軟體及帳號後,請跟著下面的步驟做,我們將所有軟體安裝在「/opt」底下,除了比較方
便管理之外,以後如果安裝 condor 之類的軟體,需要使用到 NFS,則我們可以更方便的分享已經安
裝好的軟體至其他機器上。
設定網路時間校時
設定網路時間校時執行時間校正可以避免因為機器之間的時間不一致,而產生一些執行上的錯誤,請
一定要設定妥當。以下步驟皆使用 root 帳號執行。
• 在「」底下新增一個 檔案,這樣就可以讓系統自動每小時進行時間校正。
# vi /etc/cron.hourly/ntp.cron
輸入以下內容
#!/bin/bash
/usr/sbin/ntpdate -s time.stdtime.gov.tw
/usr/sbin/hwclock –w
檔案的內容
網路時間校時執行畫面
安裝 J2SE SDK
• 在「」底下,變更「」為可執行屬性
# chmod +x j2sdk-1_4_2_11-linux-i586.bin
.執行「j2sdk-1_4_2_11-linux-i586.bin」進行解壓縮
# ./j2sdk-1_4_2_11-linux-i586.bin
增加可執行屬性
按「」直接跳到最後面
然後輸入「」按 進行解壓縮
解壓縮完畢
解壓縮完畢
產生一個新資料夾「」
.將「j2sdk1.4.2_11」移到上一層,即「/opt」底下
# mv j2sdk1.4.2_11 /opt
移完後的樣子
.在「」底下,作一個
# ln -s j2sdk1.4.2_11/ java
做完 的樣子
安裝 Apache Ant
• 在「」底下解壓縮「」及「」
# cp junit4.0/junit-4.0.jar apache-ant-1.6.5/lib/junit.jar
# mv apache-ant-1.6.5 /opt
.一樣在「/opt」底下做個 Link
# ln -s apache-ant-1.6.5/ ant
設定環境變數
• 編輯「」加入以下設定,完成後記得匯入環境變數
# vim /etc/profile
(.... 略 ....)
fi
# Java Home
export JAVA_HOME=/opt/java
PATH=$JAVA_HOME/bin:$PATH
# Ant Home
export ANT_HOME=/opt/ant
PATH=$ANT_HOME/bin:$PATH
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
(.... 略 .....)
設定 以及 的環境變數
.測試 以及 是否正常,如下圖
# java -version
# ant -version
出現版號才是正確的
安裝 Globus Toolkit
• 在「」底下新增資料夾「」
# cd /opt
# mkdir globus
.在「」底下解壓縮「」
# cd /opt/src
# tar zxf gt4.0.1-x86_fc_3-binary-installer.tar.gz
.將 裝至「」
# cd gt4.0.1-x86_fc_3-binary-installer
# ./configure --prefix=/opt/globus
這樣才是正確的
.如果 沒有錯誤的話就可以接著編譯原始碼,然後進行安裝
# make
# make install
開始
完畢
開始
完畢
設定環境變數
編輯「/etc/profile」加入以下設定,完成後記得匯入環境變數
# vim /etc/profile
(.... 略 ....)
fi
# Java Home
export JAVA_HOME=/opt/java
PATH=$JAVA_HOME/bin:$PATH
# Ant Home
export ANT_HOME=/opt/ant
PATH=$ANT_HOME/bin:$PATH
# Globus Home
export GLOBUS_LOCATION=/opt/globus
PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$PATH
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
. $GLOBUS_LOCATION/etc/globus-user-env.sh
for i in /etc/profile.d/*.sh ; do
(.... 略 ....)
.匯入環境變數
# source /etc/profile
設定 的環境變數
.設定「」
# vi /etc/ld.so.conf
於最下面加入「」
完成後執行「」
# ldconfig
安裝 Simple CA Package (Client)
編譯 過程
安裝 過程
.設定
複製畫面中的「/opt/globus/setup/globus_simple_ca_ffa40f5d_setup/setup-gsi」然後再加上「-defsult」參數一起
執行
設定 ,別忘了後面的「」參數;回答問題按 繼續即可
輸入「」存檔
認證設定
要求機器的認證
產生機器的認證金鑰完畢
簽署完後可在「」底下看到三個檔案,其中「」大小為
在使用者家目錄的「」底下一樣可以看到三個檔案,其中「」大小為
將「」及「」傳送至
.簽署機器及使用者的金鑰
這個步驟一般來說是由 CA Server Administrator 負責簽署認證,但是我們實驗室為了方便起見,我們使
用 cagen 這個帳號來負責進行簽署的動作。 當你完成上一步驟,接著使用 cagen 這個帳號透過 SSH 登
入實驗室主機 hpc (位址為 hpc.csie.thu.edu.tw)
# ssh cagen@hpc
登入 主機後可以看到剛才傳送過來的兩個待認證檔案
一般來說,如果你傳送過去時沒有另外指定檔名,請直接執行「cagen」個 Script ,因為有兩個待認證檔
案,所以會要求你輸入兩次 CA Server Administrator 設定的密碼,這樣就完成簽署的動作了,最後執行
「verifyall」這個 Script 驗證一下,進一步訊息請查看置頂文件「0-ReadMeFirst-0」。
$ ./cagen
$ ./verifyall
$ exit
完成簽署的動作並驗證
新增加了兩個簽署完的檔案「」以及「」
.取回簽署完的認證檔案
使用 cagen 完成簽署的動作後,我們還需要將檔案取回來覆蓋本來的檔案,這樣才算完成。
以下步驟使用 root 帳號執行。
# scp cagen@hpc:~/hostcert.pem /etc/grid-security
# scp cagen@hpc:~/usercert.pem /home/test/.globus
取回簽署完畢的認證檔案
.測試 Proxy
輸入實驗室通用帳號密碼
產生 成功
設定「 /etc/grid-security/grid-mapfile」
$ grid-cert-info -s
可得到「」
接著使用 root 帳號新增或編輯「/etc/grid-security/grid-mapfile」,輸入如下列格式,即將 Subject 使用引號
引起來,然後空一格後面加上使用者的帳號。
# vi /etc/grid-security/grid-mapfile
"/O=Thu/OU=Hpc/OU=hpc.csie.thu.edu.tw/OU=hpc.csie.thu.edu.tw/CN=test" test
「」的設定方式
輸使用的。
.新增「/etc/xinetd.d/gsigatekeeper」檔案,輸入以下內容,注意等號前後有一個空白。
service gsigatekeeper
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
env = LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gatekeeper
server_args = -conf /opt/globus/etc/globus-gatekeeper.conf
}
「」的內容
.新增「」檔案,輸入以下內容,注意等號前後有一個空白。
service gsiftp
{
disable = no
instances = 100
socket_type = stream
wait = no
user = root
env += GLOBUS_LOCATION=/opt/globus
env += LD_LIBRARY_PATH=/opt/globus/lib
server = /opt/globus/sbin/globus-gridftp-server
server_args = -i
log_on_success += DURATION
nice = 10
}
「」的內容
.編輯「」,替這兩個 開啟 ,新增內容如下:
gsigatekeeper 2119/tcp # Globus Gatekeeper
gsiftp 2811/tcp # Globus GridFTP
「」的內容
.重新啟動 服務,使得 開啟
# service xinetd restart
.檢查 是否開啟成功
# netstat -an|grep 2119
# netstat -an|grep 2811
開啟成功
測試 Globus 設定
前面的設定可以說是為了這一步,如果成功的話,代表你前面的設定正確,如果失敗的話,趕緊往前
檢查一下哪裡有問題吧。
# su - test
$ grid-proxy-init -verify -debug
$ globus-job-run demo1 /bin/hostname
$ globus-job-run demo1 /bin/date
本機執行「」以及「」成功
.這裡的「init.sh」為本機端檔案,請自己產生一個任意檔案,而「init2.sh」為你要傳過去存成什麼檔名,
請自行指定,demo1 為機器的名字,請替換成你自己的機器名字。
本機測試 成功
安裝 MPICH- G2
.先在「/opt」底下建立資料夾「mpich-1.2.7」並做一個 Link
# cd /opt
# mkdir mpich-1.2.7
# ln -s mpich-1.2.7/ mpich
.進入「」底下,解壓縮「」,然後執行「」
# cd /opt/src
# tar zxf mpich-1.2.7.tar.gz
# cd mpich-1.2.7
# ./configure --prefix=/opt/mpich --with-device=globus2:-flavor=gcc32dbg
.Configure 無誤後執行「make」以及「make install」
# make
# make install
.設定環境變數
(.... 略 ....)
fi
# Java Home
export JAVA_HOME=/opt/java
PATH=$JAVA_HOME/bin:$PATH
# Ant Home
export ANT_HOME=/opt/ant
PATH=$ANT_HOME/bin:$PATH
# Globus Home
export GLOBUS_LOCATION=/opt/globus
PATH=$GLOBUS_LOCATION/bin:$GLOBUS_LOCATION/sbin:$PATH
# Mpich Home
export MPICH_HOME=/opt/mpich
PATH=$MPICH_HOME/bin:$PATH
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
. $GLOBUS_LOCATION/etc/globus-user-env.sh
for i in /etc/profile.d/*.sh ; do
(.... 略 ....)
測試 MPICH-G2
• 以下步驟以使用者帳號 執行。
• 下載以 函式庫撰寫的原始碼,可至「」下載
# su - test
$ wget http://hpc.csie.thu.edu.tw/~cagen/mpi_src/hello3_mpi.c
$ wget http://hpc.csie.thu.edu.tw/~cagen/mpi_src/mm_mpi.c
.進行編譯的動作
$ mpicc -o hello3_mpi hello3_mpi.c
$ mpicc -o mm_mpi mm_mpi.c
.編輯 檔案,指定執行機器以及 個數,這邊我們以 demo1為例,格式為:
「 「」」,與 中間有空格。你
也可以使用「」這個參數來指定其他的 。
$ vi machines
的內容
.執行程式的指令如下,其中「」代表要使用幾顆 來計算,另外,你也可以使用「」來指定其他的 檔案
注意:「」的「」以及程式後面接的矩陣大小必須是 的冪次方。
$ mpirun -np 1 hello3_mpi
$ mpirun -np 2 mm_mpi 256
輸出「」
矩陣相乘的結果
參照