Parallel programming model

In computing, a parallel programming model is an abstraction of parallel computer architecture, with which it is convenient to express algorithms and their composition in programs. The value of a programming model can be judged on its generality: how well a range of different problems can be expressed for a variety of different architectures, and its performance: how efficiently the compiled programs can execute.[1] The implementation of a parallel programming model can take the form of a library invoked from a programming language, as an extension to an existing languages.

Consensus around a particular programming model is important because it leads to different parallel computers being built with support for the model, thereby facilitating portability of software. In this sense, programming models are referred to as bridging between hardware and software.[2]

Classification of parallel programming models

Classifications of parallel programming models can be divided broadly into two areas: process interaction and problem decomposition.[3][4][5]

Process interaction

Process interaction relates to the mechanisms by which parallel processes are able to communicate with each other. The most common forms of interaction are shared memory and message passing, but interaction can also be implicit (invisible to the programmer).

Shared memory

Shared memory is an efficient means of passing data between processes. In a shared-memory model, parallel processes share a global address space that they read and write to asynchronously. Asynchronous concurrent access can lead to race conditions, and mechanisms such as locks, semaphores and monitors can be used to avoid these. Conventional multi-core processors directly support shared memory, which many parallel programming languages and libraries, such as Cilk, OpenMP and Threading Building Blocks, are designed to exploit.

Message passing

In a message-passing model, parallel processes exchange data through passing messages to one another. These communications can be asynchronous, where a message can be sent before the receiver is ready, or synchronous, where the receiver must be ready. The Communicating sequential processes (CSP) formalisation of message passing uses synchronous communication channels to connect processes, and led to important languages such as Occam, Limbo and Go. In contrast, the actor model uses asynchronous message passing and has been employed in the design of languages such as D, Scala and SALSA.

Partitioned global address space

Partitioned Global Address Space (PGAS) models provide a middle ground between shared memory and message passing. PGAS provides a global memory address space abstraction that is logically partitioned, where a portion is local to each process. Parallel processes communicate by asynchronously performing operations (e.g. reads and writes) on the global address space, in a manner reminiscent of shared memory models. However by semantically partitioning the global address space into portions with affinity to a particular processes, they allow programmers to exploit locality of reference and enable efficient implementation on distributed memory parallel computers. PGAS is offered by many parallel programming languages and libraries, such as Fortran 2008, Chapel, UPC++, and SHMEM.

Implicit interaction

In an implicit model, no process interaction is visible to the programmer and instead the compiler and/or runtime is responsible for performing it. Two examples of implicit parallelism are with domain-specific languages where the concurrency within high-level operations is prescribed, and with functional programming languages because the absence of side-effects allows non-dependent functions to be executed in parallel.[6] However, this kind of parallelism is difficult to manage[7] and functional languages such as Concurrent Haskell and Concurrent ML provide features to manage parallelism explicitly and correctly.

Problem decomposition

A parallel program is composed of simultaneously executing processes. Problem decomposition relates to the way in which the constituent processes are formulated.[8][5]

Task parallelism

A task-parallel model focuses on processes, or threads of execution. These processes will often be behaviourally distinct, which emphasises the need for communication. Task parallelism is a natural way to express message-passing communication. In Flynn's taxonomy, task parallelism is usually classified as MIMD/MPMD or MISD.

Data parallelism

A data-parallel model focuses on performing operations on a data set, typically a regularly structured array. A set of tasks will operate on this data, but independently on disjoint partitions. In Flynn's taxonomy, data parallelism is usually classified as MIMD/SPMD or SIMD.

Stream Parallelism

Stream parallelism, also known as pipeline parallelism, focuses on dividing a computation into a sequence of stages, where each stage processes a portion of the input data. Each stage operates independently and concurrently, and the output of one stage serves as the input to the next stage. Stream parallelism is particularly suitable for applications with continuous data streams or pipelined computations.

Implicit parallelism

As with implicit process interaction, an implicit model of parallelism reveals nothing to the programmer as the compiler, the runtime or the hardware is responsible. For example, in compilers, automatic parallelization is the process of converting sequential code into parallel code, and in computer architecture, superscalar execution is a mechanism whereby instruction-level parallelism is exploited to perform operations in parallel.

Terminology

Parallel programming models are closely related to models of computation. A model of parallel computation is an abstraction used to analyze the cost of computational processes, but it does not necessarily need to be practical, in that it can be implemented efficiently in hardware and/or software. A programming model, in contrast, does specifically imply the practical considerations of hardware and software implementation.[9]

A parallel programming language may be based on one or a combination of programming models. For example, High Performance Fortran is based on shared-memory interactions and data-parallel problem decomposition, and Go provides mechanism for shared-memory and message-passing interaction.

Example parallel programming models

Name Class of interaction Class of decomposition Example implementations
Actor model Asynchronous message passing Task D, Erlang, Scala, SALSA
Bulk synchronous parallel Shared memory Task Apache Giraph, Apache Hama, BSPlib
Communicating sequential processes Synchronous message passing Task Ada, Occam, VerilogCSP, Go
Circuits Message passing Task Verilog, VHDL
Dataflow Message passing Task Lustre, TensorFlow, Apache Flink
Functional Message passing Task Concurrent Haskell, Concurrent ML
LogP machine Synchronous message passing Not specified None
Parallel random access machine Shared memory Data Cilk, CUDA, OpenMP, Threading Building Blocks, XMTC
SPMD PGAS Partitioned global address space Data Fortran 2008, Unified Parallel C, UPC++, SHMEM
Global-view Task parallelism Partitioned global address space Task Chapel, X10

See also

References

  1. ^ Skillicorn, David B., "Models for practical parallel computation", International Journal of Parallel Programming, 20.2 133–158 (1991), https://www.ida.liu.se/~chrke55/papers/modelsurvey.pdf
  2. ^ Leslie G. Valiant, "A bridging model for parallel computation", Communications of the ACM, Volume 33, Issue 8, August, 1990, pages 103–111.
  3. ^ John E. Savage, Models of Computation: Exploring the Power of Computing, 2008, Chapter 7 (Parallel Computation), http://cs.brown.edu/~jes/book/ Archived 2016-11-05 at the Wayback Machine
  4. ^ "1.3 A Parallel Programming Model". www.mcs.anl.gov. Retrieved 2024-03-21.
  5. ^ a b "Introduction to Parallel Computing Tutorial | HPC @ LLNL". hpc.llnl.gov. Retrieved 2024-03-21.
  6. ^ Hammond, Kevin. Parallel functional programming: An introduction. In International Symposium on Parallel Symbolic Computation, p. 46. 1994.
  7. ^ McBurney, D. L., and M. Ronan Sleep. "Transputer-based experiments with the ZAPP architecture." PARLE Parallel Architectures and Languages Europe. Springer Berlin Heidelberg, 1987.
  8. ^ "2.2 Partitioning". www.mcs.anl.gov. Retrieved 2024-03-21.
  9. ^ Skillicorn, David B., and Domenico Talia, Models and languages for parallel computation, ACM Computing Surveys, 30.2 123–169 (1998), https://www.cs.utexas.edu/users/browne/CS392Cf2000/papers/ModelsOfParallelComputation-Skillicorn.pdf

Further reading

Read other articles:

Attilio Lombardo Informasi pribadiTanggal lahir 6 Januari 1966 (umur 58)Tempat lahir Santa Maria la Fossa, ItaliaTinggi 1,77 m (5 ft 9+1⁄2 in)Posisi bermain gelandang/sisi kananKarier senior*Tahun Tim Tampil (Gol)1983–1985 Pergocrema 38 (9)1985–1989 Cremonese 141 (17)1989–1995 Sampdoria 201 (34)1995–1997 Juventus 35 (2)1997–1999 Crystal Palace 43 (8)1999–2001 Lazio 33 (2)2001–2002 Sampdoria 34 (4)Tim nasional‡1990–1997 Italia 19 (3)Kepelatihan1998 ...

 

 

Komando Resor Militer 131/SantiagoLambang Korem 131/SantiagoDibentuk4 Januari 1964Negara IndonesiaCabangTNI Angkatan DaratTipe unitKorem Tipe APeranPasukan Teritorial DaratBagian dariKodam XIII/MerdekaMakoremManado, Sulawesi UtaraJulukanKorem 131/StgPelindungTentara Nasional IndonesiaMotoBhirawa CaktiBaret H I J A U Ulang tahun4 JanuariTokohKomandanBrigjen TNI WakhyonoKepala StafKolonel Inf Yarnedi Mulyadi Komando Resor Militer 131/Santiago atau Korem 131/Santiago merupakan Kor...

 

 

