Escribir pseudocódigo para programación paralela

Escribir pseudocódigo para programación paralela

"¿Cómo se escribe pseudocódigo para programación paralela? Especialmente, ¿cómo se diferencian las variables locales y compartidas? ¿Cómo se representan operaciones como dispersión, recopilación, reducción, transmisión y comunicaciones punto a punto? ¿Existen algunos estándares sobre ¿eso?"

Tenga en cuentase hizo la pregunta originalaquípero todavía NO tiene una buena respuesta aceptable.

Reelaborando otras preguntas, resumiendo y manteniendo las cosas fáciles.: ¿hay alguna forma de decir en pseudocódigo "?HACER TODAS ESTAS COSAS EN PARALELO"?

Estoy usando el paquete algorithm2econ TeXStudio. ¿Cómo componer el código paralelo usándolos?

Respuesta1

Después de investigar un poco en la web, me di cuenta de que todavía no existe una especie de "estándar". Así que aquí está mi solución personal usando 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}

El resultado es:

ingrese la descripción de la imagen aquí

Se basa en definir un nuevo comando mediante la expresión \SetKwBlock. El manual del paquete se puede encontrar.aquí. Además, acabo de agregar casi la misma solución a una pregunta similar en StackOverflow. La respuesta y la pregunta se pueden encontrar.aquí.

Utilizar la estrategia de definir tus palabras clave para describir tu algoritmo con los detalles que prefieras, siempre debería ser posible. Tenga en cuenta que:

  1. más detalles → más estarás cerca de tus lenguajes de programación.
  2. menos detalles → más puede verse como un pseudocódigo.

Concluyendo: siempre es una cuestión de compensaciones: tú decides dónde está el límite (teniendo en cuenta las personas objetivo a las que te refieres).

La misma estrategia se ha utilizado en artículos de revistas (por ejemplo, ver Algoritmo 3 y 4 deeste artículo de la revista IEEE).

información relacionada