Paralelné výpočty a softwarové tesárstvo

Náš matematický klub každý rok organizuje niečo pre svojich členov – minulý rok sme boli v Národných Laboratóriách v Brookhavene, rok predtým v Bellových Laboratóriách a tento rok sa rozhodli, že namiesto výletu bude workshop – High Performance Scientific Computing. Honosný názov pre paralelné programovanie pomocou MPI (Message Passing Interface).

Na workshop som sa prihlásila a chodila napriek tomu, že nemenovaný softwarový inžinier v našej rodine vyhlásil, že najprv sa mám naučiť programovať a potom sa môžem hrabať na niečo takéto. A treba priznať, že veľmi som tomu paralelnému programovaniu neublížila (ale podarilo sa mi napísať a rozchodiť jednoduchý kód, ktorý bežal paralelne na dvoch procesoroch môjho laptopu). Ale bolo to zaujímavé a odniesla som si odtiaľ rádovo viac ako z predmetu o paralelných výpočtoch, ktorý sme mali na matfyze v Bratislave, kde sa stratila aj taká základná myšlienka, že paralelný kód je len sériový kód bežiaci na viacerých procesoroch súčasne…

A potom nám prišiel na jeden z pravidelných piatkových seminárov prednášať Greg Wilson. Je to informatik, ktorý sa paralelným výpočtom venoval veľkú časť svojej kariéry a prišiel k záveru, že produktivita vedcov (zahŕňajúc matematikov) by sa zvýšila omnoho viac (oproti snaženiu sa zohnať výkonnejšie clustre a písať pre ne paralené programy, čo robí len veľmi malé percento, ale sú to tí, ktorí dostanú veškú pozornosť), keby sa radšej “široké vedecké masy” naučili efektívne používať počítače (takto ich používajú teraz), efektívne písať a spravovať sériové kódy a keby dobrý a dobre okomentovaný kód bol vyžadovaný pri publikácii akýchkoľvek výsledkov ním získaných.

Veľké ciele, obzvlášť, čo sa toho publikovania týka… jedna jeho štúdia dokonca ukázala, že 50% oslovených, ktorých články boli publikované v jednom nemenovanom známom journale, nevedelo zreprodukovať vlastné výsledky použitím vlastného kódu 5 mesiacov po publikácii.

Software CarpentryWilson si povedal, že tento problém treba začať riešiť z opačného konca. Založil stránku software carpentry (softwarové tesárstvo? základy? … stratená v preklade …), ktorú sa chystá počas najbližšieho roku, keby bude na sabbatical leave, znovu poriadne prepracovať a aktualizovať. Tam ponúka zadarmo online “rýchlo”-kurz toho, čo pokladá za základ pre vedecké výpočty. A naschvál to nevolá “softwarové inžinierstvo”, aby zdôraznil, že sa zameriava na praktické, hneď použiteľné veci a nie na mega projekty bežiace na veľkých clustroch. Jeho filozofia je, že je omnoho (časovo aj finančne) náročnejšie chyby opravovať, ako im predchádzať a s týmto odporúča svoj kurz prakticky každému.

A tak mi zase pribudlo niečo na môj to-do zoznam, aj keď sa nechystám prelúskať celým jeho kurzom, rada by som si toto leto prešla aspoň niektoré vybrané časti…

Na záver ešte na pobavenie úrývok (voľný preklad) zo správy Microsoftu nazvanej “K vede roku 2020”: Softwarové inžinierstvo určené pre vedu musí adresovať tri základné otázky: (i) ako narábať s veľkým objemom dát rôznych typov a formátov; (ii) ako konštruovať nové algoritmy, ktoré budú schopné vykonávať lepšiu analýzu a syntézu; a (iii) ako zdieľať zdroje medzi širokými a rozmanitými komunitami.

Všimnite si, že “ako dostať správnu odpoveď nie je na tomto zozname. Greg Wilson hovorí, že to je tým, že to momentálne nikoho netrápi – nie je to súčasťou “výpočtovej kultúry”. A tak nám len ostáva tešiť sa na deň, keď to nebude musieť byť na zozname preto, že už je to samozrejmosť.

Related Posts Plugin for WordPress, Blogger...