A computer-implemented method and apparatus for parallelizing input
computer-program code based on class-specific abstractions. The method
includes the steps of providing a class-specific abstraction (CSA), and
generating parallelization code based on the CSA and the input code. Other
aspects include checking the input code for compliance with the CSA,
performing a dependency analysis of the input code for compliance with the
CSA, analyzing the control flow of the input code based on the CSA, and
generating a block-based representation of a control flow based on index
variables in the input code and on the CSA. In one embodiment, the CSA
includes a computational-set template, a dependency template, and a set of
allowed index-variable access patterns. Yet other aspects include
generating synchronization points based on the CSA, mapping a
computational set to a virtual array of parallel processors, and mapping
the virtual array of parallel processors to a physical array of parallel
processors. Other features include outputting a representation of
communications flow between processors of data related to index variables
in the input code. Other aspects include a storage medium having a
computer program stored thereon for causing a computer to parallelize
input code by the method. Another embodiment includes the steps of
identifying to the computer a numerical-method class used in the input
code, identifying a mapping of an index variable used in the input code to
spatial coordinates. Other aspects include performing dependency analysis
to determine communication-synchronization points, and minimizing the
number of such points for data transmitted between processors.
Eine Computer-eingeführte Methode und ein Apparat für parallelizing den Eingang Computer-Programm Code basiert auf Kategorie-spezifischen Abstraktionen. Die Methode schließt die Schritte des Zur Verfügung stellens einer Kategorie-spezifischen Abstraktion (CSA) und des Erzeugens des parallelization Codes ein, der auf dem CSA und dem Eingang Code basiert. Andere Aspekte schließen die Überprüfung des Eingang Codes auf Befolgung mit dem CSA ein und führen eine Abhängigkeit Analyse des Eingang Codes für Befolgung mit dem CSA durch, analysieren den Steuerfluß des Eingang Codes, der auf dem CSA basiert, und erzeugen eine blockieren-gegründete Darstellung eines Steuerflusses, der auf Indexvariablen im Eingang Code und auf dem CSA basiert. In einer Verkörperung schließt das CSA Berechnungs--einstellte Schablone, eine Abhängigkeit Schablone und einen Satz erlaubte Index-variable Zugang Muster mit ein. Dennoch schließen andere Aspekte das Erzeugen der Synchrounisierung Punkte mit ein, die auf dem CSA basieren, das Diagramm eines Berechnungssatzes zu einer virtuellen Reihe parallelen Prozessoren und das Diagramm der virtuellen Reihe der parallelen Prozessoren zu einer körperlichen Reihe parallelen Prozessoren. Andere Eigenschaften schließen das Ausgeben einer Darstellung von Kommunikationen fließen zwischen Prozessoren der Daten ein, die auf Indexvariablen in den Eingang Code dazugehörig sind. Andere Aspekte schließen ein Speichermedium ein, das ein Computerprogramm für das Veranlassen eines Computers parallelize Eingang Code durch die Methode darauf speichern läßt. Eine andere Verkörperung schließt die Schritte des Kennzeichnens zum Computer, den eine Numerischmethode Kategorie im Eingang Code verwendete ein und kennzeichnet ein Diagramm einer Indexvariable, die im Eingang Code an räumliche Koordinaten gewöhntIST. Andere Aspekte schließen das Durchführen von von Abhängigkeit Analyse, um Kommunikation-Synchrounisierung Punkte festzustellen und die Minderung der Zahl solchen Punkten für die Daten mit ein, die zwischen Prozessoren übertragen werden.