Vaš računar provodi većinu svog vremena čekajući da pritisnete neki taster ili pomerite miša. Da li ste razmišljali o mogućnosti da svom računaru naložite da se, u slobodno vreme, udruži sa drugim sličnim računarima i pomogne im u rešavanju nekog problema od globalnog značaja? Upravo takvu mrežu promoviše organizacija Distrubuted.net... | |
Atila Čipa |
Rast (i povremeno opadanje) broja dnevno obrađenih blokova tokom aktuelnog projekta.
Struktura mreže, servera i klijenata. |
Neprofitna organizacija Distributed.net okuplja stručnjake iz oblasti paralelnog procesiranja. Sve je počelo kada je, početkom 1997, kompanija RSA labs objavila RC5-56 izazov. RSA labs se bavi profesionalnom kriptografijom, a RC5-56 je sistem za kriptografiju, patentiran od strane RSA labs, koji koristi ključeve od 56 bita. Izazov se sastojao u tome da se za (simboličnu) novčanu naknadu dešifruje zadati šifrovani tekst. Cilj je bio da se pokaže da 56-bitni kriptografski sistemi više ne pružaju dovoljnu zaštitu i superiornost sistemu RC5 u odnosu na DES-II, algoritam za šifrovanje koji ima preporuku vlade SAD. |
Dobitna kombinacija
Grupa entuzijasta je došla na ideju da podeli 72 kvadriliona kombinacija na više delova i jednim takvim delom zaposli svaki računar koji im je na raspolaganju. Zbirna procesna moć ovog eksperimenta je bila bolja od većine mainframe računara. Pošto su u ideji videli potencijal, 8. maja 1997. su, pod vođstvom Adama Beberga, osnovali organizaciju Distributed.net. Napisani su prvi programi, koji su koristili prazno vreme procesora (idle time), a rezultate razmenjivali preko Interneta.
|
O brojevima
Statistički podaci o Distributed.net-u su interesantni: odnos procesne moći računara koji su učestvovali u eksperimentu vidite na slici 1; ubedljivo najbrojniji su 80x86 PC računari. Tačna procesna moć Distributed.net-a se ne može izračunati, pre svega zbog fluktuacije, koja je prouzrokovana time što se podaci na većini računara ne razmenjuju non-stop. Drugi razlog je hardverske prirode: podaci pokazuju samo kako se razne mašine snalaze u rešavanju RC5 kodova. Postoje procesori koji su za ovaj zadatak pogodniji, jer su baš instrukcije koje se koriste u ovom zadatku, vrlo brze. U ovu grupu spadaju i x86 procesori. Drugi procesori, koji su u realnom svakodnevnom radu brži od prve grupe, mogu imati lošije rezultate, jer neka neophodna instrukcija nije implementirana na hardverskom nivou.
|
Svemir i(li) šah
Dugoročni cilj Distributed.net-a nije nalaženje šifara, već konstruisanje mehanizma koji bi bio u stanju da se nosi sa računskim zadacima globalnih razmera. Kada se softver usavrši, biće u mogućnosti da se brzo adaptira i učestvuje u bilo kojem projektu koji se bazira na izgrađenoj infrastrukturi. Lako se sa relativno jednostavnim matematičkim zadacima kao što je traženje prostih ili Fermaovih brojeva. Postoje, međutim, i mnogo interesantniji projekti koji mogu doneti i ozbiljnije, praktične rezultate.
|
Kako to radi?
Ovakvom problemu se može pristupiti na više načina. U konkretnom slučaju, korišćena je klijent-server arhitektura. Klijenti su samostalni programi koji sadrže više modula, koji omogućavaju istom klijentu da učestvuje u više zadataka. Serveri, sa druge strane, pružaju podatke za obradu i koordiniraju rad klijenata. Osnovu celog sistema čine javni serveri velikih kapaciteta, koji su raspoređeni po svim kontinentima. Oni direktno ne opslužuju klijente, već ih na osnovu IP broja upućuju na najbliže servere drugog nivoa. Dodatni kriterijum je opterećenost i broj nerešenih blokova.
|
Karike u lancu
Baferi su osnovna karika u lancu razmene podataka. Ulazni bafer sadrži podatke za obradu, adresu servera sa kojeg je primljen blok i informacionu sekvencu. Podaci za obradu u RC5 klijentu zapravo znače interval još neproverenih kombinacija. Jedan blok sadrži interval od najmanje 228 a najviše 231 kombinacija. Informaciona sekvenca služi za sinhronizaciju klijenata - preko nje serveri obaveštavaju klijenta o tome da je neki projekat počeo ili je završen. Izlazni bafer sadrži obrađene blokove, e-mail adresu učesnika, kao i informacije o IP broju, verziji klijenta i platformi na kojoj je blok rešen.
|
Klijenti
Svi programi koji su deo projekta su pisani u GNU C-u, koji je omogućio prenosivost koda. Klijenti su prevedeni na neverovatno mnogo platforma (preko 30 različitih operativnih sistema i procesora), a verzije za nove platforme se pišu svakog meseca. Kao kuriozitet možemo pomenuti da je napisana verzija i za operativni sistem Windows CE, tj. za džepne računare.
|