British company operating service stations Extra MSAThe logo at the Cambridge servicesCompany typePrivateIndustryHospitalityHeadquartersBeaconsfield, England, UKArea servedEnglandWebsitewww.extraservices.co.uk Extra MSA Services Ltd is a company that operates nine motorway service stations in England, mainly on primary routes. It is based at Beaconsfield services, previously being in the centre of Lincoln. It is also known as Extra MSA Forecourts Ltd. Many of the brands at Extra locations inc...

Mikhail Rostovtsev beralih ke halaman ini. Untuk penyanyi dan pemeran bernama sama, lihat Mikhail Rostovtsev (pemeran). Michael RostovtzeffMichael RostovtzeffLahirMikhail Ivanovich Rostovtzeff10 November [K.J.: 29 Oktober] 1870Zhitomir, Kekaisaran Rusia (sekarang Ukraina)Meninggal20 Oktober 1952(1952-10-20) (umur 81)New Haven, Connecticut, ASKebangsaanRusiaWarga negaraAmerika SerikatKarier ilmiahBidangArkeologi, sejarah, sejarah kunoInstitusiUniversitas St. PetersburgUniversitas Wisconsi...

 

 

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

 

 

Coppa Europa di sci alpino 1988 Uomini Donne Vincitori Generale Konrad Walk Petra Bernet Discesa libera Xavier Gigandet Barbara Sadleder Supergigante Walter Gugele Petra Bernet Slalom gigante Konrad Walk Sandra Burn Slalom speciale Christian Orlainsky Camilla Lundbäck 1987 1989 La Coppa Europa di sci alpino 1988 fu la 17ª edizione della manifestazione organizzata dalla Federazione Internazionale Sci. In campo maschile l'austriaco Konrad Walk si aggiudicò sia la classifica generale, sia qu...

