Scientific applications in distributed systems Kenneth Pedersen Kjetil Pedersen 11. desember 2001 http://faerun.dhs.org/project/
Vårt fokus Løyse numeriske problem ved hjelp av distribuerte system.
Numeriske problem Numeriske problem er matematiske problem som er for vanskelige til å kunne løysast analytisk. Dei blir løyst ved å dele problemet opp i små bitar og gjere tilnærmingar for kvar del. For å løyse numeriske problem treng ein ofte svært mykje reknekraft.
Distribuerte system Eit distribuert system består av to eller fleire uavhengige datamaskiner som jobbar sammen som ei integert eining. Eksempel: SETI@Home Beowulf Amoeba
Finitte elementers metode (FEM) Numerisk metode for å løyse randverdiproblem, dvs. problem definert ved differensialligningar og tilhøyrande radverdiar. Problemdomenet blir delt opp i små delar (finitte element), og tilnærmingar blir deretter utført for kvart element.
Finitte elementers metode, forts. Eksempel: Kuba blir delt inn i fire element. Kvart element er forma som eit tetraeder.
Implementere FEM (serielt) 1. Lese inn data Geometri Randverdiar Andre data 2. Utfør beregning for kvart element, kvar side eller kvart punkt 3. Samle inn data og presentere resultat
Implementere FEM (parallelt) 1. Les inn data 2. Del opp data vha. partisjonsalgoritme, og send til alle prosessar i systemet 3. For kvar prosess, utfør beregning. Ved bestemte punkt i utregninga, oppdater data mellom prosessar 4. Når alle prosessar er ferdige, samle data og presenter resultat
Vår oppgåve Evaluere fire ulike måtar å kommunisere på i distribuerte FEM-solverar Biblioteka MPI OOMPI CORBA og rammeverket OODFEM Med hensyn til Brukbarheit Effektivitet
Evaluering Implementere ei løysing på eit enkelt problem (arealutrekning) ved hjelp av kvar av dei fire metodane Samanlikne desse implementasjonane
Arealutrekning Programma reknar ut det totale overflatearealet av ein tredimensjonal trådmodell Utrekninga skjer element for element Dei elementflatene som ikkje har nabo blir teke med i det totale arealet
MPI MPI: Message Passing Interface Standard for meldingsoverføring Kan brukast med både C/C++ og FORTRAN Inneheld funksjonalitet for sending og mottak av meldingar og for synkronisering av prosessar Utgitt av the MPI Forum, den første versjonen kom i 1992
OOMPI OOMPI: Object-Oriented MPI Objektorientert klassebibliotek bygd på MPI som gir eit objektorientert grensesnitt til MPIfunksjonaliteten Dekker all funksjonalitet som MPI tilbyr Skrive i C++, kan kun brukast frå C++ Hastigheitsreduksjonen når ein bruker OOMPI i forhold til å bruke MPI direkte er neglisjerbar
CORBA CORBA: Common Object Request Broker Architecture Standard for remote object calls ( fjernobjektkall ) utgitt av Object Management Group (OMG). Den første versjonen kom i 1991. Gjer det mogleg for program på ei datamaskin å kalle metodar til objekt som finst på ei anna datamaskin Tilbyr tilsvarande funksjonalitet som Java RMI og Microsofts DCOM.
OODFEM Framework Rammeverk for å utvikle FEM-solverar som blir utvikla ved IDI av Roxana Diaconescu. Tar seg av alle aspekt ved paralleliseringa av FEM-solveren automatisk. Gjer bruk av OOMPI og datapartisjonerings-biblioteket METIS
Resultat - brukbarheit Rammeverket var suverent best på brukbarheit Den mengda programkode som vi måtte skrive for å løyse problemet med rammeverket var berre 1/10 av den kodemengda vi måtte bruke med dei andre variantane CORBA-varianten var vanskeligast å lage
Resultat - effektivitet Rekkefølge 1. MPI 2. OOMPI 3. CORBA 4. OODFEM-rammeverket Forskjellen mellom MPI og OOMPI, og mellom CORBA og rammeverket, var liten. Forskjellen i effektivitet mellom MPI og OODFEM var på ca. 5,5% med ei testfil, og på ca. 27% med ei 2,5 gangar større testfil.
Konklusjon Når ein bruker OODFEM-rammeverket vil det resulterande systemet vere mindre effektivt enn når ein spesiallagar ei løysing basert på eit generelt kommunikasjonsbibliotek Denne forskjellen er likevel såpass liten at rammeverket vil vere ei god løysing. Dette er på grunn av at det er så mykje raskare og enklare å implementere løysingar med rammeverket