Короткий ответ на ваш вопрос заключается в том, что не существует традиционного способа написания псевдокода для параллельного программирования.
Это связано с тем, что существует множество способов параллельного программирования с точки зрения различных параллельных архитектур (например, SMP, графических процессоров, кластеров и других экзотических систем) и подходов параллельного программирования. Я имею в виду «подходы к программированию», потому что в большинстве случаев это библиотеки или аннотации, а не языки (см. MPI, OpenMP, TBB и т. Д.). Таким образом, даже если вы сможете выбрать архитектуру и язык, у вас будут трудности с определением семантики библиотеки или системы аннотаций.
К счастью, были разработаны более строго определенные подходы к программированию. Тем не менее, они обычно основаны на передаче сообщений или в общей памяти. Поиск подходящей нотации / псевдокода будет зависеть от того, в какой степени вам требуется определить семантику и какие типы проблем параллельного программирования вы пытаетесь выразить.
Вот два предложения:
- PRAM . Программирование с общей памятью тесно связано с моделью вычисления параллельной машины с произвольным доступом (PRAM). Это было широко изучено, и в нем разработано много алгоритмов. Быстрый поиск литературы выведет подходящие нотации PRAM.
- СНТ . Связь последовательных процессов (CSP) - это формализм (алгебра) для выражения и рассуждения о системах передачи сообщений. Он оказал влияние на дизайн многих языков, в частности occam .
Модель PRAM очень проста и должна использоваться в качестве основы для нотаций программирования с общей памятью. Сам CSP может быть слишком математическим для псевдокода, а нотация occam может быть слишком многословной. Это было мнение Бринча Хансена (великого в параллельном программировании), который разработал свой родственный язык, SuperPascal, для использования в качестве нотации для объяснения параллельных алгоритмов в публикациях.
Насколько мне известно, не было разработано никаких других языков для параллельных вычислений, которые могли бы быть строго определены и / или пригодны для использования в качестве нотации высокого уровня.