Multiračunar (Cluster)

Često je u praksi potrebno realizovati numerički zahtevne algoritme kako bi se rešio konkretan problem. Iako se danas se na tržištu mogu naći veoma brzi računari sa velikom količinom memorije, dimenzije nekih problema su i dalje prevelike za klasične PC računare. Na primer, ukoliko je potrebno rešiti sistem jednačina sa 30.000 nepoznatih, računar sa 32-bitnom arhitekturom ne može alocirati toliki prostor u memoriji. Povećanjem dimenzije ovog problema potreban prostor se kvadratno uvećava, tako da ni promena arhitekture ne bi donela kvalitativni pomak. Napomenuću samo da se danas u praksi rešavaju i mnogo veći sistemi (čak i do milion jednačina). Pored prostornog (memorijskog) problema, javlja se i vremenski (procesorski) problem. U standardnim konfiguracijama obično se nalazi jedan procesor, tako da se podaci moraju obrađivati sekvencijalno.

Jedno rešenje za ovako zahtevne probleme jeste korišćenje mainframe računara, čija upotreba danas nije ekonomski opravdana i taj koncept se polako napušta. Mainframe računari su još uvek u upotrebi, uglavnom iz razloga što je u njih do sada mnogo uloženo. Drugo rešenje nalazi se u umrežavanju manjih i jeftinijih računara, koji ovako objedinjeni formiraju račuarski sistem koji se naziva klaster (cluster - gomila).

Ideja o ovakvom računarskom sistemu nije uopšte nova. DEC je još 1980. napravio prvi klaster računar. Zbog niske cene PC računara i mrežne infrastrukture ovaj koncept se naglo razvio u poslednjih nekoliko godina. Razlozi umrežavanja računara su uvek bili deljenje resursa, a gledano istorijski ti resursi su se menjali. U početku su to bili razni periferijski uređaji (štampači, skeneri...), zatim memorijski prostor (diskovi), dok se poslednjih godina lokalna mreža najčešće koristi za bezbedniji pristup globalnoj mreži - internetu. U konceptu klaster računara mreža se koristi pre svega za deljenje procesora i memorije i zbog toga se ovakav koncept naziva distribuirano računarstvo.

Mreža koja održava sistem je veoma brza i može se postaviti na taj način da odgovara problemu koji se rešava. Program napisan za ovako napravljen sistem pokretanjem se automatski, kroz mrežu, instancira na više računara (čvorova) i na taj način počinje svoj paralelni život. Svaka instanca programa ima svoj identifikacioni broj prema kome se najčešće određuje kakav će deo koda i na koji način program izvšavati. Instance programa međusobno komuniciraju slanjem poruka. Jedan od interfejsa koji se koristi je MPI (message passing interface). Gledano iz drugog ugla, više računara (procesora) izvršava jedan program (svaki procesor nad različitim podacima). SPMD (Single Programme/Multiple Data) koncept se najčešće koristi, međutim može se realizovati i uopštenje ovog koncepta MIMD (Multiple Instruction/Multiple Data). Ovakvi računarski sistemi se primenjuju svuda gde postoji potreba za intenzivnim numeričkim izračunavanjem (HPC - High Performance Computing Cluster) ili povećanom sigurnošću i raspoloživošću sistema (HA - High Availability Cluster). Česte su primene u meterologiji, građevinarstvu, mašinstvu, mehanici, biologiji, astronomiji i u mnogim drugim prirodnim naukama, kao i u velikim sistemima za upravljanje bazama podataka, internet pretraživačima, računarskoj grafici, pa i u društvenim naukama, naročito ekonomiji.

Maja ove godine, zajedno sa Natašom Babačev, održao sam informativno predavanje o klaster računarima na Matematičkom fakultetu u Beogradu. Zahvaljujući mailing listi "računari" predavanju je prisustvovalo nekoliko članova MENSE, kao i Aleksandar Belić iz Ministarstva za nauku koji je posebnu pažnju skrenuo na problem edukacije studenata. Gospodin Belić naglasio je da se na osnovnim studijama na fakultetima u Srbiji nigde ne obrađuje paralelno programiranje, koje se poslednjih godina aktivno uči na na većini računarskih fakulteta u svetu u vidu izbornih, ili obaveznih kurseva. Paralelno programiranje sigurno jeste budućnost u računarstvu, ali isto tako je i sadašnjost. Već danas u Beogradu postoji nekoliko klaster računara (na Elektrotehničkom i Mašinskom fakultetu, Institutu za fiziku, Hidrometerološkom zavodu...), ali veći problem predstavlja edukacija programera. Klaster računar može se napraviti veoma jeftino i na već postojećoj infrastrukturi računara, u bilo kojoj instituciji. Na žalost, većina postojećih klaster računara kod nas je nedovoljno iskorišćena upravo zbog nedostatka programera koji bi ih koristili.

Detaljnije tekstove o održanom predavanju možete pročitati na http://www.jwork.net/mpi

Igor Jeremic