/ / Paralēla programmēšana: apraksts, tehnoloģija, uzdevumi un ieguvumi

Paralēlā programmēšana: apraksts, tehnoloģija, uzdevumi un ieguvumi

Paralēlās skaitļošanas un apstrādes idejasInformācija ilgu laiku bija speciālistu daudzums un diezgan būtiska problēma ieviešanas ziņā. Viņi ieguvuši īpašu nozīmi un masu interesi ne tik sen.

Var apgalvot, ka tā ir attīstība interneta tehnoloģijas ir devusi jaunu impulsu, un paralēli programmēšanas ieguvusi jaunu patērētāju īpašības. Tas izraisīja ne tikai acīmredzamo tehnoloģisko progresu un programmēšanas valodas. Tas patiešām radīja pretēju ietekmi uz paralēlo procesu izpratni.

paralēla programmēšana

Paralēlās programmēšanas tehnoloģijaskardināli mainījies. Datoru ierīču sākotnējais pielietojums kalkulatoros ir gludi pāriet uz to izmantošanu kā informācijas apstrādātājiem. Stingri arhitektūras risinājumi atvēlēja semantiku un elastīgu programmatūras funkcionalitātes sadalījumu "aparatūras izpildītājiem".

Paralēlie aprēķini: nozīme un ieviešana

Sākotnēji paralēlās programmēšanas pamati tika noteikti skaitļošanas ierīču arhitektūrā. Tika ierosināta klasifikācija, pamatojoties uz plūsmas jēdzienu.

Komandu, datu, funkcionāli pabeigtu secīgu algoritmu secība tika uzskatīta par objektu, kuru var izpildīt paralēli ar citu līdzīgu objektu.

paralēlās programmēšanas tehnoloģijas

Ar šo pieeju katra objekta būtība navbija vērtība, bet tas nozīmēja šādu iedalījumu paralēlās koda sadaļās, kuras varētu izpildīt neatkarīgi, tas ir, katra pavediena ievades un izvades dati nesagriezās. Katrs pavediens nebija atkarīgs no cita pavediena, un, ja tam vajadzīgi dati no cita pavediena, tas nonāca gaidīšanas režīmā.

Šī ideja radīja četras arhitektūras:

  • SISD - vienkārša komandu plūsma un vienkārša datu plūsma;
  • MISD - vairāku komandu plūsma un vienkārša datu plūsma;
  • SIMD - vienkārša komandu plūsma un vairāku datu plūsma;
  • MIMD - daudzvariantu komandu plūsma un vairāku datu plūsma.

Šīs idejas pastāvēja relatīvi ilgu laiku, bet neradīja īpašus efektus. Šodien ir grūts stāsts. Bet šis sākums ir radījis pamatu mūsdienu sasniegumiem.

Arhitektūras idejas apakšdaļa: semantikas trūkums

Tāpat kā dzīvojamās ēkas celtniecība, arhitektūraDatorsistēma neattiecās uz semantiku. Kā īrnieki dzīvos ēkā, kādu remontu viņi var veikt un kādas mēbeles tiks izlemts, nekad nav bažas celtniekiem.

Paralēlās sistēmas pašā sākumāProgrammēšana arī nepievērsa uzmanību algoritmam, kas būtu jāizpilda. Pārstrādātājs pats atdalīja kodu un datus par sadaļām, kas darbojās paralēli. Tas ievērojami paaugstināja produktivitāti, bet īpaši noraizējies:

  • problēma ar atmiņu sadali starp procesiem;
  • loģika gaidīt citu plūsmas darba rezultātu plūsmu;
  • mehānisms, kas aizsargā atmiņu par vienu procesu no cita procesa;
  • neatkarīgu procesoru, serdeņu mijiedarbības loģika;
  • pārejas procesa loģika;
  • datu apmaiņa "uz lidojuma" starp procesiem ...

Izstrādātāji vairāk koncentrējās uz aparatūrumehānismi, kas atņem paralēlo daudzfrekvenču programmēšanu spējai būt semantikai un neļāva programmētājam vadīt procesus atbilstoši risinātam uzdevumam.

Paralelitātes rūpnieciskais pielietojums

Pirmais datoru mērķis: sarežģīti matemātiskie aprēķini, rūpnieciskie lietojumi un viss, kas neattiecas uz ikdienas dzīvi, mobilitāti un internetu. Protams, ja paralēlās programmēšanas uzdevumi ir tik "ierobežoti", ir grūti sagaidīt interesantus sasniegumus.

Kad datori kļuva par masu produktuparādījās lietojumprogramma, internets un mobilās ierīces, paralēlisma prasības ievērojami mainījās, un izstrādātājiem bija radikāli jāmaina darba stils un ātrums.

Pirmais norijums bija ideja par ziņojumapmaiņustarp procesiem. Starpposma posms ir kļuvis par MPI ziņojumu pārsūtīšanas saskarni, paralēlo plānošanu, izstrādātāja vajadzībām un klientu vēlmēm.

paralēlās programmēšanas sistēmas

