Parallel Computing

Parallel Computing Definition

Parallel computing on tietojenkäsittelyarkkitehtuurin tyyppi, jossa useat suorittimet suorittavat samanaikaisesti useita, pienempiä laskutoimituksia jaoteltuna kokonaisuudesta suurempaan, monimutkaiseen ongelmaan.

LLNL: n kaavio näyttää yleisen Rinnakkaislaskenta-arkkitehtuurin, jota käytetään suurempien, monimutkaisten ongelmien pilkkomiseen pienemmiksi laskelmiksi.
FAQ

mitä on Rinnakkaislaskenta?

Rinnakkaislaskennalla tarkoitetaan prosessia, jossa isommat ongelmat hajotetaan pienempiin, itsenäisiin, usein samanlaisiin osiin, jotka voidaan suorittaa samanaikaisesti useiden jaetun muistin kautta kommunikoivien prosessorien avulla, joiden tulokset yhdistetään valmistuttuaan osaksi yleistä algoritmia. Rinnakkaislaskennan ensisijaisena tavoitteena on lisätä käytettävissä olevaa laskentatehoa sovellusten käsittelyn ja ongelmanratkaisun nopeuttamiseksi.

rinnakkainen laskentainfrastruktuuri on tyypillisesti sijoitettu yhteen tietokeskukseen, jossa useita suorittimia on asennettu palvelintelineeseen; sovelluspalvelin jakaa laskentapyynnöt pieninä paloina, jotka sitten suoritetaan samanaikaisesti kullakin palvelimella.

on yleensä olemassa neljä rinnakkaistyyppiä, jotka ovat saatavilla sekä omisteisilta että avoimen lähdekoodin rinnakkaislaskentatoimittajilta — bittitason parallelismi, ohjetason parallelismi, tehtävätason parallelismi tai superword-tason parallelismi:

  • bittitason parallelismi: lisää prosessorin sanakokoa, mikä vähentää käskyjen määrää, jotka prosessorin on suoritettava suorittaakseen toiminnon sanan pituutta suuremmilla muuttujilla.
  • Instruction-level parallelism: laitteisto lähestymistapa toimii dynaamisen parallelism, jossa suoritin päättää ajon aikana, mitkä ohjeet suorittaa rinnakkain; ohjelmisto lähestymistapa toimii staattinen parallelism, jossa kääntäjä päättää, mitkä ohjeet suorittaa rinnakkain
  • Tehtäväsarallism: tietokonekoodin parallelisaation muoto usean suorittimen kesken, joka suorittaa useita eri tehtäviä samanaikaisesti samalla tiedolla
  • Superword-tason parallelismi: vektorisointitekniikka, joka voi hyödyntää inline-koodin parallelismia

Rinnakkaissovellukset luokitellaan tyypillisesti joko hienorakeiseksi parallelismiksi, jossa alataskit kommunikoivat useita kertoja sekunnissa; karkearakeiseksi parallelismiksi, jossa alataskit eivät kommunikoi useita kertoja sekunnissa; tai kiusalliseksi parallelismiksi, jossa alataskit eivät kommunikoi useita kertoja sekunnissa; kommunikoi harvoin tai ei koskaan. Rinnakkaislaskennassa kartoitusta käytetään kiusallisen rinnakkaisten ongelmien ratkaisemiseen soveltamalla yksinkertaista operaatiota kaikkiin sekvenssin elementteihin ilman, että tarvitaan kommunikaatiota subtaskujen välillä.

rinnakkaislaskennan popularisointi ja kehitys 2000-luvulla tuli vastauksena suorittimien taajuuksien skaalaukseen, joka osui voimaseinään. Taajuuden kasvu lisää suorittimessa käytettävän tehon määrää, eikä suorittimen taajuuden skaalaaminen ole enää mahdollista tietyn pisteen jälkeen; siksi ohjelmoijat ja valmistajat alkoivat suunnitella rinnakkaisia järjestelmäohjelmistoja ja tuottaa tehotehokkaita prosessoreita, joissa on useita ytimiä, jotta voitaisiin puuttua virrankulutukseen ja ylikuumeneviin keskusyksiköihin.

rinnakkaislaskennan merkitys kasvaa edelleen multicore-suorittimien ja GPU: iden käytön lisääntyessä. GPU: t toimivat yhdessä suorittimien kanssa lisätäkseen datan läpimenoa ja samanaikaisten laskelmien määrää sovelluksessa. Käyttämällä voimaa parallelism, GPU voi suorittaa enemmän työtä kuin CPU tietyssä ajassa.

Rinnakkaistietokonearkkitehtuurin perusteet

Rinnakkaistietokonearkkitehtuuri on olemassa monenlaisissa rinnakkaistietokoneissa, jotka on luokiteltu sen mukaan, millä tasolla laitteisto tukee rinnakkaisuutta. Rinnakkainen tietokonearkkitehtuuri ja ohjelmointitekniikat toimivat yhdessä näiden koneiden tehokkaaksi hyödyntämiseksi. Rinnakkaisten tietokonearkkitehtuurien luokkia ovat:

  • Multi-core computing: Moniydinprosessori on tietokoneen suorittimen integroitu piiri, jossa on kaksi tai useampia erillisiä prosessointiytimiä, joista jokainen suorittaa ohjelman ohjeita rinnakkain. Ytimet on integroitu useita kuolee yhden sirun paketti tai päälle yhden integroidun piirin kuolee, ja voi toteuttaa arkkitehtuurit, kuten multitreading, superscalar, vector, tai VLIW. Moniydinarkkitehtuurit luokitellaan joko homogeenisiksi, joihin kuuluvat vain identtiset ytimet, tai heterogeenisiksi, joihin kuuluvat myös hylsyt, jotka eivät ole identtisiä.
  • symmetrinen moniprosessointi: moniprosessoritietokone-ja ohjelmistoarkkitehtuuri, jossa kahta tai useampaa itsenäistä, homogeenista prosessoria ohjaa yksi käyttöjärjestelmä-instanssi, joka kohtelee kaikkia prosessoreita yhdenvertaisesti ja joka on kytketty yhteen jaettuun päämuistiin, jolla on täysi pääsy kaikkiin yhteisiin resursseihin ja laitteisiin. Jokaisella prosessorilla on yksityinen välimuistimuisti, ne voidaan liittää sirun verkkoverkkoihin ja ne voivat toimia missä tahansa tehtävässä riippumatta siitä, missä kyseisen tehtävän tiedot sijaitsevat muistissa.
  • Distributed computing: Hajautetut järjestelmäkomponentit sijaitsevat eri verkotetuissa tietokoneissa, jotka koordinoivat toimiaan viestimällä puhtaiden HTTP -, RPC-tyyppisten liittimien ja viestijonojen kautta. Hajautettujen järjestelmien merkittäviä ominaisuuksia ovat komponenttien itsenäinen vikaantuminen ja komponenttien samanaikaisuus. Hajautettu ohjelmointi luokitellaan tyypillisesti client-server -, three-tier -, n-tier-tai peer-to-peer-arkkitehtuureihin. Hajautetussa ja rinnakkaisessa laskennassa on paljon päällekkäisyyttä,ja termejä käytetään joskus keskenään.
  • massiivisesti parallel computing: viittaa useiden tietokoneiden tai tietokoneen suorittimien käyttöön suorittaa samanaikaisesti joukko laskutoimituksia rinnakkain. Yksi lähestymistapa on useiden suorittimien ryhmittely tiukasti jäsenneltyyn, keskitettyyn tietokonerykelmään. Toinen lähestymistapa on grid computing, jossa monet laajalle levinneet tietokoneet toimivat yhdessä ja kommunikoivat Internetin kautta ratkaistakseen tietyn ongelman.

