В системах с множественными узлами потоки данных распределяются через параллелизм на уровне узлов. 2 Работа распределяется между несколькими вычислительными единицами, такими как серверы, кластеры GPU или распределённые вычислительные системы. 2
Некоторые способы распределения:
- SPMD (single program, multiple data). 5 На всех процессорах выполняется одна программа, и каждый процессор обрабатывает разные блоки данных. 5
- MPMD (multiple programs, multiple data). 5 На разных узлах работают разные программы, которые по-разному обрабатывают один и тот же массив данных. 5 Обычно они работают независимо, но время от времени обмениваются данными для перехода к следующему шагу. 5
Узлы координируют действия и обмениваются данными для решения общей задачи. 2 Для этого используются, например, такие механизмы:
- Передача сообщений. 1 Есть синхронный обмен, когда потоки отправляют и получают сообщения напрямую, и асинхронный, когда сообщения отправляются в очередь и обрабатываются получателем в своём темпе. 1
- Удалённые вызовы процедур (RPC). 1 Позволяют потокам вызывать методы на удалённых узлах, как если бы они были локальными. 1
- Общая память. 1 Системы с распределённой общей памятью (DSM) позволяют потокам на разных узлах получать доступ к общему пространству памяти. 1
Взаимодействие между вычислительными узлами, как правило, происходит через высокоскоростные сети, такие как InfiniBand или Ethernet. 2