Windows un līdzīgas sistēmas noteica šo ideju un faktiski padarīja to par likumdošanas normu: paralēlisms un ziņapmaiņa ir viens katram daudzprocesors, daudzkodolu un pēc būtības jebkurai informācijas sistēmai.

No skaitļošanas līdz apstrādes informācijai

Aprēķini ir īpašs apstrādes gadījumsinformācija. Uz paralēlu arhitektūrām īstenotajiem datortehnikas mobilās programmatūras risinājumus: paralēli programmēšanas valodas patiešām kļūtu par daļu no vēstures. Mūsdienu valodā sniedz patiesu paralēlos procesus, bet tas ne vienmēr ir īpašas uzņēmēji sintaksi vai papildu bibliotēkās valodu.

"Rūpnieciskā" domāšana programmēšanas laikā, kadParalēlā multi-vītņu programmēšana ir mērķis, nevis līdzeklis, ilga ilgi. Ir grūti pateikt, kādus būtiskus rezultātus tas rada. Tomēr nav šaubu, ka programmas, kas bija pirms laikmetā interneta programmu, kļuva par pamatu labām idejām un labu potenciālu moderno valodu un rīki.

Aparatūras sastāvdaļa

Pirmie datori bija monstriem, aizņema ceturtdaļu no futbola lauka un piešķīra tik daudz siltuma, ka jūs varētu droši sildīt mazu pilsētu, nevis tērēt naudu par spēkstaciju celtniecību.

Nākamās paaudzes datori ir personīgi. Personāls tika novietots uz darbvirsmas, un mobilo tālruņu var nēsāt uz pleca. Personalki ātri mainīt un ieguvusi modernu izskatu, deva dzīvību uz jūsu klēpjdatoru, planšetdatoru vai citu ierīci, un mobilo tālruņu ir kļuvuši ērta daudzfunkcionālas viedtālruņiem.

paralēlās programmēšanas valodas

Elektronisko komponentu ražotājs pilnībāEs izmantot šīs idejas no pagātnes, un tur tagad ir paralēli programmēšanas jebkurā ierīcē, neatkarīgi no tā, cik tas attiecas uz konkrētu programmatūras izstrādātājs.

Šodien procesoru serdeņu skaits, pārstrādātāju skaits, tehnoloģiju līmenis, paralēlisms un koda funkcionalitāte ir kritiskas pat nenoteiktam lietotājam.

Matemātiskais aparāts

Grafikas teorija un rindas, kāprivātie varianti, tiešie un līknes aprēķini vizuālai informācijas parādīšanai kā videokartes pamats nosaka aparatūras komponenta skaidru funkcionalitāti, kas iegūst standarta statusu un kvalitāti.

Varat runāt par serdes daudzumu procesorāierīce, bet informācijas apstrādes procesors jau sen ir bijis viens un veic savu uzņēmējdarbību. Videokartei var būt vairāk nekā viens procesors, nevis viens kodols, bet tajā tiek implantēts matemātiska ierīce.

Datora procesors formulē tikai vienkāršas komandas informācijas parādīšanai vai izvilkšanai no video atmiņas, bet pārējā ir videokartes procesora aprūpe.

Faktiski matemātiskie aprēķini jau sen ir izolēti no galvenā procesora matemātiskajā kopprocesorā. Tagad tā ir arī lietu norma.

Faktiski, ņemot vērā paralēliprogrammējot aparatūras līmenī, jūs varat iedomāties modernu datoru kā paralēlo apakšsistēmu komplektu, kas izstrādātājam nodrošina visu nepieciešamo, lai īstenotu dažāda veida idejas izplatīšanai un paralēlai informācijas apstrādei.

paralēlās programmēšanas pamati

Ir vispārpieņemts, ka pamata aparatūrajebkuras informācijas sistēmas resursi ir pilnīgā stāvoklī un stabili attīstās. Programmētājs var rakstīt tikai kvalitātes kodu.

Objektorientēta programmēšana

Ar klasisko programmu, algoritmsrisinājumi - komandu secība. Ar objektorientētu programmēšanu lēmumu algoritms ir objektu kolekcija, katrai no kurām ir savi dati un tā metodes.

mpi paralēla programmēšana

Izmantojot metodes, objekti mijiedarbojasar draugu, un tāpēc, kā tos izpildīs datora aparatūra (ierīce), programmētājs vismazāk uztraucas. Tomēr objektu mijiedarbības loģika ir sfēra kompetence programmētājs.

Informācijas sistēma, kas veidota uz objektiem,parasti tā ir daži abstrakciju sistēma, kas ļauj dažādus veidus un mērķus veidot dažādus variantus. Abstrakciju līmenī tiek aprakstīts, ka informācijas sistēmas var nodrošināt dažādas objektu kombinācijas, ieskaitot to izveidošanu pašas.