muita rinnakkaisia tietokonearkkitehtuureja ovat erikoistuneet rinnakkaistietokoneet, klusterilaskenta, grid computing, vektoriprosessorit, sovelluskohtaiset integroidut piirit, yleiskäyttöinen laskenta grafiikkaprosessoreissa (GPGPU) ja uudelleen konfiguroitavissa oleva laskenta kenttäohjelmoitavilla porttijärjestelmillä. Päämuisti missä tahansa rinnakkaisessa tietokonerakenteessa on joko hajautettua muistia tai jaettua muistia.

rinnakkaislaskennan ohjelmistoratkaisuja ja-tekniikoita

samanaikaisia ohjelmointikieliä, ohjelmointirajapintoja, kirjastoja ja rinnakkaisohjelmointimalleja on kehitetty helpottamaan rinnakkaislaskentaa rinnakkaislaitteilla. Eräitä rinnakkaisia tietojenkäsittelyohjelmistoratkaisuja ja-tekniikoita ovat:

  • Application checkpointing: tekniikka, joka tarjoaa tietojenkäsittelyjärjestelmille viansietokyvyn tallentamalla kaikki sovelluksen nykyiset muuttuvatilat, jolloin sovellus voi vikatilanteessa palauttaa ja käynnistää sen uudelleen. Checkpointing on tärkeä tekniikka erittäin rinnakkaisissa tietojenkäsittelyjärjestelmissä, joissa suurteholaskenta suoritetaan useissa prosessoreissa.
  • Automatic parallelization: tarkoittaa peräkkäisen koodin muuntamista monisäikeiseksi koodiksi, jotta voidaan käyttää useita prosessoreita samanaikaisesti jaetun muistin moniprosessorikoneessa (SMP). Automaattinen parallelization tekniikoita ovat jäsentää, analysoida, aikataulu, ja koodin generointi. Tyypillisiä esimerkkejä yhteisistä parallelizing compilers ja työkalut ovat Paradigm compiler, Polaris compiler, Rice Fortran D compiler, SUIF compiler, ja Vienna Fortran compiler.
  • Rinnakkaisohjelmointikielet: Rinnakkaisohjelmointikielet luokitellaan tyypillisesti joko hajautettuun muistiin tai jaettuun muistiin. Siinä missä hajautetut muistiohjelmointikielet käyttävät viestin välittämistä viestintään, jaetut muistiohjelmointikielet viestivät manipuloimalla jaettuja muistimuuttujia.

ero rinnakkaislaskennan ja pilvilaskennan välillä

pilvilaskenta on yleisnimitys, jolla tarkoitetaan skaalautuvien palvelujen, kuten tietokantojen, tietojen tallennuksen, verkottumisen, palvelimien ja ohjelmistojen, toimittamista Internetin kautta tarpeen mukaan, pay-as-You-go-periaatteella.

pilvipalvelut voivat olla julkisia tai yksityisiä, palveluntarjoaja hallinnoi niitä täysin ja helpottaa tietojen, työn ja sovellusten Etäkäyttöä mistä tahansa laitteesta missä tahansa paikassa, jolla voidaan luoda Internet-yhteys. Kolme yleisintä palveluluokkaa ovat Infrastructure as as Service (IaaS), Platform as a Service (PaaS) ja Software as a Service (SaaS).

pilvilaskenta on suhteellisen uusi paradigma ohjelmistokehityksessä, joka helpottaa laajempaa pääsyä rinnakkaiseen laskentaan laajojen virtuaalisten tietokoneryppäiden kautta, jolloin keskivertokäyttäjä ja pienemmät organisaatiot voivat hyödyntää suuryrityksille tyypillisesti varattuja rinnakkaisia prosessointitehoja ja tallennusvaihtoehtoja.

ero rinnakkaiskäsittelyn ja rinnakkaislaskennan välillä

