Parallel Computing

Parallel Computing Definition

Parallel computing er en type computerarkitektur, hvor flere processorer samtidigt udfører flere, mindre beregninger opdelt fra et generelt større, komplekst problem.

Diagram fra LLNL viser den generelle parallelle computerarkitektur, der bruges til at nedbryde større, komplekse problemer i mindre beregninger.
Ofte Stillede Spørgsmål

Hvad er Parallel Computing?

Parallel computing henviser til processen med at nedbryde større problemer i mindre, uafhængige, ofte lignende dele, der kan udføres samtidigt af flere processorer, der kommunikerer via delt hukommelse, hvis resultater kombineres efter afslutning som en del af en samlet algoritme. Det primære mål med parallel computing er at øge den tilgængelige beregningskraft til hurtigere applikationsbehandling og problemløsning.Parallel computerinfrastruktur er typisk anbragt i et enkelt datacenter, hvor flere processorer er installeret i et serverstativ; beregningsanmodninger distribueres i små bidder af applikationsserveren, der derefter udføres samtidigt på hver server.

der er generelt fire typer parallel computing, der er tilgængelige fra både proprietære og open source parallelle databehandlingsleverandører-parallelisme på bitniveau, parallelisme på instruktionsniveau, opgaveparallelisme eller parallelisme på superordniveau:

  • parallelisme på bitniveau: øger processorens ordstørrelse, hvilket reducerer mængden af instruktioner, som processoren skal udføre for at udføre en handling på variabler, der er større end ordets længde.
  • parallelisme på Instruktionsniveau: maskinens tilgang fungerer på dynamisk parallelisme, hvor processoren ved kørsel beslutter, hvilke instruktioner der skal udføres parallelt; programmetoden fungerer på statisk parallelisme, hvor kompilatoren beslutter, hvilke instruktioner der skal udføres parallelt
  • Opgaveparallelisme: en form for parallelisering af computerkode på tværs af flere processorer, der kører flere forskellige opgaver på samme tid på de samme data
  • superordniveau parallelisme: en vektoriseringsteknik, der kan udnytte parallelisme af inline kode

parallelle applikationer klassificeres typisk som enten finkornet parallelisme, hvor underopgaver kommunikerer flere gange i sekundet; grovkornet parallelisme, hvor underopgaver ikke kommunikerer flere gange i sekundet; eller pinlig parallelisme, hvor underopgaver sjældent eller aldrig kommunikere. Kortlægning i parallel computing bruges til at løse pinligt parallelle problemer ved at anvende en simpel operation på alle elementer i en sekvens uden at kræve kommunikation mellem underopgaverne.populariseringen og udviklingen af parallel computing i det 21.århundrede kom som reaktion på processorfrekvensskalering, der ramte kraftvæggen. Stigninger i frekvens øger mængden af strøm, der bruges i en processor, og skalering af processorfrekvensen er ikke længere mulig efter et bestemt punkt; derfor begyndte programmører og producenter at designe parallelle systemprogrammer og producere energieffektive processorer med flere kerner for at løse problemet med strømforbrug og overophedning af centrale behandlingsenheder.

betydningen af parallel computing fortsætter med at vokse med den stigende brug af multicore processorer og GPU ‘ er. GPU ‘er arbejder sammen med CPU’ er for at øge kapaciteten af data og antallet af samtidige beregninger i en applikation. Ved hjælp af parallelismens kraft kan en GPU fuldføre mere arbejde end en CPU i en given tid.

Fundamentals of Parallel Computer Architecture

Parallel computer architecture findes i en lang række parallelle computere, klassificeret efter det niveau, hvor udstyret understøtter parallelisme. Parallel computerarkitektur og programmeringsteknikker arbejder sammen for effektivt at udnytte disse maskiner. Klasserne af parallelle computerarkitekturer omfatter:

  • Multi-core computing: En multi-core processor er en computer processor integreret kredsløb med to eller flere separate processorkerner, som hver udfører programinstruktioner parallelt. Kerner er integreret på flere matricer i en enkelt chip pakke eller på en enkelt integreret kredsløb Matrice, og kan implementere arkitekturer såsom multithreading, superscalar, vektor, eller VLI. Multi-core arkitekturer er kategoriseret som enten homogene, som kun inkluderer identiske kerner eller heterogene, som inkluderer kerner, der ikke er identiske.
  • symmetrisk multiprocessing: hvor to eller flere uafhængige, homogene processorer styres af en enkelt operativsysteminstans, der behandler alle processorer ens, og er forbundet til en enkelt, delt hovedhukommelse med fuld adgang til alle fælles ressourcer og enheder. Hver processor har en privat cachehukommelse, kan tilsluttes ved hjælp af On-chip mesh-netværk og kan arbejde på enhver opgave, uanset hvor dataene til den opgave er placeret i hukommelsen.
  • distribueret databehandling: Distribuerede systemkomponenter er placeret på forskellige netværkscomputere, der koordinerer deres handlinger ved at kommunikere via rene HTTP, RPC-lignende stik og meddelelseskøer. Væsentlige egenskaber ved distribuerede systemer omfatter uafhængig svigt af komponenter og samtidighed af komponenter. Distribueret programmering kategoriseres typisk som klient-server, tre-tier, n-tier eller peer-to-peer-arkitekturer. Der er meget overlapning i distribueret og parallel computing, og udtrykkene bruges undertiden om hverandre.
  • massivt parallel computing: henviser til brugen af adskillige computere eller computerprocessorer til samtidig at udføre et sæt beregninger parallelt. En tilgang indebærer gruppering af flere processorer i en tæt struktureret, centraliseret computerklynge. En anden tilgang er grid computing, hvor mange bredt distribuerede computere arbejder sammen og kommunikerer via internettet for at løse et bestemt problem.

andre parallelle computerarkitekturer inkluderer specialiserede parallelle computere, klyngeberegning, grid computing, vektorprocessorer, applikationsspecifikke integrerede kredsløb, generel computing på grafikbehandlingsenheder (GPGPU) og omkonfigurerbar computing med feltprogrammerbare portarrays. Hovedhukommelsen i enhver parallel computerstruktur er enten distribueret hukommelse eller delt hukommelse.

parallelle computerprogrammer og-teknikker

samtidige programmeringssprog, API ‘ er, Biblioteker og parallelle programmeringsmodeller er udviklet for at lette parallel computing på parallelt udstyr. Nogle parallelle computerprogrammer og teknikker inkluderer:

  • Application checkpointing: en teknik, der giver fejltolerance for computersystemer ved at registrere alle applikationens aktuelle variable tilstande, hvilket gør det muligt for applikationen at gendanne og genstarte fra dette punkt i tilfælde af fejl. Checkpointing er en afgørende teknik til meget parallelle computersystemer, hvor højtydende computing køres på tværs af et stort antal processorer.
  • automatisk parallelisering: henviser til konvertering af sekventiel kode til multi-threaded kode for at bruge flere processorer samtidigt i en delt hukommelse multiprocessor (SMP) maskine. Automatiske paralleliseringsteknikker inkluderer Analyse, Analyse, tidsplan og kodegenerering. Typiske eksempler på almindelige paralleliserende kompilatorer og værktøjer er Paradigm compiler, Polaris compiler, Rice Fortran D compiler, SUIF compiler og Vienna Fortran compiler. parallelle programmeringssprog: parallelle programmeringssprog klassificeres typisk som enten distribueret hukommelse eller delt hukommelse. Mens programmeringssprog for distribueret hukommelse bruger meddelelsesoverførsel til at kommunikere, kommunikerer programmeringssprog for delt hukommelse ved at manipulere delte hukommelsesvariabler.

forskel mellem Parallel Computing og Cloud Computing

Cloud computing er et generelt udtryk, der refererer til levering af skalerbare tjenester, såsom databaser, datalagring, netværk, servere og programmer, over Internettet efter behov, pay-as-you-go basis.

Cloud computing-tjenester kan være offentlige eller private, administreres fuldt ud af udbyderen og letter fjernadgang til data, arbejde og applikationer fra enhver enhed på ethvert sted, der er i stand til at etablere en internetforbindelse. De tre mest almindelige servicekategorier er infrastruktur som as Service (IaaS), Platform som en Service (PaaS) og programmel som en Service (SaaS). Cloud computing er et relativt nyt paradigme inden for programudvikling, der letter bredere adgang til parallel computing via store, virtuelle computerklynger, hvilket gør det muligt for den gennemsnitlige bruger og mindre organisationer at udnytte parallel processorkraft og lagringsmuligheder, der typisk er forbeholdt store virksomheder.

forskel mellem Parallel behandling og Parallel Computing

Parallel behandling er en metode til beregning, hvor separate dele af en samlet kompleks opgave brydes op og køres samtidigt på flere CPU ‘ er, hvilket reducerer mængden af tid til behandling.deling og tildeling af hver opgave til en anden processor udføres typisk af computerforskere ved hjælp af parallelle behandlingsværktøjer, som også vil arbejde for at samle og læse dataene igen, når hver processor har løst sin særlige ligning. Denne proces udføres enten via et computernetværk eller via en computer med to eller flere processorer.Parallel behandling og parallel computing forekommer i tandem, derfor bruges udtrykkene ofte om hverandre; men hvor parallel behandling vedrører antallet af kerner og CPU ‘ er, der kører parallelt i computeren, vedrører parallel computing den måde, hvorpå programmer opfører sig for at optimere til denne tilstand.

forskel mellem sekventiel og Parallel Computing

sekventiel computing, også kendt som seriel beregning, henviser til brugen af en enkelt processor til at udføre et program, der er opdelt i en sekvens af diskrete instruktioner, hver udført efter hinanden uden overlapning på et givet tidspunkt. Programmet er traditionelt blevet programmeret sekventielt, hvilket giver en enklere tilgang, men er væsentligt begrænset af processorens hastighed og dens evne til at udføre hver række instruktioner. Hvor uni-processor-maskiner bruger sekventielle datastrukturer, er datastrukturer til parallelle computermiljøer samtidige.måling af ydeevne i sekventiel programmering er langt mindre kompleks og vigtig end benchmarks i parallel computing, da det typisk kun involverer identifikation af flaskehalse i systemet. Benchmarks i parallel computing kan opnås med benchmarking og performance regression testrammer, der anvender en række målemetoder, såsom statistisk behandling og flere gentagelser. Evnen til at undgå denne flaskehals ved at flytte data gennem hukommelseshierarkiet er især tydelig i parallel computing til datalogi, maskinlæring parallel computing og parallel computing kunstig intelligens brugssager.

sekventiel computing er faktisk det modsatte af parallel computing. Mens parallel computing kan være mere kompleks og komme til en større pris foran, opvejer fordelen ved at være i stand til at løse et problem hurtigere ofte omkostningerne ved at erhverve parallelt computerudstyr.

tilbyder OmniSci en Parallel computerløsning?

OmniSci-platformen udnytter GPU ‘ ernes massive parallelle computerkraft til Big Data-analyse, hvilket giver big data-analytikere og dataforskere magten til interaktivt at forespørge, visualisere og drive datavidenskabelige arbejdsgange over milliarder af poster i millisekunder. OmniSci-platformen er designet til at overvinde skalerbarheden og ydelsesbegrænsningerne i ældre analyseværktøjer, der står over for skalaen, hastigheden og placeringsattributterne i dagens store datasæt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *