C2115 Praktický úvod do superpočítání -1- C2115 Praktický úvod do superpočítání Petr Kulhánek, Jakub Štěpán kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta, Masarykova univerzita, Kotlářská 2, CZ-61137 Brno VII. lekce C2115 Praktický úvod do superpočítání -2- Obsah  Dávkové systémy definice, přehled  Instalace Ubuntu Server 12.04.3 VirtualBox, přístup přes ssh  Instalace a konfigurace dávkového systému Torque baličky, konfigurace výpočetního uzlu, konfigurace front, spuštění úlohy C2115 Praktický úvod do superpočítání -3Dávkové systémy C2115 Praktický úvod do superpočítání -4Dávkové zpracovaní Dávkové zpracování je vykonávání série programů (tzv. dávek) na počítači bez účasti uživatele. Dávky jsou připraveny předem, takže mohou být zpracovány předány bez účasti uživatele. Všechna vstupní data jsou předem připravena v souborech (skriptech) nebo zadána pomocí parametrů na příkazovém řádku. Dávkové zpracování je opakem interaktivního zpracování, kdy uživatel až teprve za běhu programu poskytuje požadované vstupy. Výhody dávkového zpracování  sdílení zdrojů počítače mezi mnoha uživateli a programy  odložení zpracování dávek do doby, kdy je počítač méně vytížen  odstranění prodlev způsobeným čekáním na vstup od uživatele  maximalizace využití počítače zlepšuje využití investic (zejména u dražších počítačů) zdroj: www.wikipedia.cz, upraveno C2115 Praktický úvod do superpočítání -5Nástroje pro dávkové spouštění  OpenPBS http://www.mcs.anl.gov/research/projects/openpbs/  PBSPro http://www.pbsworks.com  Oracle Grid Engine http://www.oracle.com/us/products/tools/oracle-grid-engine-075549.html  Open Grid Scheduler http://gridscheduler.sourceforge.net/  Torque http://www.adaptivecomputing.com/products/open-source/torque/ C2115 Praktický úvod do superpočítání -6Nástroje pro dávkové spouštění  OpenPBS http://www.mcs.anl.gov/research/projects/openpbs/  PBSPro http://www.pbsworks.com  Oracle Grid Engine http://www.oracle.com/us/products/tools/oracle-grid-engine-075549.html  Open Grid Scheduler http://gridscheduler.sourceforge.net/  Torque http://www.adaptivecomputing.com/products/open-source/torque/ open source C2115 Praktický úvod do superpočítání -7Nástroje pro dávkové spouštění  OpenPBS http://www.mcs.anl.gov/research/projects/openpbs/  PBSPro http://www.pbsworks.com  Oracle Grid Engine http://www.oracle.com/us/products/tools/oracle-grid-engine-075549.html  Open Grid Scheduler http://gridscheduler.sourceforge.net/  Torque http://www.adaptivecomputing.com/products/open-source/torque/ open source je použit jako dávkový systém v MetaCentrum VO, na klastrech SOKAR a WOLF C2115 Praktický úvod do superpočítání -8Ubuntu 12.04.3 C2115 Praktický úvod do superpočítání -9Cvičení LVII.1 1. Nainstalujte Ubuntu Server 12.04.3 do virtuálního prostředí VIrtualBox. Při instalaci nainstalujte ssh server. 1. Nastavení VirtualBoxu (File -> Preferences) 1. Default Machine Folder: změnte na podadresář (dle vaší volby) ve vašem scratch adresáři 2. Nastavení virtuálního stroje 1. Network -> Attached to: NAT 2. Network -> Advanced -> Port Forwarding 1. Host Port: 2222 2. Guest Port: 22 3. Zbytek ponechat nezměněn 2. Přihlaste se do běžící instance serveru přes grafické rozhraní virtualizačního prostředí. 3. Přihlaste se do běžící instance serveru pomocí programu ssh z hostitelského počítače. ssh -p 2222 server_login@localhost C2115 Praktický úvod do superpočítání -10Cvičení LVII.2 1. Nainstalujte program mc : $ sudo apt-get install mc 2. Vypněte server: $ sudo poweroff 3. Zapněte server. C2115 Praktický úvod do superpočítání -11- Torque C2115 Praktický úvod do superpočítání -12- Architektura ...... ...... ...... fronty(queues) short normal long torque-server (pbs_server) stav uzlů (nodes) pbsnodes -a qstat -q qstat qstat -u torque-scheduler (pbs_sched) řazení úloh na výpočetní uzly dle požadovaných zdrojů torque-mom (pbs_mom) torque-mom (pbs_mom) node#1 np=2 node#2 np=1 qsub qsub qsub připravená úloha čekající úloha běžící úloha C2115 Praktický úvod do superpočítání -13- 1. Instalace balíčků pro klienta, server a výpočetní uzel: 2. Konfigurace sítě. IP adresu rozhraní eth0 je nutné přiřadit jménu hosta v souboru /etc/hosts místo výchozí hodnoty 127.0.1.1 3. Změna výchozího jména pro Torque server. Editujeme soubor /etc/torque/server_name nebo /var/spool/torque/server_name Instalace # apt-get install torque-client torque-client-x11 # apt-get install torque-server # apt-get install torque-mom # ifconfig inet addr:10.0.2.25 .... # vi /etc/hosts 127.0.0.1 localhost 10.0.2.15 ubuntu # vi /etc/torque/server_name ubuntu C2115 Praktický úvod do superpočítání -14Restart server a prvotní připojení 1. Restart Torque serveru a plánovače: 2. Výpis seznamu výpočetních uzlů: # service torque-server stop # service torque-server start # service torque-scheduler stop # service torque-scheduler start # pbsnodes –a pbsnodes: Server has no node list MSG=node list is empty - check 'server_priv/nodes' file C2115 Praktický úvod do superpočítání -15Konfigurace - uzly Konfigurace se provádí příkazem qmgr. V našem případě bude virtuální stroj vystupovat v roli výpočetního uzlu. Konfiguraci lze provést editací souboru /var/spool/torque/server_priv/nodes. Každá jeho změna však vyžaduje restart Torque serveru. Vhodnější alternativou je použítí příkazu qmgr # qmgr Qmgr: create node ubuntu Qmgr: set node ubuntu np = 1 Qmgr: set node ubuntu properties = node Qmgr: set node ubuntu properties += master Qmgr: list node @ubuntu Node ubuntu state = free np = 1 properties = master,node ntype = cluster status = ...... jméno serveru bez jména uzlu vypíše všechny uzly (ekvivalent pbsnodes –a) jméno uzlu počet dostupných CPU pro výpočty volitelné nastavení C2115 Praktický úvod do superpočítání -16Konfigurace - fronty Konfigurace se provádí příkazem qmgr. # qmgr Qmgr: create queue normal Qmgr: set queue normal queue_type = execution Qmgr: set queue normal enabled = true Qmgr: set queue normal started = true Qmgr: print queue @ubuntu .... .... $ qstat -q server: ubuntu Queue Memory CPU Time Walltime Node Run Que Lm State ---------------- ------ -------- -------- ---- --- --- -- ----- normal -- -- -- -- 0 0 -- E R ----- ----- 0 0 jméno serveru bez jména fronty vypíše všechny fronty (ekvivalent qstat -q) minimální konfigurace jméno fronty C2115 Praktický úvod do superpočítání -17Konfigurace - serveru Konfigurace se provádí příkazem qmgr. Výchozí nastavení je dostačují pro běžné použití. # qmgr Qmgr: set server scheduling = True Qmgr: print server # create queue normal set queue normal queue_type = Execution set queue normal enabled = True set queue normal started = True # set server scheduling = True set server acl_hosts = ubuntu set server log_events = 511 set server mail_from = adm set server scheduler_iteration = 600 set server node_check_rate = 150 set server tcp_timeout = 6 set server next_job_number = 0 vypíše konfiguraci serveru aktivuje plánování úloh C2115 Praktický úvod do superpočítání -18Přihlašování bez hesla Mezi výpočetními uzly a serverem (a naopak) je nutné nastavit přihlašování pomocí ssh bez explicitního zadávání hesla. Postup viz prerekvizity. C2115 Praktický úvod do superpočítání -19Zadáváme úlohy K zadávání úloh do dávkového systému se používá příkaz qsub. $ qsub –q normal uloha.sh 1.ubuntu $ ls uloha.sh uloha.sh.o1 uloha.sh.e1 jméno fronty, do které chceme úlohu zařadit skript úlohy, např. #!/bin/bash echo "Hello world from `hostname`!" příkaz vypíše ID úlohy, pokud zařazení proběhne v pořádku standardní výstup úlohy standardní chybový výstup úlohy soubory jsou dostupné až po skončení úlohy