Rinnakkaiskäsittely on tietojenkäsittelyssä käytetty menetelmä, jossa kokonaiskompleksisen tehtävän erilliset osat hajotetaan ja suoritetaan samanaikaisesti useilla suorittimilla, mikä vähentää käsittelyaikaa.

kunkin tehtävän jakaminen ja osoittaminen eri prosessorille tapahtuu tyypillisesti tietojenkäsittelytieteilijöiden toimesta rinnakkaisten prosessointiohjelmistotyökalujen avulla, jotka toimivat myös datan uudelleen kokoamiseksi ja lukemiseksi, kun kukin prosessori on ratkaissut Oman yhtälönsä. Tämä prosessi tapahtuu joko tietokoneverkon tai tietokoneen kautta, jossa on kaksi tai useampia suorittimia.

Rinnakkaiskäsittely ja Rinnakkaislaskenta tapahtuvat rinnakkain, joten termejä käytetään usein keskenään; kuitenkin silloin, kun rinnakkaiskäsittely koskee tietokoneessa rinnakkain kulkevien ydinten ja suorittimien määrää, Rinnakkaislaskenta koskee tapaa, jolla ohjelmistot toimivat optimoidakseen tämän ehdon.

jaksollisen ja rinnakkaisen laskennan ero

jaksollisen laskennan, joka tunnetaan myös nimellä sarjalaskenta, tarkoittaa yhden suorittimen käyttöä ohjelman suorittamiseen, joka on jaettu erillisiin ohjeisiin, joista kukin suoritetaan yksi toisensa jälkeen siten, että päällekkäisyyksiä ei ole milloinkaan. Ohjelmisto on perinteisesti ohjelmoitu peräkkäin, mikä tarjoaa yksinkertaisemman lähestymistavan, mutta sitä rajoittaa merkittävästi prosessorin nopeus ja sen kyky suorittaa jokainen ohjesarja. Jos yksiprosessorikoneissa käytetään peräkkäisiä tietorakenteita, rinnakkaisten laskentaympäristöjen Tietorakenteet ovat samanaikaisia.

suoritustason mittaaminen jaksollisessa ohjelmoinnissa on paljon yksinkertaisempaa ja tärkeämpää kuin vertailuarvot rinnakkaislaskennassa, koska siihen kuuluu tyypillisesti vain järjestelmän pullonkaulojen tunnistaminen. Vertailuarvot rinnakkaislaskennassa voidaan saavuttaa vertailuanalyysillä ja suorituskyvyn regressiokokeilla, joissa käytetään erilaisia mittausmenetelmiä, kuten tilastollista käsittelyä ja useita toistoja. Kyky välttää tämä pullonkaula siirtämällä dataa muistihierarkian läpi on erityisen ilmeinen rinnakkaisessa tietojenkäsittelyssä datatieteessä, koneoppimisessa rinnakkaisessa tietojenkäsittelyssä ja rinnakkaisessa tietojenkäsittelyssä tekoälyn käyttötapauksissa.

juokseva laskenta on käytännössä rinnakkaislaskennan vastakohta. Vaikka parallel computing voi olla monimutkaisempi ja tulevat suuremmat kustannukset etukäteen, etu voi ratkaista ongelman nopeammin usein suurempi kuin kustannukset hankkimalla rinnakkainen computing laitteisto.

tarjoaako OmniSci Rinnakkaislaskentaratkaisun?

OmniSci-alusta valjastaa GPU: n massiivisen rinnakkaisen laskentatehon Big Data-analytiikkaan, antaen big data-analyytikoille ja data-tutkijoille voiman interaktiiviseen kyselyyn, visualisointiin ja power data science-työnkulkuun miljardien tietueiden yli millisekunneissa. OmniSci-alusta on suunniteltu ylittämään vanhojen analytiikkatyökalujen skaalautuvuus ja suorituskykyrajoitukset, jotka kohtaavat nykypäivän suurten datajoukkojen mittakaava -, nopeus-ja sijaintiominaisuudet.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *