Существуют ли специальные переменные, разделяемые между процессорами MPI? - PullRequest
2 голосов
/ 27 мая 2010

Я новичок в мире программирования MPI, и мне интересно, есть ли какие-то переменные, разделяемые между процессорами MPI и доступные из любого процесса без необходимости отправлять / получать их?

Спасибо

Ответы [ 2 ]

2 голосов
/ 01 июля 2010

Неа. Много раз ваш MPI-код будет работать на многих компьютерах одновременно, поэтому у них нет возможности делиться данными, кроме как передавать сообщения по сети.

Для многоядерных машин большинство реализаций MPI обнаруживают, запущены ли процессы на одном чипе, и используют оптимизированный алгоритм передачи сообщений, который исключает любую связь в сети, а в некоторых случаях повторно использует буферы, чтобы избежать промежуточных копий памяти.

2 голосов
/ 27 мая 2010

Нет. Не существует переменных или буферов «пространства пользователя», которые автоматически распределяются между рангами задания MPI.

Существуют некоторые общие переменные (например, общее количество рангов), которые устанавливаются средой MPI и гарантированно будут "одинаковыми" во всех рангах, но не являются "общими" (например, существует локальное чтение только копия значений во всех рядах). Во многих случаях доступ к значениям осуществляется через вызовы MPI_ *, а также могут быть доступны другие способы в зависимости от специфики реализации.

...