Vienkārši sakot, ar objektu orientētuProgrammēšana ir grūti sasaistīt objekta izpildi ar kodolu vai procesoru, lai nodrošinātu tā paralēlu izpildi. Tas būtiski palēninās kopējo procesu. Desmitajā vietā var būt viens objekts kopijas, bet tas nenozīmē, ka visiem jāgaida, līdz beidzas iepriekšējā eksistence.

Klasteri un sadalītā paralēle

Mūsdienu interneta plānošana risināšanaikomplekss un unikāls uzdevums ir vienīgais iespējamais risinājums: manuāls darbs! Ikdienas un komerciālai lietošanai tiek izmantotas daudzas un dažādas vietņu pārvaldības sistēmas.

Interneta programmēšanas iezīme:

  • nenoteiktība;
  • plurālisms;
  • vienlaicīgums

Veidojot vietni, programmētājs (biežāk komandaprogrammētāji) nezina, cik daudz apmeklētāju būs nepieciešams saņemt tīmekļa resursu, bet zina, ka visiem klientiem ir jānodrošina vienāds un minimālais reakcijas laiks jebkurai darbībai.

Acīmredzamais risinājums: Vietnes izvietošana serveru vai kopu komplektā teritoriāli, un pēc tam katrs reģions apkalpo konkrētu serveri. Bet mūsdienu vietne ne tikai sniedz informāciju, bet arī to izmanto. Piemēram, tiešsaistes veikals nevar pārdot gaisu, un, ja viens produkts tika nopirkts Maskavā, tam vajadzētu izzust no noliktavas patērētājam Vladivostokā.

paralēlie programmēšanas uzdevumi

Izplatiet informācijas apstrādifaktiski nozīmē nodrošināt dažādu serveru paralēlu darbību vienā un tajā pašā funkcionalitātē dažādām patērētāju grupām ar nosacījumu, ka patērētāju rīcība atspoguļojas sistēmā un nav savstarpēji pretrunā.

Šajā kontekstā paralēla programmēšanaņem pilnīgi citu nozīmi. Ja agrāk izstrādātājs ir vērsta uz mehānismu realizācijas paralēlisma bez vērā uzdevumu pati, bet tagad izstrādātājs ir mazāka iespēja bažas par to, kā īstenot paralēli līmenī iekārtu vai instrumentu, viņš ir ieinteresēts paralēles ar klientu līmenī, ka ir problēma pati par sevi, ļoti apjoms tīmeklī - resurss.

Klasteris kā paralēlās ieviešanas variants

Kopumā ir atzīts, ka klasteris ir izplatīta paralēli apstrādāta informācija. Tas ir datoru komplekts, ko savieno ar ātrgaitas sakaru līnijām.

Tas ir raksturīgi, ka klasteris var sastāvēt nodažādiem datoriem, kas var būt dažādās vietās uz planētas, bet pēc definīcijas, klasters - ir vienots veselums. satura vadības sistēma, kas balstīta uz klasteru neatļauj tiešās vadības sistēmas elementi klastera datoriem, bet tie sniedz slēptu paralēlu kontrolēt visus procesus līmenī problēma tiek atrisināta.

Attīstītājs, kas strādā ar klasteriem, var plānot un īstenot savu paralēlās paralēlās apstrādes funkcionalitāti. Tas ir ļoti nozīmīgs progress mūsdienu attīstībā.

Mūsdienu objekta "dzīve"

Šodien ir ļoti grūti atrast tīmekļa resursu pamatāuz statiskām vai dinamiskām lapām, kas veidotas pilnīgi. Mūsdienīga vietne ir dinamisko lapu kolekcija, kas tiek paralēli aizpildīta, izmantojot AJAX tehnoloģiju.

Mūsdienu dinamisko lapu veidoatšķirīgs saturs, katra lapas daļa var tikt lejupielādēta neatkarīgi atkarībā no apmeklētāja uzvedības. Šajā kontekstā objektorientētā programmēšana rāda, ka netiek atklāts ne viss tās potenciāls.

Patiešām, klienta uzvedība noved piepieprasīt serverim atjaunināt daļu no lapas. Vaicājums tiek apstrādāts, tiek izveidots daudz objektu, serveris nosūta rezultātu atpakaļ. Nākamais vaicājums ... atkal objektu masa, atkal rezultāts tiek nosūtīts. Faktiski, izrādās, ka ar pašreizējo pieeju serveris "neatceras", ko, kad un kur to nosūtīja. Katrā zvana laikā viņš atkārto minimālās nepieciešamās darbības, izveido visas vienādas objektu sistēmas.

paralēli vairāku vītņu programmēšana

Programmētājs nevar mainīt darba loģikuserveri, bet tā var viegli sacensties ar savu serveri tā pieejamā fiziskā līmenī. Tiks iegūta pilnīgi jauna sadalītās paralēlās informācijas apstrādes kvalitāte.

Pašu serveri saglabās nepieciešamo sistēmuobjekti atjaunināto stāvoklī, kas ievērojami paātrināt pieprasījumu gan no vienas lapas, un visas lapas, kas ir atvērts visu interneta telpā par konkrētu tīmekļa resursu apstrādi.</ span </ p>

Lasīt vairāk: