Параллельные вычисления

Параллельные вычисления — способ организации компьютерных вычислений, при котором программы разрабатываются как набор взаимодействующих вычислительных процессов, работающих параллельно (одновременно). Термин охватывает совокупность вопросов параллелизма в программировании, а также создание эффективно действующих аппаратных реализаций. Теория параллельных вычислений составляет раздел прикладной теории алгоритмов[1].

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

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

Способы синхронизации параллельного взаимодействия

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

  • Взаимодействие через разделяемую память: на каждом процессоре мультипроцессорной системы запускается поток исполнения, который принадлежит одному процессу. Потоки обмениваются данными через общий для данного процесса участок памяти[2]. Количество потоков соответствует количеству процессоров. Потоки создаются либо средствами языка (например, в Java или C#, C++ (начиная с C++11), C (начиная с C11)), либо с помощью библиотек явно (например, в С/C++ с помощью PThreads), либо декларативно (например, с помощью библиотеки OpenMP), или автоматически встроенными средствами компилятора (например, High Performance Fortran). Данный вид параллельного программирования обычно требует какой-то формы захвата управления (мьютексы, семафоры, мониторы) для координации потоков между собой.
  • Взаимодействие с помощью передачи сообщений: на каждом процессоре многопроцессорной системы запускается однопоточный процесс, который обменивается данными с другими процессами, работающими на других процессорах, с помощью сообщений. Процессы создаются явно, путём вызова соответствующей функции операционной системы, а обмен сообщениями — с помощью библиотеки (например, реализация протокола MPI), или с помощью средств языка (например, High Performance Fortran, Erlang или occam). Обмен сообщениями может происходить асинхронно, либо с использованием метода «рандеву», при котором отправитель блокирован до тех пор, пока его сообщение не будет доставлено. Асинхронная передача сообщений может быть надёжной (с гарантией доставки) либо ненадёжной[3].

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

У параллелизма с распределенной памятью и с передачей сообщений разные характеристики производительности. Обычно (но не всегда), накладные расходы памяти на процесс и времени на переключение задач у систем с передачей сообщений ниже, однако передача самих сообщений более накладна, чем вызовы процедур. Эти различия часто перекрываются другими факторами, влияющими на производительность.

  • Гибридный способ: на многопроцессорных системах с распределённой памятью (DM-MIMD), где каждый узел системы представляет собой мультипроцессор с общей памятью (SM-MIMD), можно использовать гибридный метод программирования[4]. На каждом узле системы запускается многопоточный процесс, который распределяет потоки между процессорами данного узла. Обмен данными между потоками на узле осуществляется через общую память, а обмен данными между узлами — через передачу сообщений. В этом случае количество процессов определяется количеством узлов, а количество потоков — количеством процессоров на каждом узле. Гибридный способ программирования более сложен (требуется особым образом переписывать параллельную программу), но наиболее эффективен в использовании аппаратных ресурсов каждого узла многопроцессорной системы.
Разумеется в такой системе можно также использовать и исключительно метод передачи сообщений, то есть запустить на каждом процессоре каждого узла отдельный процесс. В этом случае количество процессов (и потоков) будет равно количеству процессоров на всех узлах. Этот способ проще (в параллельной программе надо только увеличить количество процессов), но является менее эффективным, так как процессоры одного и того же узла будут обмениваться друг с другом сообщениями, словно они находятся на разных машинах[5].

Типичные задачи, допускающие параллельные вычисления

  • map — выполнение одной и той же функции над каждым элементом массива входных данных, с получением равного по мощности массива результатов вычисления
  • reduce — выполнение одной и той же функции для добавления вклада каждого элемента входных данных в одно итоговое значение

Программные инструменты параллелизма

  • OpenMP — стандарт интерфейса приложений для параллельных систем с общей памятью.
  • POSIX Threads — стандарт реализации потоков (нитей) выполнения.
  • Windows API — многопоточные приложения для C++.
  • PVM (Parallel Virtual Machine) позволяет объединить разнородный (но связанный сетью) набор компьютеров в общий вычислительный ресурс.
  • MPI (Message Passing Interface) — стандарт систем передачи сообщений между параллельно исполняемыми процессами.

См. также

Примечания

Литература

  • Словарь по кибернетике / Под редакцией академика В. С. Михалевича. — 2-е. — Киев: Главная редакция Украинской Советской Энциклопедии имени М. П. Бажана, 1989. — 751 с. — (С48). — 50 000 экз. — ISBN 5-88500-008-5.
  • RS/6000 SP: Practical MPI Programming. — IBM RedBook, 1999. — 238 с. Архивная копия от 19 января 2008 на Wayback Machine (англ.)
  • Воеводин В. В., Воеводин Вл. В. Параллельные вычисления. — СПб.: БХВ-Петербург, 2002. — 608 с. — ISBN 5-94157-160-7.
  • Оленев Н. Н. Основы параллельного программирования в системе MPI. — М.: ВЦ РАН, 2005. — 80 с. — ISBN 5201098320.

Ссылки

Read other articles:

2020 Indian Neo-Noir film directed by Anwar Rasheed TranceTheatrical release posterDirected byAnwar RasheedWritten byVincent VadakkanStory byVincent VadakkanProduced byAnwar RasheedStarring Fahadh Faasil Gautham Vasudev Menon Nazriya Nazim Dileesh Pothan Chemban Vinod Jose Soubin Shahir Sreenath Bhasi Vinayakan CinematographyAmal NeeradEdited byPraveen PrabhakarMusic by Jackson Vijayan Sushin Shyam ProductioncompanyAnwar Rasheed EntertainmentsDistributed byA & A Release & Tricolor Ent...

 

Cuban writer (1842-1920) Aurelia Castillo de GonzálezAurelia Castillo de GonzálezBorn1842 Died1920  (aged 77–78)OccupationWriter  Aurelia Castillo de González (known in Cuba as nuestra Madame de Sévigné;[1] 1842–1920) was a Cuban writer. She wrote short stories, poems, prose, and was also a typographer, biographer, editor, and travel writer.[2] Biography Aurelia Castillo de González was born in Camagüey in 1842, spent much time in European travel, and...

 

British Army general General The Right HonourableThe Lord de RosPC DLWilliam Lord De RosCaptain of the Yeomen of the GuardIn office27 February 1852 – 17 December 1852MonarchQueen VictoriaPrime MinisterThe Earl of DerbyPreceded byThe Marquess of DonegallSucceeded byThe Viscount SydneyIn office17 March 1858 – 11 June 1859MonarchQueen VictoriaPrime MinisterThe Earl of DerbyPreceded byThe Viscount SydneySucceeded byThe Earl of Ducie Personal detailsBorn1 September 1797Thames...

Pour les articles homonymes, voir Fourche (homonymie). Sur une bicyclette ou une moto, la fourche est l'élément sur lequel est fixée la roue avant. La fourche est reliée au cadre et, sous l'action du guidon, pivote pour orienter la direction de la roue et ainsi diriger le deux-roues. La fourche peut être rigide ou suspendue.Fourche rigide de vélo avec deux fourreaux et un pivot.Les fourches rigides, apparues dès le XIXe siècle, équipent encore de nombreux modèles de bicyclette...

 

Синелобый амазон Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:ЗавропсидыКласс:Пт�...

 

Scientific study of light's effect on living organisms Photobiology is the scientific study of the beneficial and harmful interactions of light (technically, non-ionizing radiation) in living organisms.[1] The field includes the study of photophysics, photochemistry, photosynthesis, photomorphogenesis, visual processing, circadian rhythms, photomovement, bioluminescence, and ultraviolet radiation effects.[2] The division between ionizing radiation and non-ionizing radiation is...

Canadian jazz singer and pianist (born 1964) Diana KrallOC, OBCKrall at a CD signing in Toronto in September 2007Background informationBirth nameDiana Jean KrallBorn (1964-11-16) November 16, 1964 (age 59)Nanaimo, British Columbia, CanadaGenresJazz, traditional pop, bossa novaOccupation(s)Singer, musician, songwriterInstrument(s)Vocals, pianoYears active1993–presentLabelsJustin Time GRP Impulse VerveSpouse(s) Elvis Costello ​(m. 2003)​ Websitedianakrall.com...

 

French poet (1590–1696) Théophile de Viau Théophile de Viau (1590 – 25 September 1626) was a French Baroque poet and dramatist. Life Born at Clairac, near Agen in the Lot-et-Garonne and raised as a Huguenot, Théophile de Viau participated in the Huguenot rebellions in Guyenne from 1615–16 in the service of the Comte de Candale. After the war, he was pardoned and became a brilliant young poet in the royal court. Théophile came into contact with the epicurean ideas of Ita...

 

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

Form of voting that allows delegation The examples and perspective in this article deal primarily with the United States and do not represent a worldwide view of the subject. You may improve this article, discuss the issue on the talk page, or create a new article, as appropriate. (May 2024) (Learn how and when to remove this message) Part of the Politics seriesElectoral systems Single-winner/majoritarianPlurality First-past-the-post Plurality at-large (plurality block voting) General ticket ...

 

العلاقات النمساوية الغامبية النمسا غامبيا   النمسا   غامبيا تعديل مصدري - تعديل   العلاقات النمساوية الغامبية هي العلاقات الثنائية التي تجمع بين النمسا وغامبيا.[1][2][3][4][5] مقارنة بين البلدين هذه مقارنة عامة ومرجعية للدولتين: وجه المقارنة ا�...

 

Neighborhood of Los Angeles, California Neighborhood of Los Angeles in California, United StatesBel AirNeighborhood of Los AngelesThe Bel Air west gate at Sunset and BellagioBoundaries of Bel Air as drawn by the Los Angeles TimesBel AirLocation within West Los AngelesCoordinates: 34°05′00″N 118°26′52″W / 34.08333°N 118.44778°W / 34.08333; -118.44778CountryUnited StatesStateCaliforniaCountyLos AngelesTime zonePacific Bel Air (or Bel-Air)[fn 1] is a r...

Early 20th century arms race among Argentina, Brazil, and Chile The gun trials of the Brazilian dreadnought Minas Geraes, the ship that began the dreadnought race.[A] Here, all guns capable of training to the port side were fired, forming what was at that time the heaviest broadside ever fired off a warship. South Americandreadnoughts Minas Geraes class Rivadavia class Almirante Latorre class Rio de Janeiro Riachuelo A naval arms race among Argentina, Brazil, and Chile—the wealthies...

 

British train operating company SouthernA pair of Southern Class 377s at London Victoria Platforms 18 and 19 awaiting departure to Eastbourne and ReigateOverviewFranchise(s)Network SouthCentral26 August 2001 – 24 May 2003South Central25 May 2003 – 19 September 2009Gatwick Express22 June 2008 – 19 September 2009South Central (incl Gatwick Express)20 September 2009 – 25 July 2015Part of Thameslink, Southern and Great Northern26 July 2015 – 1 April 2028[1]Main Region(s)Greater ...

 

FlyBosnia IATA ICAO Kode panggil 6W FBS BOSNIAAIR DidirikanNovember 2017Mulai beroperasiJanuari 2019 (Dilanjutkan mei 2022)PenghubungBandar Udara Internasional SarajevoKantor pusatSarajevo, Bosnia dan HerzegovinaSitus webwww.flybosnia.ba FlyBosnia adalah salah satu maskapai penerbangan dari Bosnia dan Herzegovina yang berbasis di Bandar Udara Internasional Sarajevo. Referensi Artikel bertopik maskapai penerbangan ini adalah sebuah rintisan. Anda dapat membantu Wikipedia dengan mengembangkanny...

  关于名为徐立之的其他人物,請見「徐綱 (嘉靖甲辰進士)」。 Professor the Honourable徐立之Tsui Lap-cheeGBM OC GBS JP 教授第13任香港大學校長任期2002年9月1日—2014年3月31日 前任戴義安教授继任馬斐森教授 个人资料出生 (1950-12-21) 1950年12月21日(73歲) 中国上海国籍 加拿大 中华人民共和国(香港) 学历 香港中文大學理學士(生物學)香港中文大學哲學碩士(生物學�...

 

Portuguese footballer Jaime Bragança Bragança signing for Chonburi FcPersonal informationFull name Jaime Celestino Dias BragançaDate of birth (1983-06-09) 9 June 1983 (age 41)Place of birth Lisbon, PortugalHeight 1.84 m (6 ft 0 in)Position(s) WingerYouth career1992–1999 Sporting CP1999–2000 Odivelas2000–2001 MarítimoSenior career*Years Team Apps (Gls)2001–2004 Marítimo B 46 (5)2002–2004 Marítimo 5 (0)2004–2005 Santa Clara 10 (0)2005–2006 Olhanense 14 (0...

 

Zwitserland op de Olympische Spelen Land Zwitserland IOC-landcode SUI NOC Swiss Olympic Association(de) externe link Olympische Winterspelen 2022 in Peking Aantal deelnemers 167 Aantal disciplines 13 MedaillesRang: 8 goud7 zilver2 brons6 totaal15 Zwitserland op de Zomerspelen 1896 · 1900 · 1904 · 1908 · 1912 · 1920 · 1924 · 1928 · 1932 · 1936 · 1948 · 1952 · 1956 · 1960 · 1964 · 1968 · 1972 · 1976 · 1980 · 1984 · 1988 · 1992 · 1996 · 2000 · 2004 · 2008 · 2012 ...

死刑 > 世界の死刑制度の現状 > 日本における死刑 この記事は特に記述がない限り、日本国内の法令について解説しています。また最新の法令改正を反映していない場合があります。 ご自身が現実に遭遇した事件については法律関連の専門家にご相談ください。免責事項もお読みください。 日本の刑法 刑事法 刑法 刑法学 ・ 犯罪 ・ 刑罰 罪刑法定主義 犯罪�...

 

この項目では、首都圏地区の東海道本線・南武線の貨物線・貨物支線の一部について説明しています。 首都圏地区の東海道本線の貨物支線のうち、品川駅 - 新鶴見信号場 - 鶴見駅間については「品鶴線」をご覧ください。 首都圏地区の東海道本線の貨物支線のうち、鶴見駅 - 東高島駅 - 桜木町駅間については「高島線」をご覧ください。 大阪地区の東海道本線の貨物�...