thesis

Global Arrays over SCI : Enveis kommunikasjon i clustere

Abstract

Sammendrag av hovedfagsoppgaven "Global Arrays over SCI - Enveis kommunikasjon i clustere" av Kai-Robert Bjørnstad Enkelte applikasjonstyper og algoritmer vanskelig å implementere over MPI-grensesnittet. MPI-standarden fordrer en tosidig kommunikasjonsmodell hvor både sender og mottaker eksplisitt må delta i kommunikasjonen. Enveis kommunikasjon baserer seg på deltakelse kun fra senderprosessen ved utveksling av data (typisk kommunikasjonsmetode for SMP maskiner). Algoritmer og grensesnitt (f.eks. SHMEM) er utviklet for maskiner hvor prosessorene har et delt adresserom. Hovedforskjellen på enveis og tosidig kommunikasjon ligger i hvilken programmeringsmodell som tilbys, mao. hvordan applikasjonsprogrammereren må forholde seg til kommunikasjon mellom prosesser. Clustere har i utgangspunktet ikke et delt adresserom, noe som skaper problemer ved envis kommunikasjon. Som et resultat har man på mange måter forsøkt å skape en illusjon av shared memory ved hjelp av både hardware og/eller programvare, et såkalt DSM (Distributed Shared Memory). I denne sammenheng har et bibliotek kalt Global Arrays (GA) blitt utviklet. GA er implementert over kommunikasjonsbiblioteket ARMCI (Aggregate Remote Memory Copy Interface). ARMCI er et portabelt kommunikasjonsbibliotek med fokus på implementasjon av effektive enveis kommunikasjonsoperasjoner i clustere og i shared memory-maskiner. Grensesnittet er ikke standardisert, men benyttes likefullt av flere applikasjoner, f.eks. NWCHEM og GAMESS-UK (gjennom GA). ARMCI likner på mange måter SHMEM-grensesnittet for enveis kommunikasjon. Forskjellen ligger i at ARMCI fokuserer på overføring av ikke-sekvensielle (strided) datastrukturer. En viktig del av datakommunikasjon er å gjøre denne så effektiv som mulig. Det fokuseres på å benytte minst mulig tid på kommunikasjon (overhead) og mest mulig på prosessering/regning. Med dette som utganspunkt undersøkes det i oppgaven mulighetene for å la ARMCI kunne kommunisere over høyhastighetsnettverket SCI. Som et utgangspunkt skisserer oppgaven tre hovedmetoder for implementasjon; ARMCI over SCI via TCP/IP, MPI og SCI-driver. Prosjektet er basert på Scali AS sin programvare pakke (med ScaFun og ScaMPI) SSP (Scali Software Package). Det har blir vist at bruk av TCP/IP-implementasjoner som ScaIP over SCI introduserer en høy overhead og gir dårligere ytelse enn allerede eksisterende ARMCI-implementasjoner over Gigabit Ethernet. Det er videre utviklet en ARMCI-implementasjon utelukkende over en tosidig meldingsutvekslingsstandard, MPI. Denne kan benyttes over SCI ved hjelp av MPI-implementasjonen ScaMPI. ARMCI har også blitt implementert direkte over SCI ved hjelp av ScaFun. Denne implementasjonen ser ut til å ha størst potensiale når det kommer til selve datakommunikasjonen og bruk av zero- eller one-copy protokoller. Likefullt er faller implementasjonen i denne oppgaven på den høye overheaden forbundet med SCI-interrupter. Ved bruk av Hyper-Threading-teknologi fra Intel og en nødvendig thread-safe MPI-implementasjon, blir det vist en minimal introduksjon av overhead gjennom bruk av MPI og samtidig høy portabilitet

    Similar works