병렬 프로그래밍을 위한 의사코드 작성

병렬 프로그래밍을 위한 의사코드 작성

"병렬 프로그래밍을 위한 의사 코드는 어떻게 작성합니까? 특히 지역 변수와 공유 변수를 어떻게 구별합니까? 분산, 수집, 축소, 브로드캐스트 및 지점 간 통신과 같은 작업을 어떻게 표현합니까? 이에 대한 표준이 있습니까? 저것?"

참고해주세요원래 질문이 질문되었습니다여기하지만 여전히 받아들일 수 있는 좋은 대답이 없습니다.

다른 질문을 다시 정교하게 정리하고 내용을 쉽게 요약하고 유지합니다.: 의사코드로 "라고 말할 수 있는 방법이 있나요?이 모든 작업을 병렬로 수행하세요."?

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 저널 논문).

관련 정보