並列プログラミングのための擬似コードの作成

並列プログラミングのための擬似コードの作成

「並列プログラミング用の疑似コードはどのように記述しますか? 特に、ローカル変数と共有変数をどのように区別しますか? 分散、収集、削減、ブロードキャスト、ポイントツーポイント通信などの操作をどのように表現しますか? これに関する標準はありますか?」

ご注意ください元々の質問はここしかし、まだ受け入れられる良い答えはありません。

他の質問を再度詳しく説明し、要約して物事を簡単に保つ: 擬似コードで言う方法はありますか?これらすべてを並行して行う「?」

パッケージ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. 詳細が少ない → 疑似コードとして見られる可能性が高くなります。

結論: それは常にトレードオフの問題です。限界がどこにあるかは、あなたが決めます (参照するターゲットの人々を考慮に入れながら)。

同じ戦略はジャーナル論文でも使用されている(例えば、このIEEEジャーナル論文)。

関連情報