У комп'ютерному програмуванні явний паралелізм — це уявлення паралельних обчислень за допомогою примітивів у вигляді директив спеціального призначення або викликів функцій. Більшість паралельних примітивів пов'язані з процесом синхронізації, зв'язку або завдання ділення. Оскільки вони рідко сприяють фактичному виконуванню наміченої обчислювальної програми, їхня обчислювальна цінність часто розглядається, як розпаралелювання накладних витрат.
Явний паралелізм характеризується наявністю явних конструкцій в мові програмування, спрямованих на опис (до деякої міри деталізації) спосіб, в якому паралельні обчислення матимуть місце. В цих рамках існує широкий спектр рішень. Одна крайність представлена «древнім» використанням основних механізмів, низького рівня, щоб мати справу з паралелізмом - як вилка / приєднатися до примітиви, семафори й т.д. — зрештою додані до існуючих мов програмування. Хоча це дозволяє досягнути найвищого ступеня гнучкості (будь-яка форма паралельного управління може бути реалізована в термінах основного низького рівня), він залишає додатковий тягар складності повністю на плечах програміста, що робить його завдання надзвичайно ускладненим.
Складніші підходи були запропоновані, забезпечуючи користувачам засоби для роботи з паралельних обчислень на вищому рівні абстракції. Це йде зі спеціалізованих бібліотек, що забезпечують єдиний набір комунікаційних примітивів, щоб приховати деталі обчислювального середовища.
Переваги та недоліки явного паралелізму
Явний паралелізм має різні переваги та недоліки. Основною перевагою є його значна гнучкість, що дозволяє кодувати широкий спектр форм виконання, що дає значну свободу у виборі того, що слід опрацьовувати паралельно і як. З іншого боку, управління паралелізмом дуже складне завдання, яке залишається на розсуд програміста. Заходи, як виявлення компонентів паралельного обчислення, гарантують правильну синхронізацію (наприклад, відсутність умов гонки) можуть бути більш-менш складними в залежності від конкретного застосування.
Ще одною перевагою явного паралельного програмування є абсолютний контроль програміста над паралельним виконанням. Досвідчений паралельний програміст використовує переваги явного паралелізму для того, щоб написати ефективний код. Проте програмування з явним паралелізмом часто буває складною, особливо для не обчислювальних фахівців через додаткові роботи, пов'язані з плануванням поділу завдань і синхронізації паралельних процесів.
У деяких випадках явного паралелізму можна уникнути за використанням оптимізувального компілятора: він автоматично витягує паралелізм, який є властивий обчисленням (див. неявний паралелізм).
Програмування з явним паралелізмом
- OCaml
- Erlang
- Message Passing Interface
- Віртуальна машина
- Мова програмування Ada
- Мова програмування Java
Це незавершена стаття про алгоритми. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U komp yuternomu programuvanni yavnij paralelizm ce uyavlennya paralelnih obchislen za dopomogoyu primitiviv u viglyadi direktiv specialnogo priznachennya abo viklikiv funkcij Bilshist paralelnih primitiviv pov yazani z procesom sinhronizaciyi zv yazku abo zavdannya dilennya Oskilki voni ridko spriyayut faktichnomu vikonuvannyu namichenoyi obchislyuvalnoyi programi yihnya obchislyuvalna cinnist chasto rozglyadayetsya yak rozparalelyuvannya nakladnih vitrat Yavnij ta neyavnij paralelizm Yavnij paralelizm harakterizuyetsya nayavnistyu yavnih konstrukcij v movi programuvannya spryamovanih na opis do deyakoyi miri detalizaciyi sposib v yakomu paralelni obchislennya matimut misce V cih ramkah isnuye shirokij spektr rishen Odna krajnist predstavlena drevnim vikoristannyam osnovnih mehanizmiv nizkogo rivnya shob mati spravu z paralelizmom yak vilka priyednatisya do primitivi semafori j t d zreshtoyu dodani do isnuyuchih mov programuvannya Hocha ce dozvolyaye dosyagnuti najvishogo stupenya gnuchkosti bud yaka forma paralelnogo upravlinnya mozhe buti realizovana v terminah osnovnogo nizkogo rivnya vin zalishaye dodatkovij tyagar skladnosti povnistyu na plechah programista sho robit jogo zavdannya nadzvichajno uskladnenim Registr v yavnomu paralelizmi Skladnishi pidhodi buli zaproponovani zabezpechuyuchi koristuvacham zasobi dlya roboti z paralelnih obchislen na vishomu rivni abstrakciyi Ce jde zi specializovanih bibliotek sho zabezpechuyut yedinij nabir komunikacijnih primitiviv shob prihovati detali obchislyuvalnogo seredovisha Perevagi ta nedoliki yavnogo paralelizmuYavnij paralelizm maye rizni perevagi ta nedoliki Osnovnoyu perevagoyu ye jogo znachna gnuchkist sho dozvolyaye koduvati shirokij spektr form vikonannya sho daye znachnu svobodu u vibori togo sho slid opracovuvati paralelno i yak Z inshogo boku upravlinnya paralelizmom duzhe skladne zavdannya yake zalishayetsya na rozsud programista Zahodi yak viyavlennya komponentiv paralelnogo obchislennya garantuyut pravilnu sinhronizaciyu napriklad vidsutnist umov gonki mozhut buti bilsh mensh skladnimi v zalezhnosti vid konkretnogo zastosuvannya She odnoyu perevagoyu yavnogo paralelnogo programuvannya ye absolyutnij kontrol programista nad paralelnim vikonannyam Dosvidchenij paralelnij programist vikoristovuye perevagi yavnogo paralelizmu dlya togo shob napisati efektivnij kod Prote programuvannya z yavnim paralelizmom chasto buvaye skladnoyu osoblivo dlya ne obchislyuvalnih fahivciv cherez dodatkovi roboti pov yazani z planuvannyam podilu zavdan i sinhronizaciyi paralelnih procesiv U deyakih vipadkah yavnogo paralelizmu mozhna uniknuti za vikoristannyam optimizuvalnogo kompilyatora vin avtomatichno vityaguye paralelizm yakij ye vlastivij obchislennyam div neyavnij paralelizm Programuvannya z yavnim paralelizmomOCaml Erlang Message Passing Interface Virtualna mashina Mova programuvannya Ada Mova programuvannya Java Ce nezavershena stattya pro algoritmi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi