Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
YBH, Mevcut Si st eml er, Logi n, İ ş Tesl i mi
C. Ahmet MERCANİ TÜ Bi l i ş i m Enst i t üsü
12 Hazi r an 2012
2
Neler Anlatılacak?
• Yüksek Başarımlı Hesaplama(YBH) Nedir?• UYBMH'de mevcut bilgisayar yapısı,• Sistemlere Nasıl erişiriz,• İş teslimi nasıl yapılır,• Login Süreci,• Mevcut Yazılımlar.
Bu sunumu indirmek için:http://training.uhem.itu.edu.tr/docs/
3
High Performance Computing ?Yüksek Başarımlı Hesaplama ?
• Zor ve büyük bilgisayar gücü gerektiren problemlerin bilgisayar kullanılarak çözümüdür.
• Süperbilgisayarların ana kullanım sebebi budur.
• UHeM araştırmacılara YBH olanağı sunmak için çalışmaktadır.
4
Hangi Program?
“Kendi bilgisayarımda çalıştırdığım programımı
(executable) getirsem,sizin süperbilgisayarınızda
ne kadar hızlı çalışır?”
5
Hangi Program?
Cevap:
A) Hiç çalışmaz
B) Daha yavaş çalışır
C) Aynı hızda çalışır
D) Çok daha hızlı çalışır
E) Hepsi
6
Bilgisayar Programı• Bilgisayara belli bir işi yaptırmak için yazılan komutlar
dizisidir.
• Programın 3 hali mevcut:
– Kod (Code): programlama dilleri ile yazılmış, insan tarafından okunabilen hali.
– Yürütülebilir Dosya(Executable): Kodun derlenmesi ile elde edilen makine dili dosya.
– Süreç (Process): Yürütülebilir dosyanın bilgisayarın hafızasına (RAM) yüklenmiş, çalışan hali.
CPU
7
Program
Process
Program
Thread
Process vs Thread
CPU CPU
HAFIZA
Bilgisayar
• Programın CPU üzerinde çalışan kısmına thread denir.
• Process kendi başına çalışabilen programdır. Her process en az bir thread içerir. Her thread bir process'e bağlı çalışır.
8
Process vs Thread
CPU CPU
HAFIZA
Bilgisayar
• Programın çalışması
işletim sisteminin
kontrolündedir.
• Process sanal bir hafıza
uzayında çalışır. Böylece
işletim sistemi onun
başka processlere
erişimini engellemiş olur.
• Kabaca process giydirilmiş bir thread'dir. Bir process'in içindeki thread process'in hafıza uzayını kullanır.
Program
Process
Thread
9
Program Türleri(Pratik Bir Genelleme)
CPU CPU
HAFIZA
Bilgisayar
• Seri Program
• Paralel Program– Ortak-Hafıza Paralel Program
– Dağıtık-Hafıza Paralel Program
– Hibrit Parelel Program
Program
Process
Program
Thread
10
Seri Program
CPU CPU
HAFIZA
Bilgisayar
• Bir process ve onun içindeki bir thread'den (kernel thread) oluşur.
• Bilgisayarın kaç CPU'su olursa olsun, Sadece Tek CPU'yu kullanır.
• Birden fazla bilgisayarı kullanamazlar.• Sıradan programlar bu gruba girer.
Program
Process
Thread
Program
Process
Program
Thread
11
Paralel Program
• Bir process içinde birden fazla thread• Birden fazla process, her birinde bir thread• Birden fazla process, her birinde birden fazla thread.
CPU
CPU
Seri Programımızın yaptığı işler CPU'larımıza paylaştırılacak
12
Ortak-HafızaParalel Programı
CPU CPU
HAFIZA
Bilgisayar
• Bilgisayarın Tüm CPU'larını kullanabilir.• CPU’ların hepsinin kullanması zorunlu değil.• Ama birden fazla bilgisayarı birlikte kullanamaz.• Pthread, OpenMP vb. kütüphaneler kullanılır.
Program
Process
Program
Thread Thread
Program
Process
Program
Thread Thread
13
Dağıtık-HafızaParalel Programı
CPU CPU
HAFIZA
Bilgisayar
• Bilgisayarın Tüm CPU'larını kullanabilir.• CPU’ların hepsinin kullanması zorunlu değil.• Birden fazla bilgisayarı kullanabilir ancak veri
paylaşımı için ağ iletişimi gerekir.• MPI, PVM vb. Kütüphaneler kullanılılır.
CPU CPU
HAFIZA
BilgisayarProgram
Process
Program
Thread
Program
Process
Thread
Program
Process
Thread
Program
Process
Thread
Program
Process
Thread
Ağ Haberleşmesiİle veri paylaşımı
14
Dağıtık-Hafıza ParalelProgramı Nerede Çalışacak?
• Nasıl bir Ağ?
• Hangi tip Bilgisayar?
• Hepsinde tek tek program mı çalıştıracağız?
• Bundan bize ne, bizim süper bilgisayarımız yok mu?
15
TO
P5
00
.or
g
Si
te
si
nd
en
a
lı
nm
ış
tı
r.
En Hızlı 500 bilgisayar
16
TO
P5
00
.or
g
Si
te
si
nd
en
a
lı
nm
ış
tı
r.
En Hızlı 500 bilgisayar
17
Küme (Cluster) Yapısı
Bilg.1
Bilg.4Login Node
Ortak VeriDepolama
Ünitesi
Dış Ağ
Küme içi Haberleşmeye
Özel AğDağıtık (Distributed) Hesaplama için genel Küme Yapısı
Bilg.2
Bilg.5
Bilg.3
Bilg.N
18
Küme (Cluster) Yapısı
Bilg.1
Bilg.4Login Node
Ortak VeriDepolama
Ünitesi
Dış Ağ
Küme içi Haberleşmeye
Özel AğDağıtık (Distributed) Hesaplama için genel Küme Yapısı
Bilg.2
Bilg.5
Bilg.3
Bilg.N
19
Küme (Cluster) Yapısı
Bilg.1
Bilg.4
Ortak VeriDepolama
Ünitesi
Dış Ağ
Küme içi Haberleşmeye
Özel AğDağıtık (Distributed) Hesaplama için genel Küme Yapısı
Bilg.2
Bilg.5
Bilg.3
Bilg.N. . .
wsl-node03
wsl-node02
wsl-node01
wsl-node15
20
20
Bağlantı (ssh) Sunucu adresleri
wsl-node01.uybhm.itu.edu.trwsl-node02.uybhm.itu.edu.trwsl-node03.uybhm.itu.edu.trwsl-node04.uybhm.itu.edu.trwsl-node05.uybhm.itu.edu.trwsl-node06.uybhm.itu.edu.trwsl-node07.uybhm.itu.edu.trwsl-node08.uybhm.itu.edu.trwsl-node09.uybhm.itu.edu.trwsl-node10.uybhm.itu.edu.trwsl-node11.uybhm.itu.edu.trwsl-node12.uybhm.itu.edu.trwsl-node13.uybhm.itu.edu.trwsl-node14.uybhm.itu.edu.trwsl-node15.uybhm.itu.edu.tr
Bağlantı Sunucuları
. . .
wsl-node03
wsl-node02
wsl-node01
wsl-node15
21
ssh ile bağlanırız* :
ssh wsl-node01.uybhm.itu.edu.tr -l kullanıcı
ssh kullanıcı@wsl-node01.uybhm.itu.edu.tr
wsl-node01
Nasıl Bağlanacağız?
Dı
ş
Ağ
ssh
*Windows için putty(What a pity ☺)
http://workshop.uybhm.itu.edu.tr/programlar2011/
22
Puttyhttp://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
23
Xming : X server Programı
Microsoft işletim sistemleri için en çok kullanılan X pencere sunucusudur. Linux'tan pencere görüntüsü aktarmak için gerekli.
24
PuTTY'de X11 aktarımı
Pencere görüntüsünü aktarmak için sadece Xming açmak yetmez. Görüntü aktarımını da açmalıyız.
25
ssh kullanıcı@wsl-node01.uybhm.itu.edu.tr
$ hostname$ pwd$ ls$ cd workshop$ ls$ pwd$ xterm$ exit
UYGULAMA: Bağlantı
26
Grafik (VNC) Bağlantı$ vncpasswd
Password:
Verify:
$ vncserver
New 'd178.uybhm.itu.edu.tr:5 (du001)' desktop is d178.uybhm.itu.edu.tr:5
Starting applications specified in /AKDENIZ/HOME010/users/du001/.vnc/xstartup
Log file is /AKDENIZ/HOME010/users/du001/.vnc/d178.uybhm.itu.edu.tr:5.log
27
Grafik (VNC) Bağlantı
28
Grafik (VNC) Bağlantı
29
Küme (Cluster) Yapısı
Bilg.1
Bilg.4
Ortak VeriDepolama
Ünitesi
Dış Ağ
Küme içi Haberleşmeye
Özel AğDağıtık (Distributed) Hesaplama için genel Küme Yapısı
Bilg.2
Bilg.5
Bilg.3
Bilg.N. . .
wsl-node03
wsl-node02
wsl-node01
wsl-node15
30
Küme (Cluster) Yapısı
Bilg.1
Bilg.4
Dış Ağ
Küme içi Haberleşmeye
Özel Ağ
Bilg.2
Bilg.5
Bilg.3
Bilg.N. . .
wsl-node03
wsl-node02
wsl-node01
wsl-node15
RSHızlı
Ortak Veri
AKDENİZGüvenli
Ortak Veri
31
31
Toplam ortak kullanılabilir disk alanı
128 TB(Lustre dosya sistemi, 4 OSS + 2 MDS)
İşletim sistemi
CentOS 5.4 x86_64
RS: Hızlı ve Paralel,AKDENİZ: Güvenli ve Yedekli
Veri Depolama Sistemi
RSHızlı
Ortak Veri
Toplam ortak kullanılabilir disk alanı
296 TB(Lustre Dosya Sistemi – 4 OSS + 2 MDS)
İşletim sistemi CentOS 5.4 x86_64
AKDENİZGüvenli
Ortak Veri
32
Küme (Cluster) Yapısı
Bilg.1
Bilg.4
Dış Ağ
Küme içi Haberleşmeye
Özel Ağ
Bilg.2
Bilg.5
Bilg.3
Bilg.N. . .
wsl-node03
wsl-node02
wsl-node01
wsl-node15
RSHızlı
Ortak Veri
AKDENİZGüvenli
Ortak Veri
33
Küme (Cluster) Yapısı
Bilg.1
Bilg.4
Dış Ağ
Küme içi Haberleşmeye
Özel Ağ
Bilg.2
Bilg.5
Bilg.3
Bilg.N. . .
wsl-node03
wsl-node02
wsl-node01
wsl-node15
RSHızlı
Ortak Veri
AKDENİZGüvenli
Ortak Veri
34
Küme (Cluster) Yapısı
Bilg.1
Bilg.4
Dış Ağ
Bilg.2
Bilg.5
Bilg.3
Bilg.N. . .
wsl-node03
wsl-node02
wsl-node01
wsl-node15
RSHızlı
Ortak Veri
AKDENİZGüvenli
Ortak Veri
Infiniband40 Gbps
35
Küme (Cluster) Yapısı
Bilg.1
Bilg.4
Dış Ağ
Bilg.2
Bilg.5
Bilg.3
Bilg.N. . .
wsl-node03
wsl-node02
wsl-node01
wsl-node15
RSHızlı
Ortak Veri
AKDENİZGüvenli
Ortak Veri
Infiniband40 Gbps
36
Küme (Cluster) Yapısı
Dış Ağ
. . .
wsl-node03
wsl-node02
wsl-node01
wsl-node15
RSHızlı
Ortak Veri
AKDENİZGüvenli
Ortak Veri
Bilg.Bilg.Bilg. Bilg.
TRAKYASMP
NODE
ANADOLU KÜMESİ
EGEKÜMESİ
d004d003d002
b003b002b001
Bilg.Bilg.Bilg.
KARADENİZ KÜMESİ
d004Bilg.k002
NARGPU
NODE*2
37
37
Sistem adı Anadolu (HP DL360 G5 Cluster)
Hesaplama düğümü 192 (133 Dual Core + 59 Quad Core)
Toplam çekirdek 1004
İşlemci tipi Intel Xeon 2.33 GHz Dual ve Quad Core
Düğüm bellek miktarı 8 GB (Dual Core makinalarda)
Düğüm disk miktarı 16 GB (Quad Core makinalarda)
Anadolu sunucu sistemi
Bilg.Bilg.Bilg.Bilg. Bilg.
ANADOLU KÜMESİ
d004d003d002d001
38
38
Sistem adı Karadeniz (HP Blade Cluster)
Hesaplama düğümü 64 (2x Quad Core)
Toplam çekirdek 512
İşlemci tipi Intel Xeon 5550 (Nehalem)
Düğüm bellek miktarı 3 GB
Düğüm disk miktarı 2 x 146 GB
Karadeniz sunucu sistemi
Bilg.Bilg.Bilg.Bilg. Bilg.
KARADENİZ KÜMESİ
d004d003d002k001
39
39
Sistem adı Ege (HP ProLiant BL2x220c G5)
İşlemci tipi
Intel Xeon (2.66 GHz)
İşlemci sayısı
210
Çekirdek sayısı 105 x 2 x 4 =840
Bellek
1680 GB (105 x 16)
İşletim sistemi Redhat Enterprise 5.1 x86-64
Ege sunucu sistemi
EGEKÜMESİ
b003b002b001
40
40
Sistem adı Trakya (HP Integrity Superdome)
İşlemci tipi
Intel Itanium 2
İşlemci sayısı 32
Çekirdek sayısı 64
Bellek
128 GB
Bellek tipi
Ortak paylaşımlı
Disk
4.6 TB
İşletim sistemi Redhat Enterprise 5.1 IA64
Trakya sunucu sistemi
TRAKYASMP
NODE
41
Küme (Cluster) Yapısı
Dış Ağ
. . .
wsl-node03
wsl-node02
wsl-node01
wsl-node15
RSHızlı
Ortak Veri
AKDENİZGüvenli
Ortak Veri
Bilg.Bilg.Bilg. Bilg.
TRAKYASMP
NODE
ANADOLU KÜMESİ
EGEKÜMESİ
d004d003d002
b003b002b001
Bilg.Bilg.Bilg.
KARADENİZ KÜMESİ
d004Bilg.k0021004 CPU(Core)192 Bilgisayar
840 CPU (Core)
105 Bilgisayar 64 CPU (Core)
1 Bilgisayar
Toplam: 2420 CPU (Core)Toplam: 362 Bilgisayar
512 CPU(Core)64 Bilgisayar
42
Hangi Program?
Cevap:A) Hiç çalışmazB) Daha yavaş çalışırC) Aynı hızda çalışırD) Çok daha hızlı çalışırE) Hepsi
43
Lustre 1.8.3 MKL ve CMKL (Cluster MKL)
SystemImagerThread Checker and Analyzer
LSF HPC 7.0.3Intel MPI Library
EnginFrame 4.1.8 Trace Collector and Analyzer
MVAPICH ve MVAPICH2Gaussian
OpenMPILS-Dyna
HP-MPILinda
PETSc KütüphanesiFluent
ANSYS
Matlab (Distributed)
C/C++ DerleyicisiEnsight 8 Gold
Fortran DerleyicisiTotalview
Vtune Performance AnalyzerParaview
OpenviewMPICH
NagiosCACTI
Kullanılan bazı yazılımlar
PETSc
44
Hangi Bilgisayar?Programımızı çalıştırmak için:
• Bilgisayarları nasıl seçeceğiz?• Bilgisayarların özellikleri ne? 10 GB hafızaya
ihtiyacımız var, hangi bilgisayarlar uygun?• Bilgisayarların hepsi çalışır durumda mı?• Bilgisayarların boş olduğunu nasıl kontrol
edeceğiz?• Biz bilgisayarları tek tek kontrol ederken bir
başkası gelip boş sandığımız bilgisayarlara iş verirse ne olacak?
• Tüm bilgisayarlar dolu ise boşaldığını nasıl bileceğiz?
45
Yük Dağıtımı(Load Sharing)
Login Node
CPU CPU
HAFIZA
Bilgisayar
CPU CPU
HAFIZA
Bilgisayar
Program
Program
Program
ProgramProgram
Program
Program
A)
C)
D)
E)
B)
F)
BOZUK
CPU CPU
HAFIZA
Bilgisayar
CPU CPU
HAFIZA
Bilgisayar
46
Bilgisayarların Durumu
$ bhosts -wHOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSV
ags1 unavail - 1 0 0 0 0 0ags2 ok - 4 0 0 0 0 0b001 ok - 8 4 4 0 0 0b008 closed_Full - 8 8 8 0 0 0b011 ok - 8 0 0 0 0 0b020 closed_Busy - 8 4 4 0 0 0b021 closed_Full - 8 8 8 0 0 0b022 ok - 8 4 4 0 0 0b026 closed_Full - 8 8 8 0 0 0. . .
47
Çalışan İşler
$ bjobs -w
No unfinished job found
$ bjobs -w -u allJOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME
25862 senol.piskin RUN serdar.celebi.q lnode2 8*d167:8*d153:8*d171:8*d175:8*d191:8*d190:8*d166:4*d160 nozzle5 May 22 15:47
25952 can.ataca RUN salim.ciraci.q lnode2 4*d074:4*d073:4*d049:4*d040 FeTe2-3 May 22 23:31
48
Kuyruklar
$ bqueues -u kullanıcı$ bqueues -u senol.piskinQUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP serdar.celebi.q 98 Open:Active 256 - 1 - 132 0 132 0
$ bqueues -l kuyruk$ bqueues -l serdar.celebi.qBu komut ile ayrıntılı kuyruk bilgisine erişebiliriz.Hangi Bilgisayarları kullanabiliyor gibi.
49
Kuyruklar
• vlong: Çok uzun işler kuyruğu. Bir haftadan daha uzun sürecek işler için ayrılmıştır. Tüm kullanıcılar bu kuyruğun üyesidirler. Kuyrukta iş çalıştırmanın alt zaman sınırı bir haftadır. Üst sınır bulunmamaktadır.
• long: Uzun işler kuyruğu. Üç gün ila bir hafta arası bir zaman aralığında çalışması beklenen işlerin teslim edilmesi gereken kuyruktur. Tüm kullanıcılar üyedir. İş çalıştırmanın alt zaman sınırı üç saat, üst zaman sınırı ise bir haftadır.
• mid: Orta uzunlukta işlerin çalıştırılabilmesi için ayrılmıştır. Üç saat ila üç gün arasında iş çalıştıracak kullanıcıların kullanmasının beklendiği kuyruktur.
• short: Kısa işler kuyruğu. En fazla üç saat çalışması beklenen işler için ayrılmış kuyruktur. Tüm kullanıcılar üyedir. Kuyrukta iş çalıştırmak için üst zaman sınırı üç saattir.
50
Kuyruklar
• smp: SMP Kuyruğu. Trakya sunucusunda iş çalıştırmak için kullanılması gereken kuyruktur. Trakya sunucusu üzerinde iş çalıştırması uygun görülen kullanıcılar bu kuyruğa üye yapılırlar. İş çalıştırma konusunda bu dokümanın yayınlandığı an itibariyle herhangi bir zaman kısıtı yoktur.
• debug: Kullanıcıların hesaplamalarıyla ilgili test çalışmalarını yürütebilecekleri, hesaplamalarında aksayan taraf olup olmadığını görebilecekleri bir kuyruktur. İş çalıştırma süresi en fazla 20 dakikadır.
• urgent: Acil işler çalıştıracak kullanıcıların tercih etmesinin beklendiği bir kuyruktur. Bu dokümanın yazıldığı tarih itibariyle herhangi bir zaman kısıtı yoktur. Maliyeti diğer kuyruklardan farklıdır.
• bigmem: Büyük bellek ihtiyacı duyan kullanıcıların tercih etmesinin beklendiği bir queue'dur. Bu dokümanın yazıldığı tarih itibariyle herhangi bir zaman kısıtı olmamasına rağmen maliyeti yüksektir.
51
İş Teslimi
•/RS diski tüm makinalara bağlı, /AKDENIZ sadece login node'lara.
•Bu sebeble işimizi /RS dizini altındaki proje dizini içerisinden vermeliyiz.
•Ayrıca kullanacağımız yada oluşturacağımız hiçbir dosya /AKDENIZ üzerinde olmamalıdır.
•Ev dizinimiz de /AKDENIZ üzerinde olduğunda hesaplama düğümlerinde .bashrc dosyamız işe yaramaz. Bu sebeble .bashrc dosyamızı /RS/users/duXXX dizinine kopyalamalıyız.
Örnek: cp ~/.bashrc /RS/users/du003/
52
İş Teslimi
/bin/hostname komutunu sistemde çalıştıralım:
$ bsub -q short -P workshop -m anadolu_dual
-o cikti.txt /bin/hostname
Job <9427> is submitted to queue <short>.
-o çıktı dosyası -oo çıktı dosyası (üstüne yaz)
-e hata dosyası -eo hata dosyası (üstüne yaz)
-n cpu sayısı -m bilgisayarların adı
-J İşin adı %J işin adı -q kuyruk adı -P proje adı
-R Kaynak bilgisi -a Başlatıcı betik
53
İşlerin Durumu
İşimizi teslim ettik ama işimiz çalıştı mı? ne durumda? öğrenmek için:
$ bjobsJOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME9427 mercan PEND short cn02 */hostname Oct 16 12:07
$ bjobsJOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME9427 mercan RUN short cn02 cn16 */hostname Oct 16 12:07
54
İşlerin Durumu (Devam)
İşimizi teslim ettik ama işimiz çalıştı mı? ne durumda? öğrenmek için:
$ bjobsNo unfinished job found
$ bjobs -aJOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME9427 mercan DONE short cn02 cn16 */hostname Oct 16 12:07
55
İşlerin Durumu (Devam)
$ cat cikti.txtSender: LSF System <lsfadmin@cn16>Subject: Job 9427: </bin/hostname> Done
Job </bin/hostname> was submitted from host <cn02> by user <mercan>.Job was executed on host(s) <cn16>, in queue <short>, as user <mercan>.</SFS2/users/mercan> was used as the home directory.</SFS2/users/mercan> was used as the working directory.Started at Mon Oct 16 12:07:00 2006Results reported at Mon Oct 16 12:07:06 2006
Your job looked like:
------------------------------------------------------------
# LSBATCH: User input
/bin/hostname
------------------------------------------------------------
Successfully completed.
Resource usage summary:
CPU time : 0.32 sec.
Max Memory : 3 MB
Max Swap : 7 MB
Max Processes : 1
Max Threads : 1
The output (if any) follows:
cn16
56
İşlerin Durumu
Çalışan işimiz ne durumda? öğrenmek için:
$ bpeek job_id $ bpeek 9427Ekrana programın çıktısını yazar.
$ bkill job_id $ bkill 9427Programı durdurur, bitirir.
57
ssh [email protected]$ bhost -w$ bhost$ bjobs -w -u all$ bqueues -u kullanıcı$ bqueues -l short
$ /bin/hostname$ bsub -q short -m anadolu_dual -P workshop -o cikti.txt /bin/hostname$ bjobs$ bjobs -a$ vim cikti.txt
$ bsub -q short -m anadolu_dual -P workshop -o cikti%J.txt sleep 1000$ bjobs$ bkill jod_id$ exit
UYGULAMA: İş Verme
58
BSUB Betiği
Bir önceki komutun betik karşılığı ise şu şekildedir:
#!/bin/bash
#BSUB -q short
#BSUB -P workshop
#BSUB -m anadolu_dual
#BSUB -o cikti%J.txt
/bin/hostname
Bu betiği calis.lsf adiyla kayıt edelim. Bu betiği bsub komutuna şu şekilde veririz:
$ bsub < calis.lsf
59
Linux/UNIX sistemlerinde login olunca kabuk (shell) başlatılırken bazı dosyalar çalıştırılır. Hangi kabuğu kullandığınıza göre farklı dosyalar çalıştırılır:
Bash için:– /etc/profile <---- Sadece sistem yöneticisi değiştirebilir.
$HOME/.profile <---- Sadece ilk bulunan çalıştırılır$HOME/.bash_profile$HOME/.bash_login
Tümünü Kullanıcı kendisi değiştirir.
Şayet kabuk bir login işlemi sonucu açılmamışsa sadece:$HOME/.bashrc dosyası varsa o çalıştırılır.
Login Süreci (BASH)
60
Çevre Değişkenleri/SFS/progs/hpmpi/bin/mpicc/SFS/progs/openmpi/bin/mpicc/SFS/progs/ict/mpi/3.0/bin/mpicc/SFS/progs/ict/mpi/3.0/bin64/mpicc/SFS/progs/mvapich/0.9.9/bin/mpicc/SFS/progs/intelK/mpi/2.0/bin/mpicc/SFS/progs/intelCT/mpi/3.0/bin/mpicc/SFS/progs/mvapich/1.0.0-b/bin/mpicc/SFS/progs/intelK/mpi/2.0/bin64/mpicc/SFS/progs/pgicdk52/mvapich/bin/mpicc/SFS/progs/intelCT/mpi/3.0/bin64/mpicc/SFS/progs/intel/ict/2.0/mpi/bin/mpicc/SFS/progs/intel/ict/2.0/mpi/bin64/mpicc/SFS/progs/intel/ict/3.0/mpi/3.0/bin/mpicc/SFS/progs/mvapich/mvapich2_1.0.1/bin/mpicc/SFS/progs/pgicdk52/mvapich-0.9.8/bin/mpicc/SFS/progs/intel/ict/3.0/mpi/3.0/bin64/mpicc/SFS/progs/intelSoftwareTools/impi/3.1/bin/mpicc/SFS/progs/mvapich/packages/mvapich-1.0/bin/mpicc/SFS/progs/intelSoftwareTools/impi/3.1/bin64/mpicc. . .
Başka bir bilgisayardan:30 farklı mpicc var!
61
# for using intel compilers and mpi libsexport INTEL_LICENSE_FILE=/RS/progs/intel/licenses:/opt/intel/licenses. /RS/progs/intel/Compiler/11.1/069/bin/iccvars.sh intel64. /RS/progs/intel/Compiler/11.1/069/bin/ifortvars.sh intel64. /RS/progs/intel/impi/3.1/bin64/mpivars.sh
# Intel Trace Analyzer and Collector. /RS/progs/intel/itac/7.1/bin/itacvars.sh
# Intel Thread Checker. /RS/progs/intel/Tcheck/bin/Tvars.sh
# Intel Vtune Performance Analyzer. /opt/intel/vtune/bin/vtunevars.sh
İntel Derleyici ve MPI
62
MPI Programları için
$ cd workshop $ mpiicc -o mpihello.HP64 mpihello.cProgramımız da hazır. Sisteme işi verebiliriz:
$ bsub -q short -m anadolu_dual -P workshop -n 6 -a intelmpi -o cikti%J.txt mpirun.lsf ./mpihello.HP64Job <9430> is submitted to queue <short>.
$ bjobsJOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME9430 du001 RUN short d002 2*d020 *llo.HP64 Oct 16 12:57 2*d021 2*d022
63
OpenMP Programları için
$ bsub -q short -m anadolu_all -P workshop -n 4 -R "span[hosts=1]“ -a openmp -o cikti%J.txt ./is.HP64
Job <9432> is submitted to queue <short>.
Burada "span[hosts=1]" diyerek süreçler dağıtılırken toplam makine sayısının 1 olmasını istediğimizi söylüyoruz. Yani tüm süreçler aynı makinede olacak.
64
Kaynak Seçimi
İşinizi 4 işlemcili makinelerde çalıştırmak istersek yazmamız gereken kaynak parametresi:
-R "select[ncpus==4]"
Sonuçta bir önceki komutumuz aşağıdaki hale gelecek:
$ bsub -q short -m anadolu_all -P workshop -n 4 -R "span[hosts=1] select[ncpus==4]" -a openmp -o cikti%J.txt ./is.HP64
65
BSUB Betiği
Bir önceki komutun betik karşılığı ise şu şekildedir:
#!/bin/bash
#BSUB -q short
#BSUB -m anadolu_all
#BSUB -P workshop
#BSUB -n 4
#BSUB -r "span[hosts=1] select[ncpus==4]"
#BSUB -a openmp
#BSUB -o cikti%J.txt
./is.HP64
Bu betiği biris.lsf adiyla kayıt edelim. Bu betiği bsub komutuna şu şekilde veririz:
$ bsub < biris.lsf
66
http://training.uhem.itu.edu.tr/eval2012/
SON
Teşekkürler.
Cem Ahmet MERCAN
http://training.uhem.itu.edu.tr/eval2012/