交通大學應用數學 ARAComputing System 操作手冊 簡嘉宏 nelsonjian@aracity.com 0982838185
Part I: 使用者須知與操作說明
Architecture 專案範圍 dl320 clw01 clw02 clw03 clw04 WAN/LAN Matlab2009a(五人同時使用授權) Service Node NIS/NFS Compiler: Intel11.1-059 Plot: Tecplot360 Matlab2008a WAN/LAN 250GB Compute Node Intel 5430 Intel 5570 Intel 5570 Intel 5570 dl320 clw01 clw02 clw03 clw04 Switch 140.113.22.0/255.255.255.0 140.113.25.0/255.255.255.0 RHEL 5.3 NIS NFS:/data Network=
帳號管理 帳號管理: 註一:/data/V下還細分課程名稱,例如FEM課程,則為/data/V/FEM 註二:/data 為NFS的分享目錄 分類 帳號名稱 UID 群組名稱 GID 家目錄 教職員 T 1000 /data/T 博、碩士生 S 2000 /data/S 修課學生或其他 V 3000 /data/V
資源限制 政策 硬碟空間限制設定方式 顯示空間限制 可在任何一台計算主機上執行,以個人身份,查詢自己的空間限制 $> quota 記憶體限制 程序數量限制 T (教職員) 20Gb 無 S (博、碩士生) 2Gb 24Gb 15 V (修課學生或其他) 100Mb 4Gb 8
帳號整理 原舊帳號保留,密碼未設,無法登入 帳號名稱 UID GID 目錄 shuming 501 500 dl320:/home/shuming cchuang 502 /data/cchuang dl320:/home/cchuang sung 503 /data/sung wwlin 504 /data/wwlin qiang 505 /data/qiang tcwu 506 /data/tcwu giang 507 /data/giang min 508 /data/min yeno326 509 /data/yeno326 yen0326 510 /data/yen0326 femstu1 511 /data/femstu1 femstu2 512 /data/femstu2 femstu3 513 /data/femstu3 femstu4 514 /data/femstu4 femstu5 515 /data/femstu5 test1 516 /data/test1 test2 517 /data/test2 test3 518 /data/test3 guest 519 /data/guest ellie 520 clw01:/home/ellie chuang 521 clw01:/home/chuang
帳號整理(續) 原舊帳號移至T群組的UID/GID分配、目錄與預設密碼 廠商管理群組 廠商管理帳號 帳號名稱 UID GID 家目錄 其他目錄 預設密碼 billing 1001 1000 /data/T/billing clw01:/home/billing matlabuser 1002 /data/T/matlabuser smchang 1003 /data/T/smchang dl320:/home/smchang ytli 1004 /data/T/ytli dl320:/home/ytli mclai 1005 /data/T/mclai clw01:/home/mclai ctw 1006 /data/T/ctw clw01:/home/ctw 群組名稱 GID aracity 600 帳號名稱 UID GID 家目錄 註: aracity 600 /home/aracity dl320,clw01~04都有單獨的家目錄/home/aracity
如何登入系統 - 在 Windows 環境的客戶端下連結本系統(1) 系統遷入 使用putty這隻freeware程式 把google大神請出來,搜尋putty,找到網站,然後下載 您可以選擇下載至您的桌面,以便以後使用。 請點兩下開啟 在Host Name下,輸入您要登入的主機IP,例如: 要登入clw04,請輸入 140.113.22.105 接著按Open,開啟terminal 輸入您的帳號,按Enter 接著輸入您的密碼,按Enter
如何登入系統 - 在 Windows 環境的客戶端下連結本系統(2) 檔案傳遞 使用winscp這隻程式,也是免費的 一樣,把google大神請出來,找到下載點下載 安裝完畢後,桌面出現WinSCP的圖案 點兩下,出現WinSCP登入畫面,請點新增 出現新增畫面,接著,輸入 您要登入的主機名稱,例如: 140.113.22.105 用戶名稱: <輸入你的帳號名稱> 密碼: <輸入密碼>
如何登入系統 - 在 Windows 環境的客戶端下連結本系統(3) Xming Server 遠端X桌面設定 Xming,這隻程式也是免費的,可以到http://sourceforge.net/projects/xming/下載 下載完裝完成後,桌面出現X-lanch的圖案,點兩下,選擇Multiple windows,接者一路點下去,設定完畢後,最後會在佇列處出現Xming Server的圖案 下次再啟動X時,直接去點選Xming即可。
如何登入系統 - 在 Windows 環境的客戶端下連結本系統(4) 設定PUTTY連線時,將X11 Forward過來 接著,在使用putty遷入系統時,別急著按Open,先到Category中, Connection -> SSH -> X11 將Enable X11 forwarding選項打開 接著再按Open,打開terminal 輸入帳號密碼,登入系統
如何登入系統 - 在 Windows 環境的客戶端下連結本系統(5) Xming Server遠端X桌面使用 輸入xterm, $ xterm <Enter> 看是否能出現如右畫面, 出現表示成功。 X-ming的好處是可以將系統上好用的一些GUI工具如gnuplot,或者單位所採購的tecplot所顯示出的圖形給打到你的桌面上。 如果要啟用tecplot,請在putty登入clw04之後,輸入 $> tec360 之後按Enter,tecplot的圖形介面就會顯示到您的桌面上了。
如何登入系統 - 在 Linux 環境下的客戶端連結本系統 我們使用aracity這個帳號來展示,請在使用時,依實際情況,換成您的帳號名稱。 系統遷入 如果您是在xwindow下,請先開啟 terminal 使用ssh連入:$> ssh aracity@140.113.22.105 檔案傳遞 如果您是在 xwindow下,請先開啟terminal 第一招 - 使用sftp $> sftp aracity@140.113.22.105 sftp> put <file> 將檔案放上去 sftp> get <file> 將檔案傳回來 第二招 – 使用scp 將檔案file.dat傳上去到家目錄目錄下 $> scp file.dat aracity@140.113.22.105:/home/aracity 將在Cluster上的檔案/home/aracity/file.dat給傳回來 $> scp aracity@140.113.22.105:/home/aracity/file.dat ./ 將目錄myjob整個傳上去到家目錄下 $> scp –r myjob aracity@140.113.22.105:~/ X11桌面:不需設定,在使用ssh連入時加上-X就可以了 $> ssh –X 140.113.22.105
系統登入與環境設定 系統登入 全域共享目錄 本系統預設使用者能夠登入clw01,clw02,clw03,clw04這四部計算伺服器 在從您個人電腦登入時,請以實體IP的方式或是Domain Name方式登入 在您登入到任何一台計算伺服器後,若要再登入到其他計算伺服器,請直接使用該計算伺服器的主機名稱 全域共享目錄 透過網路檔案系統(NFS)將檔案伺服器上的目錄輸出給每個計算伺服器,使得所有的計算節點都可以共享該目錄。 使用者家目錄: /data ex : /data/T/smchang 每一位使用者都會有自己的家目錄 主機名稱 IP Domain Name clw01 140.113.22.122 clw01.math.nctu.edu.tw clw02 140.113.22.103 clw02.math.nctu.edu.tw clw03 140.113.22.104 clw03.math.nctu.edu.tw clw04 140.113.22.105 clw04.math.nctu.edu.tw
系統登入與環境設定 使用者的預設環境 csh/tcsh環境檔 bash 環境檔 本系統的預設環境為bash 原則上,使用者可以透過ypchsh來更改自己登入的SHELL,但是,本系統的設定以bash及csh為主。使用者自行更改SHELL可能會造成無法預期的環境變數未設置的狀況發生。 bash 環境檔 一般設定檔(不能更改,由管理者訂定) /etc/bashrc /etc/profile 個人設定檔(可以更改,自訂環境) ~/.bashrc ~/.bash_profile csh/tcsh環境檔 /etc/csh.cshrc /etc/csh.login ~/.cshrc ~/.login
一般使用者如何更改密碼? 範例: 使用aracity帳號,請登入clw01~clw04任何一台電腦 請勿登入dl320上去更改密碼,會無法更改成功 $> yppasswd Changing NIS account information for aracity on dl320. Please enter old password: <- 鍵入舊密碼 Please enter new password: <- 鍵入新密碼 Please retype new password: <- 再鍵入一次新密碼 The NIS password has been changed on dl320. <- 出現這行,表示成功更改密碼囉!
Intel編譯器的使用 請登入至clw04(140.113.22.105, clw04.math.nctu.edu.tw)裡 序列程式,沒有多執行緒的單線緒程式 一般最佳化 icc(ifort) –O2 –xS myprogram.c(myprogram.f90) –o myprogram.exe 完全最佳化 icc(ifort) -fast myprogram.c –o myprogram.exe 註:但在clw04以完全最佳化編譯好的程式無法到clw01跑,因為CPU架構不 Compiler flags for optimized compiling Optimized job compiled General Optimized IPO : if you don’t link other library icc(ifort) –O3 –ipo -static –xT General : if you want to link other library icc(ifort) –O2 –xT General SSE vectorized optimized with Pentium4 icc(ifort) –O2 –axW (with SSE2 extensions) icc(ifort) –O2 –axT (with SSE3 extensions) icc(ifort) –O2 –axS (with SSE4.1 extensions) Because libraries are often compiled by using “ –O2” flag without “-ipo” optimization
Intel編譯器的使用 Precision Improve General Compiling Flag Maintain the floating point precision Sometimes compiler do the optimization overly, it will cause the precision problem icc(ifort) –mp icc(ifort) –mp1 ( speed impact is less than –mp ) General Compiling Flag include directory <compiler> -I <include directory> ex: ifort –I ~/myinclude Link Libraries <compiler> -L <library directory> -l<libname> ex: You have a library named libfftw.a and placed in ~/mylib ifort –L ~/mylib –lfftw give the execution filename <compiler> -o <execution filename> ex: ifort …. –o myprogram.exe
Intel編譯器的使用 Parallel Job compile OMP job c pragma or fortran directive inline: icc –fast –openmp myprogram.c –o myprogram.exe ifort –fast –openmp myprogram.f90 –o myprogram.exe auto-parallelized: icc –fast -parallel myprogram.c –o myprogram.exe
執行你的工作 Sequential Job OMP Parallel Job 使用ssh登入到任一計算節點clw01~clw04 更改目錄(ex ~/myprogram)到置放執行檔(ex:a.out)的地方 $> cd myprogram 執行 $> ./a.out OMP Parallel Job set OMP number of threads runtime environment variable : export OMP_NUM_THREADS=<number_of_threads> Set OMP runtime stacksize export KMP_STACKSIZE=128m
Tecplot360的使用方式 請參照投影片的 如何登入系統 - 在 Windows 環境的客戶端下連結本系統(1),(3)~(5) 這三張slides 本軟體為單機永久授權,故同一時間僅能一人使用,請注意。 GUI圖形操作介面如右展示 本軟體安裝在clw04主機上, 使用時請登入至clw04,配 合使用Putty + Xming,將GUI 圖形操作介面從遠端給打到 近端的桌面上來。 登入方法: 開啟Xming Server 開啟Putty,輸入 140.113.22.105,並記得開啟 X11 Forwarding 登入後,輸入 #> tec360
MatLab的使用方式 使用putty + Xming 啟動 請登入到相關的計算節點上,如要使用matlab2008a,則登入到clw01,如要使用matlab2009a,則登入到clw02~clw04 2008a(安裝在clw01) $> matlab $> matlab2008a 2009a(安裝在clw01 ~ clw04,有五個人的浮動授權) $> matlab2009a
Linux環境下常用科學繪圖工具 - gnuplot 在Linux下進行高性能計算,得到數據後的簡易XY繪圖,最常用的就是gnuplot 他的好處是免費,而且輕薄短小,不佔太多記憶體資源,是一套跨平台的數學繪圖自由軟體,可以繪製數學函數圖形,也可以從純文字檔讀入大量數據,繪製統計圖表等。並且,對於以質點為主的資料的繪圖特別拿手 除了提供Unix版的之外,也提供windows版,windows版下載處 http://sourceforge.net/project/showfiles.php?group_id=2055&package_id=1996&release_id=536392 使用者下載Windows版時,需特別注意,因為gnuplot提供兩個windows的版本,一個是原生版,另一個則是cygwin版。 gp422win32x11.zip 這個是cygwin版的,必須先安裝cygwin才行 gp422win32.zip 這個是原生版的,下載來,直接解開後就可以使用 gnuplot-4.2.2.pdf 這個則是document 在本課程中,將教大家使用gnuplot來為程式執行後的結果繪圖。
Linux環境下程式開發常用編譯工具 - make make是編譯大量的source code一定要用到的工具。 當我們程式寫的很大,分成好幾個模組,就是一個一個小檔案時,這個時候,make就能很方便地幫助我們進行量程式編譯。 最常用的就是寫一個Makefile,而make就會根據Makefile中所敘述的目標所定義的規則來作編譯動作,並創造出可執行的工具來。 一個典型的Makefile(也可以是makefile),內容如下: CC=gcc CFLAGS=-O3 –funroll-all-loops –fomit-frame-pointer OBJ = main.o input.o compute.o output.o myprog:$(OBJ) $(CC) $(CFLAGS) –o myprog $(OBJ) clean: @rm *.o *~ 準備好Makefile好後,只需要執行make,就可以進行編譯。make會自動搜尋Makefile檔,或是makefile檔來進行。 $ make $ make –f mymakefile #如果名稱不是 Makefile或makefile
Linux環境下程式開發常用編輯器 – vi or gvim vi 為 Linux環境下最常被使用的編輯器 它支援c/c++/fortran以及bash/tcsh的各種語法,為各種語法設定不同顏色,以供閱讀 如果是X-Window下,可以使用圖形式的vi編輯器 – gvim 使用 vi ,並開啟檔案myprog.c進行編輯 $ vi myprog.c vi 有分為編輯模式,命令列模式 一、從命令到編輯模式 a :將游標放到目前游標後一個字元,開始文字編輯模式。insert i :將游標放在目前游標位置,開始文字編輯模式。append o :將游標放到下一行起始位置,開始文字編輯模式。open new line 比較常用就是i,a,o,I,A,O了,將來多試幾次就好了,就很熟悉了。 二、從編輯到命令 模式 按ESC鍵:沒事多按逃脫鍵,有益身體健康。
Linux環境下程式開發常用編輯器 – vi or gvim 三、命令模式中的其他命令 在命令模式中的按鍵就很多了,這些需要好好熟練一下了。 與檔案操作有關的命令 :q - 離開vi :e xxxx - 編輯xxxx :w - 存檔 :w xxxx - 另存檔案xxxx :q! - 不存檔強迫離開 :w! - 強迫存檔 :wq - 存檔與離開 搜尋與取代 / /pattern 尋找pattern ?pattern 往上尋找pattern n 再往下尋找 N 再往上尋找 :s/patrn/str/cgi搜尋patrn取代str 其中:跟s間必需指定範圍(range)沒設範圍就是游標這行 1,10 表示 1-10行 % 表示整篇 最後cgi c 表示confirm尋問 g 表示global全部 i 表示ignore不分大小寫 常用字元字串處理 cc 改變整行 dd 砍掉整行 yy 拷貝整行(yank whole line) p(or P) 貼上(paste) 你最近砍掉或拷貝的 26
Linux環境下程式開發常用編輯器 – vi or gvim 接續上頁 搜尋與取代 / /pattern 尋找pattern ?pattern 往上尋找pattern n 再往下尋找 N 再往上尋找 :s/patrn/str/cgi 搜尋patrn取代str 其中: 跟 s 間必需指定範圍(range)沒設範圍就是游標這行 1,10 表示 1-10行 % 表示整篇 最後cgi c 表示confirm尋問 g 表示global全部 i 表示ignore不分大小寫 例如: :%s/abc/def/g 表示把文中所有的abc取代成def :1,10s/aaa/bbb/g表示把第一行到第十行中的aaa全部取代成bbb 27
Part II: 管理者須知與操作說明
資源限制 政策 硬碟空間限制設定方式 顯示空間限制 設定空間限制 可在任何一台計算主機上執行,以個人身份,查詢自己的空間限制 $> quota 可在任何一台計算主機上執行,以root身份,查詢某個account的空間限制 #> quota <account> 設定空間限制 請登入dl320,並使用root帳號,只有擁有超級管理者權限的使用者才能使用 sudo su –來轉成root帳號設定某個account的空間大小 執行以下命令,此時會開啟vi來編輯某account的quota #> edquota <account> 硬碟空間限制 記憶體限制 程序數量限制 T (教職員) 20Gb 無 S (博、碩士生) 2Gb 24Gb 15 V (修課學生或其他) 100Mb 4Gb 8
資源限制(續) 記憶體與程序數量限制 範例: 設置檔:/etc/security/limits.conf #> edquota smchang Disk quotas for user smchang (uid 1003): Filesystem blocks soft hard inodes soft hard /dev/sdb1 6195276 19922944 20971520 105917 0 0 PS:blocks的單位為KB,所以如果是20GB = 20 x 1024 x 1024 KB = 20975120 KB 記憶體與程序數量限制 設置檔:/etc/security/limits.conf 主機:在clw01~clw04各自有一個設置檔 內容: @S hard maxlogins 1 @S hard nproc 15 @S hard rss 25165824 @V hard maxlogins 1 @V hard nproc 8 @V hard rss 4194304 Block device 目前以使用的blocks數 blocks數量的限制 軟 硬 目前已使用的inode數 inodes數量的限制 軟 硬
超級管理者 – super群組 群組名稱 權限 設置方式 能夠以sudo指令在無須密碼下執行root身份的工作 轉換成為root帳號 $> sudo su – 設置方式 登入dl320,轉成root帳號 鍵入如下指令,來編輯/etc/group檔,在super群組下加入或刪減成員 #> vigr 至dl320,clw01~clw04下,轉成root帳號 鍵入如下指令,來編輯/etc/sudoer檔 #> visudo 加入如下設定 %super ALL=(ALL) NOPASSWD: ALL 群組名稱 gid 成員 super 700 root,aracity,smchang,ytli,billing
NIS帳號管理 服務主機登入: 新增帳號: 請以一般具備super權限的使用者登入dl320服務主機,轉成root帳號 新增屬於T群組的帳號 查詢該群組下的流水編號(UID為1xxx的均屬於T群組),例如,帳號名稱為teacher,流水編號為1007,則 #> useradd -u 1007 -g 1000 -d /data/T -m teacher 新增屬於S群組的帳號 查詢該群組下的流水編號(UID為2xxx的均屬於S群組),例如,帳號名稱為g9700001,流水編號為2001,則 #> useradd -u 2001 -g 2000 -d /data/S -m g9700001 新增屬於V群組的帳號,其課程名稱為FEM 查詢該群組下的流水編號(UID為3xxx的均屬於T群組),例如,帳號名稱為u9800001,流水編號為3001,則 #> useradd -u 3001 -g 3000 -d /data/V/FEM -m u9800001 記住, V群組帳號被歸類為學生課程用帳號,故每一門課程在目錄/data/V下也有獨立的課程名稱目錄,所以,在建立新的課程,例如FEM,請先為此課程建立目錄。 #> mkdir /data/V/FEM #> chown –R V.V /data/V/FEM
NIS帳號管理(續) 為新帳號設定密碼 刪除帳號 #> passwd <帳號名稱> 單一帳號刪除方式 大量帳號刪除方式 使用者家目錄不刪除,于以保留 #> userdel <帳號名稱> 使用者家目錄一同刪除,不于保留 #> userdel –r <帳號名稱> 大量帳號刪除方式 使用以下指令,直接可以用vi開啟/etc/password並編輯 #> vipw 將要刪除的帳號一行行刪掉,結束後,儲存離開 接下來,會問是否也要編輯/etc/shadow檔,回答Yes。進入編輯畫面 將要刪除的帳號一行行刪掉,結束後,儲存離開 然後,如果也要將使用者的家目錄一同清掉,直接使用rm –rf指令將使用者的家目錄清掉即可。 例如: u9800001的家目錄為/data/V/FEM/u9800001,則 #> rm –rf /data/V/FEM/u9800001 若要刪除 整個 FEM 目錄下的使用者資料呢? #> rm –rf /data/V/FEM
NIS帳號管理(續) 更新帳號資訊: 在進行以下的設置後,必須要更新帳號資訊,讓所有的NIS Client都能取得最新的資訊 更新方式: 新增/修改/刪除 帳號 新增/修改/刪除 群組 為使用者在直接在NIS Server(dl320)上使用passwd更改密碼 更改/etc/password檔 更改/etc/shadow檔 更改/etc/group檔 更改/etc/gshadow檔 更改/etc/hosts檔 更新方式: 請登入dl320,並請轉到root帳號 $> sudo su – #> /aracluster/system/script/ypupdate.sh
設定磁碟配額 請登入dl320,並轉到root帳號 屬於T群組的帳號,有20GB的配額(19GB的軟配額) #> setquota -u <帳號名稱> 19922944 20971520 0 0 /data 屬於S群組的帳號,有2GB的配額(1.9GB的軟配額) #> setquota -u <帳號名稱> 1992294 2097152 0 0 /data 屬於V群組的帳號,有200MB的配額 #> setquota -u <帳號名稱> 204800 204800 0 0 /data
帳號設定 項目 說明 命令: #> usermod [-cdegGlsuLU] username 選項與參數 -c :後面接帳號的說明(即 /etc/passwd 第五欄的說明欄,可以加入一些帳號的說明) -d :後面接帳號的家目錄(即修改 /etc/passwd 的第六欄) -e :後面接日期,格式是 YYYY-MM-DD (即修改 /etc/shadow 第八個欄位) -f :後面接天數,為 shadow 的第七欄位。 -g :後面接初始群組,修改 /etc/passwd 的第四個欄位,亦即是 GID 的欄位! -G :後面接次要群組,修改這個使用者能夠支援的群組,修改的是 /etc/group 囉~ -a :與 -G 合用,可『增加次要群組的支援』而非『設定』喔! -l :後面接帳號名稱。亦即是修改帳號名稱, /etc/passwd 的第一欄! -s :後面接 Shell 的實際檔案,例如 /bin/bash 或 /bin/csh 等等。 -u :後面接 UID 數字啦!即 /etc/passwd 第三欄的資料; -L :暫時將使用者的密碼凍結,讓他無法登入。其實僅改 /etc/shadow 的密碼欄。 -U :將 /etc/shadow 密碼欄的 ! 拿掉,解凍啦!
設定帳號使用期限 範例: 假設有一新建帳號,名為poisson,管理者可以在建立該帳號時,就設定使用期限,該帳號的家目錄為/data/T/poisson,UID流水編號是1007,屬於T(GID=1000),群組期限日是2010/12/31。 #> useradd –u 1007 –g 1000 –d /data/T/poisson –m poisson –e 2010-12-31 假設有一舊帳號,名為gauss,管理者想要重新設定該帳號的使用期限為2012/07/31,則 #> usermod –e 2012-07-31 gauss
新增一個帳號的SOP 建立一個帳號,名稱為gauss,屬於T群組(GID=1000),其流水編號為1007,依照規則,他的家目錄為/data/T/gauss,其磁碟空間限制為20GB 登入dl320,並使用sudo轉成root帳號(不需鍵入root密碼嗎?答:不需) $> sudo su – #> 新建帳號 #> useradd –u 1007 –g 1000 –d /data/T/gauss –m gauss 建立密碼 #> passwd gauss 更新NIS資訊 #> /aracluster/sytem/script/ypupdate.sh 設定磁碟配額 #> setquota -u gauss 19922944 20971520 0 0 /data
刪除一個帳號的SOP 刪除一個帳號,名稱為gauss,屬於T群組(GID=1000),其流水編號為1007,依照規則,他的家目錄為/data/T/gauss,其磁碟空間限制為20GB 登入dl320,並使用sudo轉成root帳號 $> sudo su – #> 設定磁碟配額 #> setquota -u gauss 0 0 0 0 /data 刪除帳號 保留家目錄 #> userdel gauss 不保留家目錄 #> userdel –r gauss 更新NIS資訊 #> /aracluster/sytem/script/ypupdate.sh
SSH設定 在dl320上 檔案:/etc/ssh/sshd_config 內容: PermitRootLogin no AllowUsers smchang@140.113.22.* smchang@140.113.25.* ytli@140.113.22.* ytli@140.113.25.* mclai@140.113.22.* mclai@140.113.25.* billing@140.113.22.* billing@140.113.25.* aracity@* 在clw01~clw04上 AllowUsers *@140.113.22.* *@140.113.25.* aracity@* PS:在更改過/etc/sshd_config後,請重新啟動sshd,方法如下: #> service sshd restart
Thank You! Q & A