Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Cистемы с распределенной памятью на примере MPI кратко

Лекция



Привет, сегодня поговорим про cистемы с распределенной памятью, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое cистемы с распределенной памятью, mpi , настоятельно рекомендую прочитать все из категории Высоконагруженные проекты.Паралельные вычисления. Суперкомпьютеры. Распределенные системы.

. Об этом говорит сайт https://intellect.icu

Для систем с распределенной памятью широкоприменяется интерфейс MPI—Message Passing Interface.

  • Используютсяи другие:PMV(Parallel Virtual Machine) или SHMEM.
  • MPI основан на механизме передачии приемки сообщений.
  • MPI является распространенной средой для создания и выполнения параллельных программ.

Message Passing

  • Метод передачи данных из памяти одногопроцессора в память другого
  • Данные пересылаются в виде пакетов
  • Сообщение может состоять из одного илинескольких пакетов
  • Пакеты обычно содержат информацию роутингаи управления

Cистемы с распределенной памятью на примере MPI

Process:

  • Набор исполняемых команд (программа)
  • На процессоре может выполняться один или несколько процессов
  • Процессы обмениваются информацией только с помощью сообщений
  • Для повышения производительности желательно каждый процесс запускать на отдельном процессоре
  • На многоядерной ПЭВМ процессы могут выполняться на отдельных ядрах

Message PassingLibrary

  • Коллекция функций, используемых программой
  • Предназначены для передачи, приема и обработки сообщений
  • Среда выполнения параллельных программ

Cистемы с распределенной памятью на примере MPI

Send / Receive

  • При передаче данных требуется взаимодействие двух процессоров -передатчика и приемника
  • Передатчик определяет положение данных, размер, тип, получателя
  • Приемник должен соответствовать передаваемым данным

Cистемы с распределенной памятью на примере MPI

Synchronous/ Asynchronous

  • Синхронная передача завершается только послеподтверждения приемника о получениисообщения.
  • Асинхронная передача выполняется безквитирования (менее надежно)

ApplicationBuffer

  • Адресное пространство, содержащее данные, подлежащие передаче или приему (например,область памяти данных, хранящая некоторуюпеременную)

SystemBuffer

  • Системная область памяти для хранения сообщений
  • В зависимости от типа сообщения данные из ApplicationBufferмогут копироваться в SystemBufferи наоборот

BlockingCommunication

  • Функция завершается только после некоторого события

Non-blockingCommunication

  • Функция завершается без ожидания каких-либо коммуникационных событий
  • Использование системного буфера после выполнения неблокирующей операции передачи ОПАСНО!

CommunicatorsandGroups

  • Специальные объекты, определяющие, какие процессы могут обмениваться данными.
  • Процесс может входить в группу
  • Группа обменивается данными с помощью коммуникатора
  • В пределах группы процесс получает уникальный номер (идентификаторы)
  • Процесс может входить в несколько групп (разные идентификаторы!)
  • Сообщения, отправленные в разных коммуникаторах, не мешают друг другу

Поддерживает 2 стиля программирования:

MIMD -MultipleInstructionsMultipleData

  • •Процессы выполняют разный программный код
  • •Очень сложно писать и отлаживать
  • •Сложно синхронизировать и управлять взаимодействием процессов

SPMD -SingleProgramMultipleData

  • •Самый распространенный вариант
  • •Все процессы выполняют одинаковый программный код

Cистемы с распределенной памятью на примере MPI

Cистемы с распределенной памятью на примере MPI

MPI представляет собой как набор библиотек, так и среду выполнения

- Компиляция и компоновка с помощью скрипта mpicc

mpiccMPI_Hello.c-o MPI_Hello

- Запуск программы на исполнение с использованием 5 процессов

mpiexec-n 5 MPI_Helloс

- Добавление адресов узлов делается параметрами “-hosts”, “-nodes”, “-hostfile”:

mpiexec–hosts 10.2.12.5 10.2.12.6

Набор функций MPIдля обмена данными между группами процессов

Особенности:

  • в режиме приема-передачи работают все процессы
  • коллективная функция работает одновременно и на прием, и на передачу
  • значения всех параметров во всех процессах (кроме адреса буфера) должны совпадать

Включают:

  • MPI_Bcast()–широковещательная рассылка сообщения
  • MPI_SCATTER() –раздача данных разным процессам
  • MPI_Gather()–сбор данных из всех процессов в один процесс
  • MPI_Allgather()–сбор данных из всех процессов во все процессы
  • intMPI_Barrier()–точка синхронизации

MPI_Bcast(*buffer,count,datatype,root,comm)

  • buffer -буфер данных
  • count -счетчик передаваемых данных
  • datatype -тип данных
  • root -процесс-источник данных
  • comm-коммуникатор

MPI_Barrier(comm)

  • Приостанавливает процесс до момента, когда всепроцессы группы не достигнут барьера (точкисинхронизации)
  • Процессы ждут друг друга.

Cистемы с распределенной памятью на примере MPI

MPI_Scatter(*sendbuf,sendcnt,sendtype,*recvbuf,recvcnt,recvtype,root,comm)

Передает данные из массива процесса источника в накопители всех процессов

  • sendbuf-буфер источник с массивом рассылаемых данных
  • sendcnt-счетчик передаваемых данных
  • sendtype-тип данных
  • recvbuf-приемный буфер
  • recvcnt-счетчик принятых данных
  • recvtype-тип принятых данных
  • root -номер процесса, рассылающего данные
  • comm-коммуникатор

MPI_Gather(*sendbuf,sendcnt,sendtype,*recvbuf,recvcnt,recvtype,root,comm)

Собирает данные из буферов всех процессов вмассив-накопитель процесса-сборщика

  • sendbuf-буфер источник рассылаемых данных
  • sendcnt-счетчик передаваемых данных
  • sendtype-тип данных
  • recvbuf-приемный буфер для сбора данных
  • recvcnt-счетчик принятых данных
  • recvtype-тип принятых данных
  • root -номер собирающего процесса
  • comm-коммуникатор

набор функций MPI для обмена даннымимежду отдельными процессами

- одна ветвь вызывает функцию передачиданных, а другая -функцию приема

Cистемы с распределенной памятью на примере MPI

Суть:

- Задача 1 передает:

intbuf[10];

MPI_Send(buf, 5, MPI_INT, 1, 0, MPI_COMM_WORLD);

- Задача 2 принимает:

intbuf[10];

MPI_Statusstatus;

MPI_Recv(buf, 10, MPI_INT, 0, 0,

MPI_COMM_WORLD, &status);

Cистемы с распределенной памятью на примере MPI

Cистемы с распределенной памятью на примере MPI

Cистемы с распределенной памятью на примере MPI

  • Создадим приложение из N процессов
  • Создадим и заполним данными большой массив в процессе 0
  • Передадим часть массива в каждый процесс
  • В каждом процессе выполним сортировку локального массива в порядке возрастания
  • В процессе 0 копируем локальный массив в выходной массив
  • В процессе 0 по очереди принимаем локальные массивы от других процессов и сливаем с выходным массивом

Вспомогательные функции:

  • •Создание буфера и заполнение числами
  • •Сортировка по возрастанию указанного буфера
  • •Печать элементов буфера в окне терминала
  • •Слияние двух упорядоченных массивов по возрастанию

Прототипы функций

double *generate1(int);

double *processIt1(double *, int);

voidshowIt1(double *, int);

double *merge(double *arr1, double *arr2, intl1, intl2);

Cистемы с распределенной памятью на примере MPI

Cистемы с распределенной памятью на примере MPI

Cистемы с распределенной памятью на примере MPI

Cистемы с распределенной памятью на примере MPI

В общем, мой друг ты одолел чтение этой статьи об cистемы с распределенной памятью. Работы впереди у тебя будет много. Смело пиши комментарии, развивайся и счастье окажется в твоих руках. Надеюсь, что теперь ты понял что такое cистемы с распределенной памятью, mpi и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Высоконагруженные проекты.Паралельные вычисления. Суперкомпьютеры. Распределенные системы

Из статьи мы узнали кратко, но содержательно про cистемы с распределенной памятью
создано: 2016-01-17
обновлено: 2021-01-30
132452



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Высоконагруженные проекты.Паралельные вычисления. Суперкомпьютеры. Распределенные системы

Термины: Высоконагруженные проекты.Паралельные вычисления. Суперкомпьютеры. Распределенные системы