MPI – Kako koristiti MPI u svojim aplikacijama s ovim besplatnim vodičima

Objava: Vaša podrška pomaže održavanju web mjesta! Naplaćujemo naknadu za preporuku za neke usluge koje preporučamo na ovoj stranici.


MPI, odnosno Message Passing Interface, standardizirani je sustav za prosljeđivanje poruka koji je ranih 1990-ih razvila široka koalicija inženjera i akademika računalnih znanosti. Omogućuje standardni protokol kako bi različiti računalni programi ili računalni sustavi međusobno komunicirali prenoseći poruke naprijed-nazad na temelju koncepata svojstvenih objektno orijentiranom programiranju (OOP).

MPI je dominantan standard za prosljeđivanje poruka u paralelnom računalnom okruženju. Da biste razumjeli MPI, korisno je imati razumijevanje za:

  • poruka prolazi općenito
  • paralelno računanje

Slanje poruke

Prijenos poruke način je na koji program može pozvati na ponašanje ili pokrenuti program. Ono se razlikuje od konvencionalnijeg načina pozivanja programa, prenošenje poruke temelji se na objektnom modelu, koji odvaja opću funkcionalnu potrebu od specifične implementacije. Program koji treba funkcionalnost zove objekt, a taj objekt pokreće program.

Primarna korist ove tehnike povezana je s OOP konceptom enkapsulacije. Logika određivanja koje konkretne implementacije treba koristiti ovisi o objektu, a ne programu za pozivanje, objedinjujući mnoge različite aspekte značajke u jedan objekt.

Na primjer: Računalni sustav može imati objekt Upravitelja ispisa i nekoliko pojedinačnih pisača. Svaki od programa koji bi možda želio koristiti pisač ne mora imati vlastitu implementaciju svakog pisača, zajedno s složenom logikom koja određuje koji pisač treba koristiti u kojoj situaciji. Svaki program koji mora nešto ispisati može jednostavno poslati ispisnu poruku Upravitelju ispisa, koji je preuzima i dalje šalje poruku na određeni pisač.

Moderna računala koriste ovaj oblik inter-sustavske poruke koja prolazi za (skoro) svaki aspekt računanja. Nekoliko primjera kako to utječe na vaše svakodnevno iskustvo računanja:

  • vidite gotovo isto korisničko sučelje (UI) svaki put kada otvorite ili spremite datoteku, bez obzira na aplikaciju kojoj datoteci pristupate – to je zbog toga što sve različite aplikacije šalju poruke pristupa datoteci istom upravitelju datoteka
  • kad dodate novi komad hardvera (skener, miš itd.), svaka aplikacija koja ga može koristiti ima pristup njemu odmah – ne’ne treba dodati upravljačke programe za hardver svakoj pojedinačnoj aplikaciji koja bi ga mogla koristiti, svaki je program u mogućnosti jednostavno proslijediti poruke neovisnom kontroleru

Ovo su primjeri na visokoj razini slanja poruka. MPI djeluje na nižoj razini, omogućavajući prijenos poruka između različitih sustava u paralelnom računalnom okruženju.

Paralelno računanje

Paralelno računanje je računalna paradigma u kojoj se zadaci (proračuni, procesi itd.) Dijele na manje zadatke koji se mogu izvoditi paralelno (istovremeno), a ne serijski (jedan za drugim).

Općenito, jezgra za računalnu obradu može raditi samo jednu stvar odjednom, jedan proračun. Sasvim doslovno, može pomicati samo jedan zalogaj podataka. Suvremeni CPU-ovi djeluju tako brzo da ova jednokratna metoda računanja može postići relativno visoku razinu performansi, ali još uvijek se provodi kroz svaki mali izračun u serijskom – jedan za drugim. I postoji ograničenje koliko brzo to može ići – praktično ograničenje koje se temelji na današnjem danu’tehnologiju i apsolutna teorijska granica utemeljena na zakonima fizike.

Kako bi se povećala brzina računalnog sustava, izumljena je paralelna obrada i paralelno računanje. Ovo razbija serijski izračunate zadatke i omogućuje da ih paralelno – istovremeno – izvršavaju zasebni procesori.

MPI – poruka prolazi u paralelnom računanju

Da bi paralelno računanje moglo funkcionirati, razna računala moraju imati mogućnost međusobne komunikacije – prenošenje poruka naprijed i nazad. MPI – sučelje za prijenos poruka – stvoreno je da olakša ovu komunikaciju.

MPI je protokol neovisan o jeziku koji pruža API (aplikacijsko programsko sučelje) procesorima i drugom hardveru (stvarnom ili virtualnom) kojem mogu pristupiti drugi sustavi. MPI treba implementirati dobavljač hardvera, a bilo kojem hardveru u koji je ugrađena MPI implementacija može pristupiti povezanim sustavima putem MPI protokola.

MPI pruža dva načina komunikacije:

  • točka-točka-jedan – jedan sustav prenosi poruke direktno drugoj
  • kolektivni ili emitirani – jedan sustav koji šalje poruke grupi

