nisfarm.ru

Paralelní programování: popis, technologie, úkoly a přínosy

Myšlenky paralelního výpočetní techniky a zpracování informací jsou už dlouho odborníky a významným problémem z hlediska implementace. Získali zvláštní význam a masový zájem už dávno.

Dá se říci, že se jedná o vývoj internetových technologií dala nový impuls a paralelní programování získali nové spotřebitelské vlastnosti. To způsobilo nejen zřejmý pokrok v technologiích a programovacích jazycích. To skutečně vyvolalo opačný účinek na pochopení paralelního procesu.

paralelní programování

Technologie paralelního programování se radikálně změnily. Počáteční aplikace počítačových zařízení jako kalkulačky se hladce změnila na jejich použití jako obslužné rutiny. Pevná architektonická řešení ustupovala sémantikům a flexibilní distribuci softwarové funkce pro "hardwarové exekutory".

Paralelní výpočty: význam a implementace

Zpočátku byly základy paralelního programování položeny v architektuře výpočetních zařízení. Byla navržena klasifikace založená na pojetí toku.

Sekvence příkazů, dat, funkčně kompletních postupných algoritmů byla považována za objekt, který lze provést paralelně s jiným podobným objektem.

technologie paralelního programování

V tomto přístupu, každý subjekt objekt není důležité, ale došlo k hodnota přepážka do paralelní části kódu, které mohou být provedeny nezávisle na sobě, tj dat na vstupu a výstupu z každého proudu neprotíná. Každý tok není závislý na jiném vlákně, a kdyby potřeboval informace z jiného nití, přejde do pohotovostního režimu.

Tento nápad vedl ke čtyřem architekturám:

  • SISD - jednoduchý příkazový tok a jednoduchý datový tok;
  • MISD - vícenásobný příkazový tok a jednoduchý datový tok;
  • SIMD - jednoduchý příkazový tok a více datový proud;
  • MIMD - multivariantní příkazový tok a více datový proud.

Tyto myšlenky existovaly poměrně dlouho, ale nevedly ke zvláštním účinkům. Dnes je těžký příběh. Ale tento začátek vytvořil základ pro moderní úspěchy.

Spodní část architektonické myšlenky: nedostatek sémantiky

Stejně jako výstavba obytné budovy, počítačová architektura se netýkalo sémantiky. Jak budou nájemci bydlet v budově, jaké opravy mohou udělat a jaký nábytek bude rozhodnut, nikdy se nestarali o stavitele.

Na samém počátku paralelního programovacího systému také nepřikládali význam algoritmu, který by měl být proveden. Samotný procesor oddělil kód a data do sekcí, které běží paralelně. To znamenalo znatelné zvýšení produktivity, ale znepokojovalo se zejména:

  • problém sdílení paměti mezi procesy;
  • očekávání jeden proud výkon jiného podprocesu;
  • mechanismus pro ochranu paměti jednoho procesu od jiného procesu;
  • logika interakce nezávislých procesorů, jádra;
  • logika přechodu mezi procesy;
  • výměna dat "za letu" mezi procesy ...

Vývojáři jsou více zaměřeny na hardwarové mechanismy, které zbavují paralelní programování multi-threaded možné mít sémantiku a nedává programátor řídit procesy náležitě řešit problém.

Průmyslová aplikace paralelismu




První účel počítačů: komplexní matematické výpočty, průmyslové aplikace a vše, co se netýká každodenního života, mobility a internetu. Samozřejmě, když jsou úkoly paralelního programování tak "omezené", je obtížné očekávat zajímavé úspěchy.

Když se počítače staly produkty hromadné aplikace, objevily se internetové a mobilní zařízení, požadavky na paralelismus se dramaticky změnily a vývojáři museli radikálně změnit styl a rychlost práce.

První vlaštovka byla myšlenka posílání zpráv mezi procesy. Zprostředkujícím krokem se stalo rozhraní pro předávání zpráv MPI, paralelní programování, potřeby vývojářů a očekávání zákazníků.

paralelních programovacích systémů

Okna a podobné systémy tuto myšlenku pevně stanovily a ve skutečnosti ji učinily legislativní normou: paralelismus a zasílání zpráv jsou pro každého multiprocesor, vícejádrové a v podstatě pro jakýkoli informační systém.

Od zpracování po zpracování informací

Výpočty jsou zvláštní případ zpracování informací. Z paralelních architektur implementovaných v hardware na mobilní softwarová řešení: jazyky paralelního programování se opravdu stávají vlastnictvím historie. Moderní jazyk poskytuje skutečné paralelní procesy, ale to nemusí nutně mít speciální operátory v syntaxi nebo další knihovny k jazyku.

"Průmyslové" myšlení v programování, když paralelní vícevláknové programování je cílem, nikoliv prostředky, netrvalo dlouho. Je obtížné říci, jaké základní výsledky vede k tomu. Není pochyb o tom, že programování, které se stalo před obdobím internetového programování, se stalo základem vynikajících nápadů a dobrého potenciálu moderních jazyků a nástrojů.

Hardwarová součást

První počítače byly monstra, která obsazené čtvrtinu fotbalového hřiště a samostatný tolik tepla, aby bylo možné bezpečně ohřívat malé město, a ne utrácet peníze na výstavbu elektráren.

Další generace počítačů je osobní. Personál byl umístěn na plochu a mobilní telefony by se mohly nosit na rameni. Personál se rychle změnil a získal moderní vzhled, dal život notebookům, tabletům a dalším zařízením a mobilní telefony se změnily v pohodlné multifunkční smartphony.

paralelních programovacích jazyků

Výrobce elektronických součástek plně využívat představu o minulosti, a tam je nyní paralelní programování na jakémkoliv zařízení, bez ohledu na to, jak to se vztahuje k určitému vývojáře softwaru.

V současné době počet procesorových jader, počet procesorů, úroveň technologie a funkce paralelní kód je rozhodující, a to i nezasvěcené uživatele.

Matematický přístroj

teorie grafů a čekání ve frontě, neboť soukromé možností výpočtů čáry a křivky pro vizuální zobrazení informací, jako základ pro grafické karty, vedl jasný funkčnost hardwarové komponenty, který získal standard stavu a kvality.

Můžete mluvit o počtu jader v procesoru zařízení, ale procesor pro zobrazování informací je již dlouhý a zabývá se vlastní činností. Grafická karta může mít více než jeden procesor a ne jedno jádro, ale do něj je implantován matematický přístroj.

Procesor počítače zpracovává pouze jednoduché příkazy pro zobrazení informací nebo jejich extrahování z video paměti, zbytek je péče o procesor grafické karty.

V matematickém koprocesoru byly matematické výpočty již dlouhou dobu izolovány od hlavního procesoru. To je také norma věcí.

Ve skutečnosti, s ohledem na paralelní programování na úrovni hardwaru, je možné si představit, že moderní počítače jako soubor paralelního provozního subsystému, který poskytuje vývojářům vše potřebné pro realizaci různých myšlenek na distribuované a paralelní zpracování.

základy paralelního programování

Obecně se připouští, že základní hardwarové prostředky pro jakýkoli informační systém jsou v ideálním stavu a neustále se rozvíjejí. Programátor může psát pouze kód kvality.

Objektově orientované programování

U klasického programování je algoritmus rozhodování sekvencí příkazů. Kdy objektově orientované programování rozhodovací algoritmus je sbírka objektů, z nichž každá má své vlastní údaje a metody.

mpi paralelní programování

Prostřednictvím metod se objekty vzájemně vzájemně vzájemně propojují, a proto, jak budou prováděny hardwarem počítače (zařízení), programátor se nejméně stará. Nicméně logika interakce mezi objekty je sférakompetence programátor.

Informační systém založený na objektech je zpravidla určitým systémem abstrakcí, který umožňuje různé varianty vytváření objektů různých typů a účelů. Jak je popsáno na úrovni abstrakcí, informační systémy mohou poskytovat různé kombinace objektů, včetně vytvoření těchto objektů samy od sebe.

Jednoduše řečeno, s objektově orientovaným programováním je obtížné spojit provedení objektu s jádrem nebo procesorem, aby bylo zajištěno jeho paralelní provádění. Tím se výrazně zpomalí celkový proces. Jeden objekt může existovat v první desítcekopie, Ale to neznamená, že existence každého by měla čekat na to, aby existence předchozího konce skončila.

Klastry a distribuovaný paralelismus

Moderní internetové programování pro řešení komplexních a jedinečných problémů nabízí jediné možné řešení: manuální práci! Pro každodenní i komerční použití jsou využívány četné a rozmanité systémy řízení webu.

Charakteristická vlastnost internetového programování:

  • nejistota -
  • multiplicity-
  • souběžnost.

Vytvoření programátor webových stránek (obvykle tým programátorů) neví, kolik návštěvníků se bude muset vzít webový zdroj, ale neví jistě, že všichni klienti musí poskytnout stejné místo a minimální dobu odezvy pro jakoukoliv akci.

Zjevné rozhodnutí: Umístění webu na soubor serverů nebo clusterů na teritoriální bázi, a pak každý region bude sloužit určitému serveru. Moderní web však nejen poskytuje informace, ale také ji používá. Například internetový obchod nemůže prodávat vzduch, a pokud byl jeden produkt zakoupen v Moskvě, měl by zmizet ze skladu pro spotřebitele ve Vladivostoku.

paralelních programovacích úloh

Make zpracování distribuovaných dat prostředky skutečně poskytují paralelní provoz se stejnou funkcí na více serverů pro různé skupiny uživatelů, za předpokladu, že spotřebitel akce se promítají do systému a nejsou v rozporu s sebou.

V tomto kontextu má paralelní programování zcela odlišný význam. Pokud nastane dříve developer zaměřuje na mechanismu realizace paralelismu, aniž by to s ohledem na úkol sám, ale nyní developer je méně pravděpodobné, že obavy o tom, jak provádět paralelně na úrovni zařízení nebo nářadí, že má zájem o paralelismu na úrovni zákazníka, to je ten problém sám o sobě je velmi rozsah webu -zdroj.

Cluster, jako variant paralelní implementace

Obecně se připouští, že cluster je druh distribuovaného paralelního zpracování informací. Jedná se o soubor počítačů připojených vysokorychlostními komunikačními linkami.

Je příznačné, že klastr se může skládat z různých počítačů, které mohou být v různých místech na planetě, ale samozřejmě, shluk - je jednotný celek. Redakční systém, založený na clusterech neumožňují přímé součásti řídící clusteru počítačů, ale poskytují skrytý paralelní kontrolu všech procesů na úrovni řešeného problému.

Vývojář, pracující s klastry, může naplánovat a implementovat vlastní paralelní paralelní zpracování. Jedná se o velmi významný pokrok v moderním vývoji.

"Život" moderního objektu

Dnes je velmi obtížné najít webový zdroj založený na statických nebo dynamických stránkách, vytvořených zcela. Moderní web je kolekce dynamických stránek, které jsou vyplněny paralelně pomocí technologie AJAX.

Moderní dynamická stránka se skládá z odlišného obsahu, každá část stránky může být stažena nezávisle, v závislosti na chování návštěvníka. V tomto kontextu objektově orientované programování ukazuje, že není popsán celý jeho potenciál.

Chování klienta skutečně vede k požadavku, aby server aktualizoval část stránky. Dotaz je zpracován, vytváří se mnoho objektů, server odešle výsledek zpět. Další dotaz ... znovu hmotnost objektů, výsledek je opět odeslán. Ve skutečnosti se ukazuje, že se současným přístupem server "nepamatuje" co, kdy a kde poslal. Při každém hovoru opakuje minimální potřebné akce, vytváří všechny stejné systémy objektů.

paralelní vícenásobné programování

Programátor nemůže změnit logiku serveru, ale může snadno emulovat svůj vlastní server na dostupné fyzické úrovni. Bude dosaženo zcela nové kvality distribuovaného paralelního zpracování informací.

Vlastní server udrží potřebný systém objektů v aktualizovaném stavu, což výrazně urychlí zpracování požadavků z jedné stránky a ze všech stránek otevřených v celém internetovém prostoru pro konkrétní webový zdroj.

Sdílet na sociálních sítích:

Podobné
© 2021 nisfarm.ru