Между MPI-процессами

 

Рассмотрим задачу умножения матрицы на вектор. Один из вариантов решения данной задачи предполагает:

  1. Разбиение матрицы на ленты (блоки лент)
  2. Рассылку всем процессам соответствующих лент и вектора.
  3. Обработка частей матрицы
  4. Сбор результатов на одном из процессоров

 

При выполнении рассмотренного параллельного алгоритма есть необходимость передачи значений векторавсем процессам параллельной программы. Такая рассылка называется широковещательной рассылкой данных(one-to-all broadcast) и обеспечивается при помощи функции MPI:

int MPI_Bcast(void *buf,int count,MPI_Datatype type,int root,MPI_Comm comm),

где

- buf, count, type– буфер памяти с отправляемым сообщением (для процесса с рангом 0), и для приема сообщений для всех остальных процессов,

- root- ранг процесса, выполняющего рассылку данных,

- comm- коммуникатор, в рамках которого выполняется передача данных.

Функция MPI_Bcast осуществляет рассылку данных из буфера buf, содержащего count элементов типа type с процесса, имеющего номер root, всем процессам, входящим в коммуникатор comm.

Следует отметить:

1. Функция MPI_Bcast определяет коллективную операцию и, тем самым, при выполнении необходимых рассылок данных вызов функции MPI_Bcast должен быть осуществлен всеми процессами указываемого коммуникатора,

2. Указываемый в функции MPI_Bcast буфер памяти имеет различное назначение в разных процессах. Для процесса с рангом root, с которого осуществляется рассылка данных, в этом буфере должно находиться рассылаемое сообщение.Для всех остальных процессов указываемый буфер предназначен для приема передаваемых данных.

 








Дата добавления: 2015-02-03; просмотров: 832;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.