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
Istraž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
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.
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 A i B dimenzija (NxN). Matrica B je dostupna svakom od radnih čvorova. Matrica A 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.
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:
- Ubuntu Mate
- Arch Linux
- OSMC
- OpenELEC
- RISC OS Open
- Windows IoT Core
- Lakka
- RaspBSD
- RetroPie
- Ubuntu Core
- Linutop OS
Š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 C, C++ i Fortran.
- MPICH – I kod ove varijante MPI standarda paralelne grane se mogu programirati korišćenjem programskih jezika C, C++ i 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 | |
|