Pakistani cricketer Salman IrshadIrshad in 2022Personal informationBorn (1995-12-03) 3 December 1995 (age 28)Rawalakot, Azad Kashmir, PakistanHeight6 ft 2 in (188 cm)[1]BattingRight-handedBowlingRight-arm fast-mediumRoleBowlerDomestic team information YearsTeam2015-2016AJK Jaguars2017Hawkesbury Cricket Club2018; 2020Lahore Qalandars (squad no. 99)2019–2021Northern2021-presentMirpur Royals (squad no. 99)2022-presentPeshawar Zalmi (squad no...

 

 

Light biscuit CamporelliGlazed Camporelli being preparedAlternative namesBiscotti CamporelliCourseDessertPlace of originItalyRegion or stateNovaraMain ingredientsFlour, Sugar, EggFood energy(per serving)28 kcal per biscuit kcal Camporelli[1] or biscotti Camporelli, is a light biscuit made with three ingredients--flour, sugar, and eggs--and then baked twice. They are characterized by their round, long shape, crispy edges, and golden color, as well as the lack of fat, such as butte...

 

 

شري النقيل (محلة) تقسيم إداري البلد  اليمن المحافظة محافظة إب المديرية مديرية حزم العدين العزلة عزلة حليمة القرية قرية حليمة السكان التعداد السكاني 2004 السكان 156   • الذكور 81   • الإناث 75   • عدد الأسر 23   • عدد المساكن 26 معلومات أخرى التوقيت توقيت اليمن (+3 غرينيت...

English pro footballer (1967–2001) David Rocastle Rocastle in the 1990sPersonal informationFull name David Carlyle Rocastle[1]Date of birth (1967-05-02)2 May 1967[1]Place of birth Lewisham, London, England[1]Date of death 31 March 2001(2001-03-31) (aged 33)[1]Place of death Slough, England[1]Height 5 ft 9 in (1.75 m)[2]Position(s) MidfielderYouth career1982–1985 ArsenalSenior career*Years Team Apps (Gls)1985–1992 Arsena...

 

 

この項目では、楽器について説明しています。その他の用法については「フルート (曖昧さ回避)」をご覧ください。 フルート 各言語での名称 英 flute 独 Flöte, Querflöte 仏 flûte, flûte traversière 伊 flauto, flauto traverso 中 长笛(簡体字) 長笛(繁体字) 分類 木管楽器 - 無簧開管楽器 - フルート属 気鳴楽器 - 刃型付吹奏楽器 - 無隙溝型フルート - 開管単式横吹きフルート 音�...

 

 

Untuk kegunaan lain, lihat Saturnalia (disambiguasi). SaturnaliaSaturnalia (1783) oleh Antoine Callet, menunjukkan interpretasinya tentang seperti apa bentuk Saturnalia.Dirayakan olehRomawiJenisAgama Romawi KunoMaknaFestival MasyarakatPerayaanPesta, pembalikan peran, pemberian hadiah, perjudianKegiatanPengorbanan masyarakat dan perjamuan untuk Dewa Saturnus; memakai semesta PileusTanggal17–23 Desember Saturnalia merupakan salah satu festival yang dilaksanakan oleh bangsa Romawi untuk penyem...

American cartoonist This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Jack Cole artist – news · newspapers · books · scholar · JSTOR (September 2018) (Learn how and when to remove this message) Jack ColeBornJack Ralph Cole(1914-12-14)December 14, 1914New Castle, PennsylvaniaDiedAugust 13, 1958(1958-08-13)...

 

 

Cofanetto della Tzedakah (carità), Charleston, 1820, argento, National Museum of American Jewish History Zedaqah, Tzedakah o Ṣ'daqah (in ebraico צדקה ‎?) è una parola ebraica che letteralmente significa giustizia o rettitudine, ma viene comunemente usata per significare carità,[1] sebbene sia un concetto differente dalla carità perché zedaqah è un obbligo morale e non consiste unicamente nella elargizione di denaro, mentre la carità viene tipicamente interpreta...

 

 

迪拉區Degmada Borama區坐标:10°11′15″N 43°10′13″E / 10.18763°N 43.17024°E / 10.18763; 43.17024國家 索马里州奧達勒州首府博拉馬时区EAT(UTC+3) 博拉馬區(索馬利亞語:Degmada Borama或Degmada Borame,阿拉伯语:بوراما ضلع‎)是索馬利亞時期的一個區,目前為位於索馬利蘭西方的奧達勒州[1]。首府為博拉馬。 參考資料 ^ Districts of Somalia (页面存档备份...

Japanese samurai clan Shōni clan少弐氏The Shōni clan monHome provinceChikuzenParent houseFujiwara clanTitlesShōniDissolution16th century Shōni (少弐氏, Shōni-shi) was a family of Japanese nobles descended from the Fujiwara family, many of whom held high government offices in Kyūshū. Prior to the Kamakura period (1185–1333), Shōni was originally a title and post within the Kyūshū (Dazaifu) government, roughly translating to Junior Counselor, and working under a Daini (大弐)...

 

 

Football in South SudanNational team(s)men's national teamwomen's national teamClub competitions South Sudan Football ChampionshipInternational competitions Champions League CAF Confederation Cup Super Cup FIFA Club World CupFIFA World Cup (National Team) African Cup of Nations (National Team) A player of the South Sudan national football team in a red jersey. The sport of football in the country of South Sudan is run by the South Sudan Football Association.[1] The association admini...

 

 

Cet article concerne l'élément chimique, le corps simple et ses composés. Pour les autres significations, voir Palladium (homonymie). Palladium Corps simple palladium, métal blanc brillant, parfois gris blanc. Rhodium ← Palladium → ArgentNi    46 Pd                                                                 ...

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

 

 

Sosu Seowon Sosu Seowon adalah sebuah seowon di Yeongju, provinsi Gyeongsang Utara, Korea Selatan.[1] Sosu Seowon merupakan seowon pertama yang didirikan di Korea pada masa Dinasti Joseon pada tahun 1542, tahun ke-37 masa pemerintahan Raja Jungjong.[2] Seowon yang terletak di desa Najeuk, kabupaten Sunheung, kota Yeongju ini menjadi salah satu tempat awal perkembangan pendidikan dan Konfusianisme di Korea. Bangunan ini berfungsi sebagai altar pemujaan (祠宇:Sa-u) untuk pengh...