SPMD

Поделись знанием:
Перейти к: навигация, поиск

В программировании, SPMD (единая программа, множество данных) является методом, используемым для достижения параллелизма; это подкатегория MIMD-класса вычислительных систем в классификации Флинна.

В данной категории задачи разделены и работают одновременно на нескольких процессорах с различными входными данными с целью более быстрого получения результатов. SPMD является наиболее распространенным стилем параллельного программирования.[1] Он также является предпосылкой для исследования таких понятий, как активные сообщения и распределенной разделяемой памяти.





SPMD против SIMD

В SPMD, множество автономных процессоров одновременно выполняют одну и ту же программу из разных её мест (имеется в виду разделы кода), а не в жесткой последовательности, которую SIMD накладывает для обработки различных данных. Благодаря SPMD задачи могут быть выполнены на процессорах общего назначения. SIMD требует векторных процессоров для управления потоками данных. Заметим, что эти два метода не являются взаимоисключающими.

Распределенная память

SPMD обычно относят к «программированию передаваемых сообщений для архитектур распределенной памяти». Распределенная память состоит из набора независимых компьютеров, называемых «узлами». Каждый «узел» запускает свою собственную программу и взаимодействует с другими узлами посредством отправки и получения сообщения, вызывая для этого процедуры отправки и приема. Барьерная синхронизация может быть достигнута с помощью сообщений. Сообщения могут быть отправлены с помощью таких механизмов коммуникации как TCP/IP (для Ethernet) или специализированные высокоскоростные соединения, такие как Myrient и Supercomputer Interconnect. Последовательные участки (секции) программ реализуются одинаковыми вычислениями на всех узлах, а не с помощью вычисления результата на одном узле и его отправки на другие.

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

Распределенная память — это стиль программирования, использующийся на параллельных суперкомпьютерах от доморощенных Beowulf до крупнейших кластеров на TeraGrid.

Разделяемая память

На машине общей памяти (shared memory machine) (компьютер с несколькими процессорами, которые обращаются к единой памяти) сообщения могут быть отправлены путём сдачи на хранение их содержания в общую область памяти. Такой метод часто является наиболее эффективным для машин общей памяти с большим числом процессоров, особенно для машин с неравномерным доступом к памяти (NUMA), где память является локальной для процессора и доступ к памяти другого процессора занимает больше времени. SPMD с разделяемой памятью, как правило, реализуется стандартными процессами ОС.

В отличие от SPMD, многопроцессорная система с разделяемой памятью, которая также называется симметричной многопроцессорной или SMP, представляет возможность распараллеливания исполнения за счёт независимого пути исполнения приложения на каждом процессоре, с использованием общей памяти как механизма обмена данных. Программа начинает выполняться на одном процессоре и выполнение делится на параллельные регионы, которые определяются в коде с помощью параллельных директив (объявление начала параллельного региона в коде программы). В параллельном регионе, процессоры выполняют одну программу с разными данными. Типичным примером является параллельный цикл DO, где различные процессоры работают на отдельные части массива, участвующие в цикле. В конце цикла выполняется синхронизация, при этом только один процессор продолжает работу, а остальные ждут. В настоящее время стандартным интерфейсом для многопроцессорной системы с разделяемой памятью является OpenMP. Он обычно реализован c помощью легковесных потоков, называемых нитями.

Комбинация уровней параллелизма

Современные компьютеры позволяют эксплуатацию многих параллельных режимов одновременно для достижения максимального общего эффекта. Программы распределенной памяти, использующие MPI, могут работать на наборе узлов (одновременно). Каждый узел может являться компьютером с общей памятью и выполнять (выполнять вычисления) параллельно на нескольких процессорах с использованием OpenMP. Каждым процессором используются SIMD векторные инструкции (команды) (обычно генерируется автоматически компилятором) и суперскалярные исполняемые инструкции (команды) (как правило, обрабатываются прозрачно самим процессором), такие как конвейерирование (pipelining) и использование нескольких параллельных функциональных блоков, для достижения максимальной скорости одним процессором.

История

SPMD был предложен в 1984 году Фредериком Дарема в IBM для высокопроизводительных параллельных машин, таких как RP3 (IBM Research Parallel Processor Prototype), в неопубликованной записи IBM.[2] К концу 1980-х годов было много распределенных компьютеров с закрытыми библиотеками передачи сообщений. Первым стандартом SPMD был PVM. В настоящее время стандартом де-факто является MPI. Параллельные директивы Cray были прямым предшественником OpenMP.

Напишите отзыв о статье "SPMD"

