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ť.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.