Parallelrechener, insbesondere solche mit verteiltem Speicher, bieten eine hohe Rechen-kapazität, weisen aber eine komplexe Programmierbarkeit auf. Der vorliegende Beitrag beschreibt ein multidimensionales Scheduling, Kernstück eines Werkzeugs zur Generierung von Programmen mit gemischter Daten- und Funktionsparallelität.
Das Schedulingverfahren basiert auf gene-ti-sche Algorithmen und entscheidet nicht nur über die Reihenfolge der Abarbeitung (voneinander unabhängige (Teil-)Aufgaben können eine nach der anderen von allen Prozessoren datenparallel abgearbeitet werden oder sie können gleichzeitig, funktionsparallel, von disjunkten Gruppen von Prozessoren abgearbeitet werden) und darüber welche Prozessoren den einzelnen Aufgaben für die Abarbeitung zugeordnet werden, sondern auch über die geeignete Datenverteilung und über die jeweils einzubindende Implementierungsversion (dem System können für einzelne Aufgaben mehrere Implementierungen, zum Beispiel unterschiedliche Bibliotheksfunktionen, zur Auswahl vorliegen).
Distributed memory machines provide a large computing power, but the development process for a specific parallel algorithm on a specific machine is complex due to the complicated runtime behaviour. We consider a powerful multi-dimensional scheduling embedded into a tool for generating parallel programs with mixed task and data parallelism.
Our scheduling is based on the genetic algorithm paradigm and it takes not only decisions on the execution order (independent tasks can be executed consecutively by all processors available or concurrently by independent groups of processors) and on the mapping of processors to tasks, but also on appropriate data distributions and task implementation versions (for each task there are several implementation version available, e.g., taken from a predefined set of library functions). Data redistribution operations and communication domain management operations are added, if necessary.
© 2015 Oldenbourg Wissenschaftsverlag GmbH, Rosenheimer Str. 145, 81671 München