Написание псевдокода для параллельного программирования

Написание псевдокода для параллельного программирования

«Как написать псевдокод для параллельного программирования? В частности, как вы различаете локальные и общие переменные? Как вы представляете такие операции, как рассеивание, сбор, сокращение, трансляция и связь точка-точка? Есть ли какие-то стандарты на этот счет?»

Пожалуйста, обрати вниманиепервоначальный вопрос был заданздесьно на него все еще НЕТ приемлемого ответа.

Повторная проработка других вопросов, обобщение и упрощение изложения: есть ли способ сказать в псевдокоде "ДЕЛАЙТЕ ВСЕ ЭТИ ВЕЩИ ПАРАЛЛЕЛЬНО"?

Я использую пакет algorithm2eс TeXStudio. Как с их помощью набрать параллельный код?

решение1

После некоторого веб-исследования я понял, что некоего "стандарта" все еще не существует. Так что вот мое личное решение с использованием 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}

Результат:

введите описание изображения здесь

Он основан на определении новой команды с использованием выражения \SetKwBlock. Руководство по пакету можно найтиздесь. Также я только что добавил почти такое же решение к похожему вопросу на StackOverflow. Ответ и вопрос можно найтиздесь.

Используя стратегию определения ключевых слов для описания вашего алгоритма с теми подробностями, которые вы предпочитаете, это всегда должно быть возможно. Примите во внимание, что:

  1. подробнее → вы будете ближе к своим языкам программирования.
  2. меньше деталей → больше его можно рассматривать как псевдокод.

Заключение: это всегда вопрос компромиссов: вы сами решаете, где находится предел (принимая во внимание целевую аудиторию, на которую вы ссылаетесь).

Та же стратегия использовалась в журнальных статьях (например, см. Алгоритм 3 и 4эта статья журнала IEEE).

Связанный контент