Parallel programmalastırıw modeli
Esaplaw texnikasında, parallel programmalastırıw modeli — bul parallel kompyuter arxitekturasınıń abstrakciyası bolıp, onıń járdeminde algoritmlerdi hám olardıń programmalardaǵı kompoziciyasın ańsat ańlatıwǵa boladı. Programmalastırıw modeliniń áhmiyetin onıń ulıwmalıǵı menen bahalawǵa boladı: hár túrli máselelerdiń keń kólemin hár túrli arxitekturalar ushın qanshelli jaqsı ańlatıwǵa boladı hám onıń ónimliligi: kompilyaciyalanǵan programmalardıń qanshelli nátiyjeli orınlana alıwı. Parallel programmalastırıw modelin ámelge asırıw programmalastırıw tilinen shaqırılatuǵın kitapxana túrinde yamasa bar tillerge keńeytpe retinde bolıwı múmkin.
Belgili bir programmalastırıw modeli átirapındaǵı konsensus áhmiyetli, sebebi ol hár túrli parallel kompyuterlerdiń modeldi qollap-quwatlaw menen dúziliwine alıp keledi, solay etip programmalıq támiynattıń portativligin ańsatlastıradı. Bul mániste, programmalastırıw modelleri apparatlıq támiynat penen programmalıq támiynat arasındaǵı kópir retinde qaraladı[1].
Parallel programmalastırıw modelleriniń klassifikaciyası
Parallel programmalastırıw modelleriniń klassifikaciyasın keń mániste eki tarawǵa bóliwge boladı: processlerdiń óz-ara tásiri hám másele dekompoziciyası[2][3].
Processlerdiń óz-ara tásiri
Processlerdiń óz-ara tásiri parallel processlerdiń bir-biri menen baylanısıw múmkinshiligin támiyinleytuǵın mexanizmlerge baylanıslı. Óz-ara tásirdiń eń keń tarqalǵan túrleri — bul bólisilgen yad hám xabar almasıw, biraq óz-ara tásir sonıń menen birge jasırın da bolıwı múmkin (baǵdarlamashıǵa kórinbeydi).
Bólisilgen yad
Bólisilgen yad — bul processler arasında maǵlıwmatlardı beriwdiń nátiyjeli usılı. Bólisilgen yad modelinde parallel processler asinxron túrde oqıp hám jazatuǵın global adres keńisligin bólisedi. Asinxron bir waqıttaǵı kiriw jarıs jaǵdaylarına alıp keliwi múmkin, hám bulardıń aldın alıw ushın qulıplar, semaforlar hám monitorlar sıyaqlı mexanizmler qollanılıwı múmkin. Dástúriy kóp yadrolı processorlar bólisilgen yadtı tikkeley qollap-quwatlaydı, bul Cilk, OpenMP hám Threading Building Blocks sıyaqlı kóp parallel programmalastırıw tilleri menen kitapxanaları paydalanıw ushın proektlestirilgen.
Xabar almasıw
Xabar almasıw modelinde parallel processler bir-birine xabar jiberiw arqalı maǵlıwmat almasadı. Bul baylanıslar asinxron bolıwı múmkin, onda xabar qabıllawshı tayar bolǵanǵa shekem jiberiliwi múmkin, yamasa sinxron, onda qabıllawshı tayar bolıwı kerek. Xabar almasıwdıń Kommunikaciyalasqan izbe-iz processler (CSP) rásmiylestiriwi processlerdi baylanıstırıw ushın sinxron baylanıs kanalların qollanadı hám Occam, Limbo hám Go sıyaqlı áhmiyetli tillerge alıp keldi. Kerisinshe, aktyor modeli asinxron xabar almasıwdı qollanadı hám D, Scala hám SALSA sıyaqlı tillerdiń dizaynında qollanılǵan.
Bólistirilgen global adres keńisligi
Bólistirilgen Global Adres Keńisligi (PGAS) modelleri bólisilgen yad penen xabar almasıw arasındaǵı ortalıqtı támiyinleydi. PGAS logikalıq túrde bólingen global yad adres keńisligi abstrakciyasın usınadı, onda bir bólegi hárbir process ushın lokal bolıp tabıladı. Parallel processler bólisilgen yad modellerine uqsas usılda global adres keńisliginde asinxron operaciyalardı (mısalı, oqıwlar hám jazıwlar) orınlaw arqalı baylanısadı. Degen menen, global adres keńisligin belgili bir processlerge jaqınlıǵı bar bólimlerge semantikalıq túrde bóliw arqalı, olar baǵdarlamashılarǵa jergilikli siltemelerden paydalanıwǵa imkaniyat beredi hám bólistirilgen yadlı parallel kompyuterlerde nátiyjeli ámelge asırıwdı múmkin etedi. PGAS Fortran 2008, Chapel, UPC++ hám SHMEM sıyaqlı kóp parallel programmalastırıw tilleri menen kitapxanaları tárepinen usınıladı.
Implicit óz-ara tásir
Implicit (jasırın) modelde, hesh qanday process óz-ara tásiri baǵdarlamashıǵa kórinbeydi hám onıń ornına kompilyator hám/yamasa orınlanıw waqtı onı orınlawǵa juwapker. Eki mısal — arnawlı tarawǵa-qánigelesken tillerde joqarı dárejeli operaciyalarda parallellik belgilengen hám funkcional programmalastırıw tillerinde qosımsha tásirlerdiń bolmawı ǵárezsiz funkciyalardıń parallel orınlanıwına imkaniyat beretuǵın jasırın parallellik. Degen menen, bunday parallellikti basqarıw qıyın hám Concurrent Haskell hám Concurrent ML sıyaqlı funkcional tiller parallellikti anıq hám durıs basqarıw ushın imkaniyatlar usınadı.
Másele dekompoziciyası
Parallel programma bir waqıtta orınlanatuǵın processlerden ibarat. Máselelerdiń dekompoziciyası quramına kiretuǵın processlerdiń qáliplesiw usılı menen baylanıslı[4].
Wazıypalar parallelligi
Wazıypalarǵa parallel model processlerge yamasa orınlanıw aǵımlarına itibar beredi. Bul processler kóbinese minez-qulqı jaǵınan hár túrli boladı, bul baylanıstıń zárúrligin bildiredi. Wazıypalar parallelligi — bul xabar almasıw baylanısın ańlatıwdıń tábiyiy usılı. Flinn taksonomiyasında wazıypalar parallelligi ádette MIMD/MPMD yamasa MISD retinde klassifikaciyalanadı.
Maǵlıwmatlar parallelligi
Maǵlıwmatlarǵa parallel model, ádette, úziliksiz strukturalanǵan massiv bolǵan maǵlıwmatlar toplamında operaciyalardı orınlawǵa itibar beredi. Wazıypalar toplamı bul maǵlıwmatlarda islep turadı, biraq bólingen bólimlerde ǵárezsiz túrde. Flinn taksonomiyasında maǵlıwmatlar parallelligi ádette MIMD/SPMD yamasa SIMD retinde klassifikaciyalanadı.
Aǵım parallelligi
Aǵım parallelligi, sonday-aq konveyerli parallellik dep te ataladı, esaplawdı bir qatar basqıshlarǵa bóliwge itibar beredi, bunda hárbir basqısh kirgiziw maǵlıwmatlarınıń bir bólimin qayta isleydi. Hárbir basqısh ǵárezsiz hám parallel islep turadı hám bir basqıshtıń shıǵıwı kelesi basqıshtıń kirgiziwi bolıp xızmet etedi. Aǵım parallelligi úziliksiz maǵlıwmat aǵımları yamasa konveyerli esaplawları bar qosımshalar ushın ásirese jaramlı.
Jasırın parallellik
Jasırın process óz-ara tásirinde bolǵanı sıyaqlı, jasırın parallellik modeli baǵdarlamashıǵa hesh nárse kórsetpeydi, sebebi kompilyator, orınlanıw waqtı yamasa apparatlıq támiynat juwapker. Mısalı, kompilyatorlarda avtomat parallellestiriw izbe-iz kodtı parallel kodqa aylandırıw procesi bolıp tabıladı, al kompyuter arxitekturasında superskalyar orınlaw operaciyalardı parallel orınlaw ushın kórsetpe dárejesindegi parallellikti paydalanatuǵın mexanizm bolıp tabıladı.
Terminologiya
Parallel programmalastırıw modelleri esaplaw modelleri menen tıǵız baylanıslı. Parallel esaplaw modeli esaplaw processleriniń shıǵının analizlew ushın qollanılatuǵın abstrakciya, biraq ol minnetli túrde ámeliy bolıwı shárt emes, sebebi ol apparatlıq támiynatta hám/yamasa programmalıq támiynatta nátiyjeli ámelge asırılıwı múmkin. Kerisinshe, programmalastırıw modeli arnawlı túrde apparatlıq támiynat hám programmalıq támiynat ámelge asırılıwınıń ámeliy itibarın esapqa aladı.
Parallel programmalastırıw tili bir yamasa bir neshe programmalastırıw modelleriniń kombinaciyasına tiykarlanǵan bolıwı múmkin. Mısalı, Joqarı Ónimli Fortran bólisilgen yadlı óz-ara tásirlerge hám maǵlıwmatlarǵa parallel máselelerdiń dekompoziciyasına tiykarlanǵan, al Go bólisilgen yadlı hám xabar almasıw óz-ara tásiri ushın mexanizmler usınadı.
Derekler
- ↑ Leslie G. Valiant, "A bridging model for parallel computation", Communications of the ACM, Volume 33, Issue 8, August, 1990, pages 103–111.
- ↑ «1.3 A Parallel Programming Model». www.mcs.anl.gov. Qaraldı: 21-mart 2024-jıl.
- ↑ «Introduction to Parallel Computing Tutorial | HPC @ LLNL». hpc.llnl.gov. Qaraldı: 21-mart 2024-jıl.
- ↑ «2.2 Partitioning». www.mcs.anl.gov. Qaraldı: 21-mart 2024-jıl.