Online MPI resursi

MPI Vodiči

Ovi će vam uvodni vodiči pomoći da naučite koristiti MPI za paralelno računanje.

  • MPI Tutorial Wes Kendall – Ovo je vrlo temeljit uvod u MPI, jedan od najboljih dostupnih na mreži.
  • Vodič za MPI: Interfejs za prolazak poruka – još jedan vrlo temeljit resurs, William Gropp, iz odjela za matematiku i računarske znanosti Nacionalne laboratorije Argonne.
    • William Grop pripremio je i ovu PDF prezentaciju na MPI-u koji uglavnom pokriva isti materijal.
  • Uvod u sučelje za prolazak poruka (MPI) pomoću MP – vodiča specifičnog za jezik.
  • MPI Vodič Blaise Barny – iz Nacionalnog laboratorija Lawrence Livermore

implementacije

MPI je standardna, a ne specifična tehnologija. Oslanja se na implementacije raznih dobavljača. Ovo su neke od češće korištenih MPI implementacija (postoji mnogo više).

  • MPICH
  • Otvori MPI
  • Microsoft MPI
  • OpenMP

Zajednica i rasprava

Jedan od najboljih načina za započinjanje MPI-ja i rješavanje problema jednom’Ponovo pokrenite, znači razgovarati sa stručnjacima i drugim MPI programerima.

  • MPI Newsgroup Forum na Google Grupama – Usenet grupa posvećena razgovorima o MPI
  • Popisi za slanje MPI foruma – Broj različitih popisa za slanje s službenog MPI Foruma
  • Otvori MPI Mailing List – popis e-pošte za implementaciju Open MPI.
  • Sastanci MPI Foruma – Informacije o sastanku MPI Foruma.
  • Otvoreni MP forum
  • MPI na StackOverflow – MPI pitanja i odgovori.

Video

MPI je česta tema predavanja i razgovora o profesionalnom razvoju, pa postoji obilje videa koji istražuju različite aspekte MPI-ja.

  • Uvod u paralelno programiranje – sučelje prosljeđivanja poruka (MPI)
  • Uvod u MPI programiranje
  • Računarstvo visokih performansi – Uvođenje MPI
  • Što je MPI

  • Otvorite MPI kanal na YouTubeu – ovdje je pronađeno puno sjajnih videozapisa povezanih s MPI-jem.

upućivanje

Nekoliko ključnih referentnih stranica povezanih s MPI-om za označavanje i vraćanje iznova i iznova.

  • MPI: Standard za sučelje prolaska poruka – Ovo je originalni tehnički izvještaj Foruma za sučelje prosljeđivanja poruka iz 1994. godine.
  • MPI dokumenti – trenutni MPI standard, kao i sve prethodne verzije dokumenta o standardima.
  • Otvorena MPI dokumentacija – Dio ovog materijala specifičan je za implementaciju otvorenog MPI-ja, ali većina je općenita prema MPI standardu.

Knjige o MPI

Budući da je MPI malo napredan, većinu stvarno detaljnih podataka lakše je pronaći u tiskanim knjigama nego u mrežnim udžbenicima. Evo nekoliko najboljih udžbenika i priručnika o MPI.

  • MPI s početkom (uvod u C) – Wes Kendall, koji je napisao i naš # 1 preporučeni tutorial o MPI.
  • Paralelno programiranje s MPI – Još jedan dobar uvodni tekst.
  • Korištenje MPI – 2. izdanje: Prijenosno paralelno programiranje s sučeljem za prolazak poruka (znanstveno i inženjersko računanje) – Također pomalo uvodno, ali s naglaskom na korištenje MPI u analizi znanosti i matematike.
  • Paralelno programiranje u C s MPI i OpenMP – Vodič za programiranje za određeni jezik i MPI implementaciju
  • MPI: Kompletna referenca – Bitna referenca MPI stola za ozbiljne paralelne programere.

Pitanja

Što je MPI?

MPI je sučelje za prolazak poruka. To je komunikacijski protokol koji omogućava računalnim sustavima da međusobno razgovaraju u paralelnom računalnom okruženju.

Tko koristi MPI?

MPI koristi gotovo svatko tko piše aplikacije koje će iskoristiti paralelni ili klasterirani računalni sustav.

Tko upravlja MPI standardom?

MPI standard objavljuje Forum za prosljeđivanje interfejsa za poruke, otvorena i stalno u razvoju grupa inženjera i akademika informatike.

Trebam li naučiti MPI?

To ovisi o tome kakav razvojni posao radite i koji su vaši ciljevi.

Ako pišete prvenstveno web aplikacije na skriptnim jezicima visoke razine poput Ruby, Python ili PHP (i prvenstveno to želite nastaviti raditi), MPI nije važan standard za učenje.

Ako se želite više uključiti u razvoj temeljnih sustava, posebno u klasternom ili paralelnom računalnom okruženju (poput računalstva u oblaku, super računala ili velikih podataka), MPI je važno znati.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me