[ LUGOS ] Projekt Beowulf
Boris Benko
boris.benko na telekom.si
Čet Dec 24 16:14:43 CET 1998
Miha Tomšič wrote:
> Hojla!
>
> > In potem damo skupaj vse mašine ki jih ljudje prinesejo...
> >
> Hmm... A gre to tako enostavno? So lahko masine cisto poljubne? Kolikor sem
> do zdaj videl obstaja popatchano jedro 2.0.33, ki omogoca paralelno laufanje
> Linuxa. Ni mi pa se jasno kaksna programska oprema lahko tece gor. Verjento
> mora biti pisana za SMP, da izkorisca vse prednosti sistema...
Hmmmm....
Paralelno procesiranje je lahko reseno (v praksi) na dva nacina:
1. Z message passingom. Procesi si med sabo posiljajo sporocila, se
na ta nacin sinhronizirajo in problem resujejo.
2. Z RMA (kar pomeni remote memory access), srecas pa tudi kratice,
kot je SMA (shared memory access). Tu gre pa za to, da procesi lahko
posegajo drug drugemu v pomnilniska "okna", si puscajo informacije
in na ta nacin resujejo problem kooperativno.
Beowulf sem pogledal zelo na naglo, vendar gre tukaj za nacin 2.
Kot primer 1. pa bi navedel LAM (Local Area Multicomputer), ki je
implementacija standarda MPI (Message Passing Interface). Trenutno
je stabilna implementacija MPIja LAM verzije 6.1 pl7. Kdor pa ima
cas, pa lahko preizkusi LAM verzije 6.2x. MPI je standard, ki bi
naj postavil temelje porazdeljenemu multiprocesiranju, verzije
standarda so: 1.0, 1.1, 1.2 in 2.0.
1.0 je bil draft, ki ni prevec uporaben.
1.1 je bil *pravi* standard, ena od implementacij je LAM
1.2 vsebuje nekatera pojasnila okrog implementacije standarda,
v osnovi pa gre za 1.1. Morda je edino to novo, da vsebuje
specifikacijo za C++ API.
2.0 je najnovejsa verzija in je dvakrat bolj debel od 1.1 in tudi precej
bolj zapleten. Trenutno obstaja SAMO ena popolna implementacija
standarda 2.0. Vse ostale implementacije pa vsebujejo samo DELE
MPI 2.0. LAM 6.2x je primer delne implementacije.
Tehnicno pa stvari zgledajo takole:
1. Cluster moras najprej bootati. Na vsakem vozliscu se zazene demon,
ki se imenuje lamd. Ta je kot neke vrste nano-jedro.
2. Potem zazenes (prevedeno!) aplikacijo, s tem, da mora biti exe koda
biti na razpolago NA VSEH postajah. LAM poskrbi, da se razlicne
arhitekture (SPARC in Intel procesorji) lepo razumejo med sabo.
3. S strani procesa je stvar taka, da moras na zacetku pognati
MPI_Init(), na koncu pa MPI_Finalize(), vse vmes je tvoje programje.
Ko so procesi zagnani, vsak izmed njih dobi RANG, to je enolicno
stevilko, s pomocjo katere se potem naslavljajo med sabo s sporocili.
4. Standard (tudi 1.1) je precej debel), tako da je ogromno moznosti
paralelne obdelave cesarkoli.
V kolikor kdo rabi, sem jaz, v obliki seminarske nekoc napisal, kako
tak LAM instalirati in napisal zraven nekaj testnih programov.
Ce kdo rabi, naj prosi na privat e-mail, dobil bo .dvi datoteko seminarske,
ki si jo lahko sprinta. Lahko dobi tudi .ps (.pdf se mi ne da delati).
Glede posebnih zahtev bi rekel, da mi je LAM z enimi zelo zgodnjimi kerneli
crkoval, meni krasno dela z 2.0.32 in 2.0.34 in verjamem, da tudi z novejsimi.
Drugace pa rabite samo se C prevajalnik, sam LAM in to je to.
Vse v zvezi z LAMom, MPIjem se da dobiti prosto na Internetu.
=b
--
============================================================================
Boris Benko, dipl.ing. | E-mail: Boris.Benko na telekom.si
Telekom Slovenije, PE Murska Sobota | B.Benko na s-gms.ms.edus.si
Senior Prog./Sys admin./Informatik | Boris.Benko na computer.org
Slu§ba za informatiko | Phone: (work) +386 69 31 676
| (work) +386 69 37 800 21
| (home) +386 69 32 592
===========================================================================
Dodatne informacije o seznamu Starilist