Примечания

  1. [xlinux.nist.gov/dads//HTML/singleprogrm.html single program multiple data]. Проверено 23 января 2013. [www.webcitation.org/6ECNSyJGx Архивировано из первоисточника 5 февраля 2013].
  2. F. Darema, SPMD model: past, present and future, Recent Advances в Parallel Virtual Machine и Message Passing Interface: 8th European PVM/MPI Users' Group Meeting, Santorini/Thera, Greece, September 23-26, 2001. Lecture Notes in Computer Science 2131, p. 1, 2001.

Отрывок, характеризующий SPMD

– Давно пожаловали, графиня? – заговорил он. – Приду, приду, ручку поцелую. А я вот приехал по делам и девочек своих с собой привез. Бесподобно, говорят, Семенова играет, – говорил Илья Андреич. – Граф Петр Кириллович нас никогда не забывал. Он здесь?
– Да, он хотел зайти, – сказала Элен и внимательно посмотрела на Наташу.
Граф Илья Андреич опять сел на свое место.
– Ведь хороша? – шопотом сказал он Наташе.
– Чудо! – сказала Наташа, – вот влюбиться можно! В это время зазвучали последние аккорды увертюры и застучала палочка капельмейстера. В партере прошли на места запоздавшие мужчины и поднялась занавесь.
Как только поднялась занавесь, в ложах и партере всё замолкло, и все мужчины, старые и молодые, в мундирах и фраках, все женщины в драгоценных каменьях на голом теле, с жадным любопытством устремили всё внимание на сцену. Наташа тоже стала смотреть.


На сцене были ровные доски по средине, с боков стояли крашеные картины, изображавшие деревья, позади было протянуто полотно на досках. В середине сцены сидели девицы в красных корсажах и белых юбках. Одна, очень толстая, в шелковом белом платье, сидела особо на низкой скамеечке, к которой был приклеен сзади зеленый картон. Все они пели что то. Когда они кончили свою песню, девица в белом подошла к будочке суфлера, и к ней подошел мужчина в шелковых, в обтяжку, панталонах на толстых ногах, с пером и кинжалом и стал петь и разводить руками.
Мужчина в обтянутых панталонах пропел один, потом пропела она. Потом оба замолкли, заиграла музыка, и мужчина стал перебирать пальцами руку девицы в белом платье, очевидно выжидая опять такта, чтобы начать свою партию вместе с нею. Они пропели вдвоем, и все в театре стали хлопать и кричать, а мужчина и женщина на сцене, которые изображали влюбленных, стали, улыбаясь и разводя руками, кланяться.
После деревни и в том серьезном настроении, в котором находилась Наташа, всё это было дико и удивительно ей. Она не могла следить за ходом оперы, не могла даже слышать музыку: она видела только крашеные картоны и странно наряженных мужчин и женщин, при ярком свете странно двигавшихся, говоривших и певших; она знала, что всё это должно было представлять, но всё это было так вычурно фальшиво и ненатурально, что ей становилось то совестно за актеров, то смешно на них. Она оглядывалась вокруг себя, на лица зрителей, отыскивая в них то же чувство насмешки и недоумения, которое было в ней; но все лица были внимательны к тому, что происходило на сцене и выражали притворное, как казалось Наташе, восхищение. «Должно быть это так надобно!» думала Наташа. Она попеременно оглядывалась то на эти ряды припомаженных голов в партере, то на оголенных женщин в ложах, в особенности на свою соседку Элен, которая, совершенно раздетая, с тихой и спокойной улыбкой, не спуская глаз, смотрела на сцену, ощущая яркий свет, разлитый по всей зале и теплый, толпою согретый воздух. Наташа мало по малу начинала приходить в давно не испытанное ею состояние опьянения. Она не помнила, что она и где она и что перед ней делается. Она смотрела и думала, и самые странные мысли неожиданно, без связи, мелькали в ее голове. То ей приходила мысль вскочить на рампу и пропеть ту арию, которую пела актриса, то ей хотелось зацепить веером недалеко от нее сидевшего старичка, то перегнуться к Элен и защекотать ее.
В одну из минут, когда на сцене всё затихло, ожидая начала арии, скрипнула входная дверь партера, на той стороне где была ложа Ростовых, и зазвучали шаги запоздавшего мужчины. «Вот он Курагин!» прошептал Шиншин. Графиня Безухова улыбаясь обернулась к входящему. Наташа посмотрела по направлению глаз графини Безуховой и увидала необыкновенно красивого адъютанта, с самоуверенным и вместе учтивым видом подходящего к их ложе. Это был Анатоль Курагин, которого она давно видела и заметила на петербургском бале. Он был теперь в адъютантском мундире с одной эполетой и эксельбантом. Он шел сдержанной, молодецкой походкой, которая была бы смешна, ежели бы он не был так хорош собой и ежели бы на прекрасном лице не было бы такого выражения добродушного довольства и веселия. Несмотря на то, что действие шло, он, не торопясь, слегка побрякивая шпорами и саблей, плавно и высоко неся свою надушенную красивую голову, шел по ковру коридора. Взглянув на Наташу, он подошел к сестре, положил руку в облитой перчатке на край ее ложи, тряхнул ей головой и наклонясь спросил что то, указывая на Наташу.
– Mais charmante! [Очень мила!] – сказал он, очевидно про Наташу, как не столько слышала она, сколько поняла по движению его губ. Потом он прошел в первый ряд и сел подле Долохова, дружески и небрежно толкнув локтем того Долохова, с которым так заискивающе обращались другие. Он, весело подмигнув, улыбнулся ему и уперся ногой в рампу.
– Как похожи брат с сестрой! – сказал граф. – И как хороши оба!
Шиншин вполголоса начал рассказывать графу какую то историю интриги Курагина в Москве, к которой Наташа прислушалась именно потому, что он сказал про нее charmante.
Первый акт кончился, в партере все встали, перепутались и стали ходить и выходить.
Борис пришел в ложу Ростовых, очень просто принял поздравления и, приподняв брови, с рассеянной улыбкой, передал Наташе и Соне просьбу его невесты, чтобы они были на ее свадьбе, и вышел. Наташа с веселой и кокетливой улыбкой разговаривала с ним и поздравляла с женитьбой того самого Бориса, в которого она была влюблена прежде. В том состоянии опьянения, в котором она находилась, всё казалось просто и естественно.