Home » Paralelni računarski sistemi

Paralelni računarski sistemi

Paralelno računanje je pristup obradi podataka u okvir koga se pojedina izračunavanja realizuju istovremeno – paralelno. Realizacija paralelnog računanja može se realizovati na nivou paralelne obrade podataka, ali i paralelnog izvršavanja instrukcija. Takođe, paralelizam se može bazirati i na istovremenom izvršavanju više zadataka, kada se govori o task paralelizmu.

Da bi se omogućilo paralelno računanje neophodno je da postoji odgovarajuća hardverska podrška. Tradicionalno kod računara ona se najčešće obezbeđuje putem multiprocesorskih i multiračunarskih sistema. Zahvaljujući razvoju poluprovodničke tehnologije savremeni procesori se realizuju kao tzv. multijezgarni sistemi, jer u sebi sadrže više procesnih elemenata (jezgara) koji vrše paralelnu internu obradu podataka. Što se tiče multiračunarskih sistema danas se za paraleno računanje najviše koriste tzv. računarski kalsteri (Computer Cluster) i sistemi sa rešetkastom strukturom (Hypercub Systems).

Početna istraživanja

paralelniIstraživanja u oblasti paralelnog računanja u Laboratoriji za računarsku tehniku započeta su kroz diplomske radove studenata računarstva iz predmeta Paralelni računarski sistemi. Kao platforma za istraživanje poslužili su PC računari u računarskoj učionici 218. Na njima je instalirana MPI (Message Passing Interface) podrška za paralelizaciju računanja u okviru računarskog klastera. Klaster je formiran od 9 PC računara, koji su radili pod kontrolom Microsoft Windows XP operativnog sistema. Eksperimentalni paralelni programi su pisani u programskim jezicima Fortran i C korišćenjem odgovarajućih MPI biblioteka.

Nastavak istraživanja

Pojava računarskih modula, kao što su Raspberry Pi, BeagleBone i drugi, nametnula je ideju o realizaciji paralelnog računarskog klastera na bazi njih. S obzirom na popularnost, a time i relativno laku dostupnost, za osnovu klastera izabran je modul Raspberry Pi 3. Takođe, odlučeno je da klaster ima četiri čvora, koji će sa okruženjem, tačnije lokalnom računarskom mrežom u Laboratoriji za računarsku tehniku (CSLNet) biti povezani preko četvorokanalnog rutera. Napajanje je realizovano preko USB Hub.

Raspberry Pi računarski klaster

paralelni - struktura klastera
Struktura klastera

Klaster je formiran prema strukturi prikazanoj na slici. Sastoji se iz jednog head node i tri compute node. Svi čvorovi su realizovani od modula Raspberry Pi 3. Karakteristike ovih modula su:

  • CPU: Quad-core 64-bit ARM Cortex A53, 1.2GHz
  • GPU: 400MHz VideoCore IV multimedia
  • Memory:
  • 1GB LPDDR2-900 MHz SDRAM
  • USB: 4 ports
  • Video outputs: HDMI, composite video (PAL and NTSC)
  • Network: 10/100Mbps Ethernet and 802.11n Wireless LAN
  • Peripherals: 17 GPIO, HAT ID Bus
  • Bluetooth: 4.1
  • Power source: 5V via MicroUSB or GPIO header.
paralelni - raspberry
Raspberry Pi 3

Raspberry Pi moduli rade pod kontrolom Raspbian Jessie operativnog sistema koji je baziran na Debian distribuciji Linux operativnog sistema. Podrška za multiprocesiranje je realizovana na bazi MPI (Message Passing Interface) standarda. Aplikacije na kojima su testirani efekti primene klastera razvijane su u programskom jeziku Python. 

Sadržaj istraživanja

