11.07.2015 Aufrufe

Eine COMA-Architektur mit automatischer Verteilung von Daten

Eine COMA-Architektur mit automatischer Verteilung von Daten

Eine COMA-Architektur mit automatischer Verteilung von Daten

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

un time (seconds)70605040302010040 44 48 52 56 60 64problem size (matrix dimension)1 site2 sites3 sites4 sitesAbbildung 5 Laufzeiten der Matrix-Multiplikation aufSDAARC (Messungen wurden auf einem Linux Cluster<strong>mit</strong> 4 PCs durchgeführt).speedupefficiency3.532.521.510.540 44 48 52 56 60 641.0510.950.90.850.80.750.70.650.6problem size (matrix dimension)(a)0.5540 44 48 52 56 60 64problem size (matrix dimension)(b)Abbildung 6 (a) Speedup and (b) Effizienz der Matrix-Multiplikation. „Speedup“ ist definiert als die durchschnittlicheLaufzeit auf einer Site dividiert durch dieLaufzeit auf mehreren Sites. „Effizienz“ ist definiert alsSpeedup dividiert durch die Anzahl der Sites.1 site2 sites3 sites4 sites1 site2 sites3 sites4 sites5 Verwandte ArbeitenDie grundlegende Scheduling-Terminologie (Threads, Frames,u.s.w.) dieses Artikels stammt aus dem Bereich derMultithreaded Architectures, insbesondere <strong>von</strong> PRISC [16]und TAM [3]. <strong>COMA</strong>-basiertes Scheduling scheint bishernur in SDAARC zu existieren. Andere <strong>COMA</strong>s zielennicht auf Programm-Partitionierung,sondern bieten einDSM an, das sich auf ein (statisches oder dynamisches)Scheduling <strong>von</strong> explizit parallelen Programmen beschränkt(siehe z. B. [6]). Multithreading wird <strong>mit</strong> <strong>COMA</strong> in [15]benutzt, jedoch wiederum nur um Programme zu beschleunigen,die bereits partitioniert sind.SDAARC kann auch als Konzept für automatisches Schedulingbetrachtet werden. Einige automatische <strong>Verteilung</strong>s-Schemata konzentrieren sich auf das Scheduling <strong>von</strong>Schleifen und Arrays (z. B. [5]). Im Gegensatz dazu kannunser Ansatz auch <strong>mit</strong> irregulären Problemen und dynamischen<strong>Daten</strong>strukturen umgehen. Außerdem kann es sichbesser an dynamisch wechselnde Lasten auf den parallelenMaschinen (hervorgerufen durch die gleichzeitige Benutzungder Rechner durch andere Benutzer und Tasks) anpassen.Der zu SDAARC ähnlichste Scheduler ist vermutlich derScheduler der explizit parallelen Sprache Cilk [2]. Tatsächlichsind Teile unseres Schedulers durch Cilk inspiriert. Jedochbesitzt Cilk kein Konzept zur automatischen Parallelisierung.Ein guter Überblick über die verschiedenen Aktivitäten inund um Internet-Computing findet sich in [4].6 ZusammenfassungWir haben einen einheitlichen, konsistenten Ansatz zur automatischenParallelisierung <strong>von</strong> Programmen, die in konventionellen„sequentiellen“ Sprachen wie C oder FORT-RAN geschrieben sind, vorgestellt. Zur Compile-Zeit wirddas Programm in eine migrierbare Population <strong>von</strong> Threadsund Container-Objekten konvertiert, die zur Laufzeit aufdie verfügbaren Computer-Ressourcen verteilt werden. DasCache-Kohärenz-Protokoll, das Kollisionen und Inkonsistenzenverhindern soll, erlaubt konvergentes und divergentesVerschieben und Kopieren <strong>von</strong> migrierbaren Objekten,und erzeugt so<strong>mit</strong> eine Balance zwischen den gegensätzlichenZielen <strong>von</strong> Lokalität und Parallelismus.Der aktuelle Stand des Projekts ist folgendermaßen: DieIntranet-orientierte Version <strong>von</strong> SDAARC ist im Test. DieTests wurden ausgeführt, um die Stabilität zu erhöhen unddie Zusammenhänge zwischen Maschinengeschwindigkeit,Kommunikationslatenzen und der Granularität derThreads zu untersuchen. Ein neuer Compiler zur automatischenGenerierung <strong>von</strong> SDAARC-orientiertem migrierbaremthreaded code (unter Zuhilfenahme der FrontEnds<strong>von</strong> [7]), funktioniert in ersten Testläufen.7 Literatur[1] ANNAVARAM, MURALI und WALID A. NAJJAR:

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!