Schreiben von Pseudocode für die parallele Programmierung

Schreiben von Pseudocode für die parallele Programmierung

„Wie schreibt man Pseudocode für die parallele Programmierung? Insbesondere, wie unterscheidet man zwischen lokalen und gemeinsam genutzten Variablen? Wie stellt man Operationen wie Scatter, Gather, Reduce, Broadcast und Punkt-zu-Punkt-Kommunikation dar? Gibt es dafür irgendwelche Standards?“

Bitte beachten Siedie ursprüngliche Frage wurde gestelltHieraber es gibt immer noch KEINE gute, akzeptable Antwort.

Weitere Fragen noch einmal ausarbeiten, zusammenfassen und die Dinge einfach halten: gibt es eine Möglichkeit, in Pseudocode zu sagen "Machen Sie all diese Dinge parallel"?

Ich verwende das Paket algorithm2emit TeXStudio. Wie kann ich damit den parallelen Code setzen?

Antwort1

Nach einiger Recherche im Internet habe ich festgestellt, dass es noch keine Art „Standard“ gibt. Hier ist also meine persönliche Lösung mit algorithm2e:

\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
...
\begin{algorithm}
    \DontPrintSemicolon 
    \SetKwBlock{DoParallel}{do in parallel}{end}
    \KwIn{Some inputs}
    \KwOut{The ouput}
    \DoParallel{
        Compute a \;
        Compute b \;
        Compute c \;
    }
    \DoParallel{
        a1\;
        b1\;
        c1\;
    }
    \Return{the solution}\;
    \caption{Parallel Algo}
    \label{algo:parallelAlgorithm}
\end{algorithm}

Das Ergebnis ist:

Bildbeschreibung hier eingeben

Es basiert auf der Definition eines neuen Befehls mit dem Ausdruck \SetKwBlock. Das Handbuch des Pakets finden SieHier. Außerdem habe ich gerade fast die gleiche Lösung zu einer ähnlichen Frage auf StackOverflow hinzugefügt. Die Antwort und die Frage finden SieHier.

Mit der Strategie, Ihre Schlüsselwörter so zu definieren, dass Sie Ihren Algorithmus mit den gewünschten Details beschreiben, sollte dies immer möglich sein. Bedenken Sie Folgendes:

  1. mehr Details → mehr Sie sind nah an Ihren Programmiersprachen dran.
  2. weniger Details → eher als Pseudocode erkennbar.

Abschließend: es ist immer eine Frage des Kompromisses: Sie entscheiden, wo die Grenze liegt (unter Berücksichtigung der Zielgruppe, die Sie ansprechen).

Die gleiche Strategie wurde in Zeitschriftenartikeln verwendet (siehe beispielsweise Algorithmus 3 und 4 vondieser IEEE-Zeitschriftenartikel).

verwandte Informationen