Polazna testiranja mogućnosti Raspberry Pi klastera vršena na primeru množenja matrica dimenzija 12×12, 60×60, 144×144 i 216×216. Ishodišna referenca je vreme potrebno da se izvrše množenja navedenih matrica na jednom Raspberry Pi 3 modulu. S obzirom da Raspberry Pi 3 moduli imaju četvorojezgarne procesore množenje matrica na nivou klastera je vršeno angažovanjem 3 radna čvora sa 1, 2, 3 i 4 jezgra na čvoru. Testiranjem u navedenim uslovima pokazuje se da se najbolji rezultati, tj. najkraće vreme izračunavanja postiže korišćenjem sva četiri jezgra na čvoru. Aplikacija generiše dve kvadratne matrice dimenzija (NxN). Matrica je dostupna svakom od radnih čvorova. Matrica se generiše u glavnom čvoru i deli se na odeređeni broj segmenata. U konkretnom slučaju na tri i ti se segmenti šalju radnim čvorovima u klasteru. Radni čvorovi izvršavaju parcijalna računanja i rezultati se vraćaju u glavni čvor koji ih kombinuje u rezultantnu matricu. 

paralelni - klaster
Raspberry Pi klaster

Druga aplikacija na kojoj su testirane mogućnosti Raspberry Pi 3 klastera predstavlja procesiranje slike. U konkretnom slučaju radilo se o detekciji i prebrojavanju objekata u nizovima slika. 

Pošto su kroz razvijene testne programe potvrđene mogućnosti Raspberry Pi 3 klastera u toku je istraživanje koje ima za cilj omogućavanje pristupa ovom klasteru iz sistema Interneta svim registrovanim korisnicima. Na taj način oni bi mogli da posredstvom Interneta na klaster prenose svoje paralelne aplikacije i da ih na njemu izvršavaju i preuzimaju dobijene rezultate izračunavanja. 

Opcije istraživanja

U dosadašnjem toku istraživanja čvorovi klastera (Raspberry Pi 3) radili su pod kontrolom operativnog sistema Raspbian. Opcionalno Raspberry Pi moduli mogu da rade i pod sledećim operativnim sistemima:

Što se tiče podrške za paralelan rad klastera ona se bazira na MPI (Message Passing Interface) konceptu. U dosadašnjim istraživanjima korišćena je MPI4py varijanta ovog standarda. U slučaju ove varijante MPI standarda paralelne grane se mogu programirati korišćenjem programskog jezika Python. U daljim istraživanjima moguće je koristiti i neke alternativne varijante MPI standarda, kao što su:

  • OpenMP – Kod ove varijante MPI standarda paralelne grane se mogu programirati korišćenjem programskih jezika CC++Fortran.
  • MPICH – I kod ove varijante MPI standarda paralelne grane se mogu programirati korišćenjem programskih jezika CC++Fortran.
  • Hadoop

REZULTATI ISTRAŽIVANJA

Istraživanja koja su sprovedena tokom realizacije klastera i njegovog korišćenja pružila su šansu da se neki od ostvarenih rezultata i javno predstave. U nastavku će biti dat spisak objavljenih radova kao i omogućen pristup internim izveštajima o rezultatima istraživanja.

RADOVI OBJAVLJENI U DOMAĆIM I STRANIM ČASOPISIMA I PREDSTAVLJENI NA KONFERENCIJAMA U ZEMLJI I INOSTRANSTVU
  1. MITROVIĆ, D., MARKOVIĆ, D., RANĐIĆ, S., „Raspberry pi Module Clustering and Cluster Application Capabilities„, Proceedings TIE 2018, 7th International Scientific Conference Technics and Informatics in Education, 25 – 27th May 2018, Čačak, Serbia, pp. 310 – 315
  2. VUJIČIĆ, D., MARKOVIĆ, D., MARKOVIĆ, D., VESKOVIĆ, M., RANĐIĆ, S., „Practical Aspects of Using Virtualization with Raspberry Pi Clusters„, UNITECH 2018, International Scientific Conference 16 – 17 November 2018, Gabrovo, Bulgaria, pp. II.113 – II.116
  3. VUJIČIĆ, D., MITROVIĆ, D., MARKOVIĆ, D., VESKOVIĆ, M., RANĐIĆ, S., „Practical Aspects of Using Virtualization with Raspberry Pi Clusters„, Journal of the Technical University of Gabrovo, 57(2018), pp. 81 – 83,
  4. MARKOVIĆ, D., VUJIČIĆ, D., MITROVIĆ, D., RANĐIĆ, S., „Image Processing on Raspberry Pi Cluster„, International Journal of Electrical Engineering and Computing, Vol. 2, No. 2 (2018), pp. 81 – 90