Bog'liq Параллел хисоблашларга асосланган компьютерлар ва компьютер тизимлари.
Amdahl qonuni - kompyuterlar sonining ko'payishi bilan hisoblash tizimi ishlashi o'sishining cheklanganligini tasvirlaydi.
"Agar topshiriq bir necha qismga bo'linadigan bo'lsa, parallel tizimda bajarilishning umumiy vaqti eng uzun bo'lakning bajarilish vaqtidan kam bo'lmasligi kerak." Ushbu qonunga binoan dasturning bajarilishini tezlashtirish parallellashtirish uning kompyuterlar to'plamidagi ko'rsatmalari uning ketma-ket ko'rsatmalarini bajarish uchun zarur bo'lgan vaqt bilan cheklangan.
Ba'zi hisoblash masalalarini hal qilish kerak bo'lsin. Faraz qilaylik, uning algoritmi shunday hisoblanadiki, hisob-kitoblarning umumiy hajmidagi ulushni faqat ketma-ket hisob-kitoblar yo'li bilan olish mumkin va shunga mos ravishda ulushni mukammal parallellashtirish mumkin (ya'ni hisoblash vaqti kiritilgan tugunlar soniga teskari proportsional bo'ladi). Unda protsessorlardan kompyuter tizimida olinadigan tezlanish, uniprotsessorli eritma bilan taqqoslaganda, qiymatdan oshmaydi.
Parallel dasturlashni o'rganish - bu superkompyuter mavzularining tabiiy kengaytmasi. Hozirgi vaqtda parallel dasturlarni bajarish uchun superkompyuter bo'lishi shart emas. Grafik tezlatgichlar to'plamiga ega bo'lgan ko'p yadroli protsessor yoki video karta etarli. Va bu allaqachon deyarli hamma uchun mavjud. Ushbu yo'nalishdagi ishlar qatorida M.A.ning nomzodlik dissertatsiyasini alohida qayd etamiz. Sokolovskaya bo'lajak informatika o'qituvchilariga parallel dasturlash asoslari va E.Yu tajribasini o'rgatish bo'yicha. Kiseleva maktab o'quvchilari tomonidan CUDA texnologiyasini rivojlantirish bo'yicha.
Ushbu maqola muallifining so'zlariga ko'ra, spuerkompyuterlarga va parallel dasturlarga e'tibor qaratish parallel hisoblash mavzusini sezilarli darajada kamaytiradi va murakkablashtiradi, talabalarni ko'plab muhim va kirish mumkin bo'lgan masalalardan chalg'itadi. Mavzu maqsadi "parallel
o'rta maktabda "hisoblash" bu "haqiqiy" parallel dasturlashni o'rgatish (tegishli til konstruktsiyalarini, dasturlash tillari va texnologiyalarini o'rganish) emas, balki talabalarni tegishli tushunchalar to'plami bilan tanishtirish va parallel ishning xususiyatlarini tushunishdir. Atrofimizdagi va ichimizdagi dunyo murakkab parallel tizimdir. Va bu tizimning o'zi parallelizm tushunchalari va mexanizmlarini o'zlashtirish uchun juda ko'p materiallar beradi. Buning uchun hech qanday murakkab sun'iy inshootlar, masalan MPI va OpenMP texnologiyalari kerak emas. Maktab informatikasi parallel fikrlash tarzini shakllantirishi kerak. Va keyin universitet bu bilimga kasbiy bilim, ko'nikma va ko'nikmalarni qo'yishga yo'l qo'ying. Maktabda superkompyuterlar bilan tanishmaslik va parallel dasturlashni o'rganish emas, balki hayotda doimiy va keng qo'llaniladigan "birgalikdagi faoliyat" mexanizmlarini o'zlashtirish muhim ahamiyatga ega. Kurs sizni quyidagi savollarni aks ettirishga taklif qiladi:
1) Bir nechta ijrochilar bilan hamkorlik qilish (bir nechta ekskavator tomonidan xandaq qazish) va bir nechta ishlov berish moslamalari ishtirokida bitta ijrochini "ichkariga" parallelizatsiya qilish (men olma o'qiyman va yeyman). Kompyuter fanida bu ko'p mashinali kompleks va ko'p yadroli protsessor bo'ladi.
2) Paralelizm turlari: haqiqiy parallelizm va soxta parallelizm (bitta protsessor bir necha dasturlarni qismlarga bo'lib bajaradi).
3) bir xil turdagi (ekskavator) va har xil turdagi (tank ekipaji) ijrochilari.
4) bir xil turdagi va har xil turdagi asarlar.
5) "ijrochilar - ish" nisbati: 1 ijrochi - 1 ish, 1 ijrochi - N ish (turli ishlarni bajarish uchun bir nechta qayta ishlash moslamalari mavjudligida soxta parallel ijro yoki haqiqiy parallellik), N ijrochilar - 1 ish, N ijrochilar - N ish.
6) ijrochilar faoliyatini muvofiqlashtirish. Tasdiqlash turlari: ish qismlari bo'yicha, vaqt bo'yicha, harakatlar natijalari bo'yicha, manbalar bo'yicha.
7) Resurslar. Resurslar birgalikda va taqsimlanmaydigan, iste'mol qilinadigan va qayta ishlatilishi mumkin. Iste'mol qilingan resurslardan foydalanish (keng ma'noda "axlat yig'ish").
8) bitta asarni bitta ijrochi va bir guruh ijrochilar tomonidan bajarish. Ish tezligining ijrochilar soniga bog'liqligi. Ish narxining ijrochilar soniga bog'liqligi. Ijrochilar sonining ko'payishi bilan ish tezligining nooziq o'sishi. Tanqidiy yo'l. Ijrochilarning maqbul soni. Ijrochilarning optimal yuklanishi. Optimal protsedura. Yuklarni muvozanatlash.
9) Resurslar uchun ijrochilarning tanlovi. Bloklash. Clinch (oxiri).
10) Ijrochilarning harakatlarini muvofiqlashtirish mexanizmlari.
11) Kompyuterda jarayonlarning soxta parallel bajarilishi (bitta resurs - protsessorning bajariladigan jarayonlari o'rtasidagi bo'linish).
12) parallelizatsiya uchun algoritmlarning yaroqliligi. Mumkin bo'lgan parallelizatsiya darajasi. Parallel bo'lolmaydigan algoritmlarning mavjudligi.
Parallel arxitekturaning hisoblash texnologiyalarini, ayniqsa yosh mutaxassislar tomonidan o'zlashtirish katta qiyinchiliklarga duch kelayotgani ma'lum. Bizning fikrimizcha, bu parallel hisoblash bilan tanishish, shuningdek umuman ushbu sohadagi ta'lim kim bilan boshlash kerakligi bilan bog'liq emas. Bundan tashqari, nimadan boshlash kerakligi umuman biron bir kursda berilmaydi.
Qarama-qarshi arxitekturali kompyuterlarda muammolarni tezda hal qilish qobiliyati foydalanuvchilarni kompyuterlar bilan ishlashning barcha tanish uslubini o'zgartirishga majbur qiladi. Taqqoslash uchun, masalan, shaxsiy kompyuterlar va ish stantsiyalarida deyarli hamma narsa o'zgaradi: boshqa dasturlash tillari ishlatiladi, algoritmlarning aksariyati o'zgartiriladi, foydalanuvchilar echilayotgan muammolarning ko'plab nostandart va olish qiyin bo'lgan xususiyatlarini taqdim etishlari kerak, interfeys samimiy bo'lishni to'xtatadi va hokazo. Yangi ish sharoitlarini to'liq hisobga olinmasligi yangi va, bundan tashqari, juda qimmatbaho uskunalardan foydalanish samaradorligini sezilarli darajada pasaytirishi juda muhimdir.
Shuni ta'kidlash kerakki, parallel hisoblashlarning rivojlanishi bilan bog'liq bo'lgan qiyinchiliklarning umumiy tabiati, ketma-ket hisoblashlar davridagi kabi bir xil ko'rinishga ega. Faqatgina parallel hisoblashlar uchun barcha qiyinchiliklar o'tkir shaklda namoyon bo'ladi. Asosan bu murakkabligi tufayli mavzu maydoni... Ammo, ehtimol, asosan parallel arxitekturaning hisoblash tizimlarini katta amaliy muammolarni hal qilish amaliyotiga faol kiritish boshlanganligi sababli, zarur nazariy asos yaratilmagan va tadqiqotning matematik apparati ishlab chiqilmagan. Oxir oqibat, shu sababli parallel hisoblash sohasidagi butun o'quv tsikllari o'z vaqtida tayyorlanmagan bo'lib, ularning aks-sadolari hali ham aniq. Shu sababli zamonaviy kompyuter texnologiyalarini o'zlashtirishdagi ko'plab qiyinchiliklar, zarur mutaxassislarni tayyorlashdagi kamchiliklar va boshqalar haqida tushuncha yo'qligi.
Parallel hisoblash ta'limi uchta fanga asoslanadi: hisoblash arxitekturasi, dasturlash va hisoblash matematikasi. Agar tegishli kurslarning mazmunini sinchkovlik bilan tahlil qilsangiz, muqarrar ravishda nafaqat individual, balki barchasini birlashtirgan holda ular asosiy yo'nalishga erishishni ta'minlay olmaydi degan xulosaga kelasiz. odat maqsadlar - o'rganish samarali parallel arxitekturaning yirik hisoblash tizimlarida katta muammolarni hal qilish. Albatta, bu kurslar juda ko'p foydali va kerakli ma'lumotlarni beradi. Biroq, parallel hisoblashning zamonaviy nuqtai nazariga ko'ra bilish kerak bo'lgan ko'p narsa ularda keltirilmagan. Bu, xususan, katta tizimlarda katta muammolarni hal qilish uchun bir qator eng muhim va hatto fundamental faktlar, usullar va texnologiyalar tadqiqotlar natijasida yuzaga kelganligi bilan izohlanadi. bir nechta fan sohalari chorrahasida... Bunday natijalar an'anaviy fanlar doirasidan tashqarida. Shuning uchun, tegishli kurslarda keltirilgan ma'lumotlar shakllanish uchun etarli emas yaxlit tizim parallel hisoblash jarayonlarini vakolatli qurishga qaratilgan bilimlar.
Hisoblash texnologiyasi yoki undan foydalanish bilan bog'liq bo'lgan barcha o'quv kurslarini ikki guruhga bo'lish mumkin. Birinchi guruh asosiy ma'lumotlarni to'playdi, ikkinchisi - maxsus. Asosiy ma'lumotlar universal xarakterga ega va kompyuter texnologiyalari turlari bo'yicha yomon tasniflanadi. Ular ketma-ket mashinalar va ketma-ket hisoblar haqidagi bilim asosida shakllangan va vaqt o'tishi bilan ozgina o'zgarib turadi. Dasturlash kursining bir qismi sifatida asosiy ma'lumotlar birinchi yoki ikkinchi semestrdan, raqamli usullar bo'yicha kursda esa uchinchi semestrdan boshlab o'qiy boshlaydi. Maxsus kurslar, shu jumladan parallel arxitekturaning hisoblash tizimlari bilan bog'liq kurslar juda kech o'qitila boshlandi. Qoida tariqasida, ettinchi yoki hatto to'qqizinchi semestrdan oldin emas.
Bir qarashda, hamma narsa mantiqiy ko'rinadi: birinchi navbatda asosiy ma'lumotlar beriladi, so'ngra maxsus ma'lumotlar. Biroq, amalda, ma'lumotlarning asosiy va maxsus qismlarga bo'linishi juda shartli bo'lib chiqadi, chunki faqat quyidagilar muhim: kerakli vaqtda kerakli ma'lumotni olish mumkinmi yoki bunday imkoniyat yo'q va o'rganish uchun taqdim etiladigan ma'lumotlar to'plami nima.
Hisoblash matematikasi uzoq tarixga ega. Ammo uning eng jadal rivojlanishi elektron kompyuterlar bilan bog'liq. Ushbu mashinalar o'tkazish vositasi sifatida paydo bo'lgan ketma-ket hisob-kitoblar. Ular jadal rivojlanib, bir necha o'n yillar davomida izchil bo'lib qoldilar. Keyingi mashinalar uchun ular ancha erta yaratila boshlandi mashina mustaqil dasturlash tillari. Matematiklar va dasturiy ta'minotni ishlab chiquvchilar uchun bunday tillarning paydo bo'lishi yoqimli istiqbolni taqdim etdi. Kompyuterlarning tuzilishini o'rganishga hojat yo'q edi, chunki dasturlash tillari matematik tavsiflash tilidan deyarli farq qilmadi. Algoritmlarni ketma-ket mashinalarda bajarish tezligi asosan bajarilgan operatsiyalar soniga bog'liq va deyarli algoritmlarning o'zlari qanday tashkil etilganiga bog'liq emas. Shu sababli, algoritmlarni ishlab chiqishda ularning sifatining asosiy ob'ektiv funktsiyalari aniq bo'ldi - bajarilgan operatsiyalar sonini va xatolar ta'siriga qarshilikni minimallashtirish. Algoritmlar to'g'risida boshqa hech qanday ma'lumot ketma-ket texnologiyadagi muammolarni samarali hal qilish uchun kerak emas edi.
Bularning barchasi ko'p yillar davomida nafaqat raqamli usullarni, balki barcha hisoblash matematikasini rivojlantirishning asosiy yo'nalishini belgilab berdi. Kompyuter texnologiyalarini rivojlantirishga etarlicha e'tibor berilmagan bir sharoitda, matematiklar muhim vaziyatni o'z vaqtida payqamadilar: texnologiyadagi miqdoriy o'zgarishlar allaqachon shunday sifatga aylanib ketayaptiki, u bilan doimiy tillardan foydalangan holda aloqa qilish imkonsiz bo'lib qolmoqda. Bu algoritmlar sohasidagi mavjud bilimlar va so'nggi hisoblash texnologiyalari bo'yicha muammolarni tezda hal qilish uchun zarur bo'lgan bilimlar o'rtasidagi jiddiy tafovutga olib keldi. Natijada yuzaga keladigan bo'shliq zamonaviy arxitektura hisoblash tizimlarining amaliy rivojlanishidagi ko'plab qiyinchiliklarni keltirib chiqaradi.
Endi hisoblash dunyosi, hech bo'lmaganda katta hisoblash dunyosi tubdan o'zgardi. Bu parallel bo'ldi. Parallel arxitekturaning hisoblash tizimlarida muammolarni hal qilish vaqti asosan algoritmning ichki tuzilishiga va uning operatsiyalari qanday tartibda bajarilishiga bog'liq. Parallel tizimlarda tezkor ravishda amalga oshirish imkoniyati, ular bir vaqtning o'zida algoritmning ba'zi operatsiyalarini bajarishi mumkin bo'lgan funktsional birliklarning etarlicha ko'p soniga ega ekanligi tufayli erishiladi. Ammo ushbu imkoniyatdan foydalanish uchun algoritmning tuzilishi to'g'risida individual operatsiyalar o'rtasidagi aloqalar darajasida yangi ma'lumotlarni olish kerak. Bundan tashqari, ushbu ma'lumot hisoblash tizimining arxitekturasi to'g'risidagi ma'lumotlarga mos kelishi kerak.
Ta'lim kurslarida tizim arxitekturasi va algoritmlarning tuzilishini birgalikda tahlil qilish to'g'risida deyarli hech narsa aytilmaydi. Agar hisoblash tizimlari va parallel dasturlash arxitekturasi hech bo'lmaganda maxsus kurslarda muhokama qilinsa, u holda algoritmlarning tuzilishlarini individual operatsiyalar darajasida muhokama qilish hozirda biron bir o'quv faniga kiritilmagan. Va bu algoritmlarning tuzilishi ilmiy adabiyotlarda bir necha o'n yillar davomida muhokama qilinganiga va parallel arxitekturaning hisoblash texnologiyalaridan foydalanish amaliyoti juda qisqa vaqtga ega bo'lmaganiga qaramay. Tabiiyki, bundan keyin nima qilish kerakligi haqida savol tug'ildi. Javob allaqachon berilgan, ammo uni takrorlash foydalidir.
Hozirgacha hisoblash matematiklariga muammolarni matematik ravishda to'g'ri hal qilish usullari o'rgatilgan. Endi qo'shimcha ravishda zamonaviy kompyuter texnologiyalarida muammolarni samarali hal qilishni o'rgatish kerak..
Algoritmlarning tuzilishi sohasidagi qanday qo'shimcha ma'lumotni bilish kerakligi ushbu ma'ruzalarda muhokama qilindi. Ushbu material asosida siz o'quv kurslarini modernizatsiya qilish uchun turli xil dasturlarni ishlab chiqishingiz mumkin. parallel hisoblash foydasiga... Eng samarali modernizatsiya bilan bog'liq kelishilgan bir nechta kurslarga o'zgartirishlar. Katta tizimlarda katta muammolarni hal qilishda yuqori malakali mutaxassislarni tayyorlashga mo'ljallangan dasturlardan biri quyidagicha ko'rinishi mumkin.
birinchi yoki uch-to'rt marotaba "Parallel hisoblashlarga kirish" ma'ruzalarini o'qish;
parallel hisoblash haqida boshlang'ich ma'lumotni dasturlash va matematikada asosiy ko'chadanlarni kiritish;
har bir algoritmning axborot tuzilishini majburiy tavsiflash bilan ma'ruza tsiklini sonli usul bilan sezilarli ravishda qayta qurish;
parallel hisoblash bo'yicha seminar tashkil etish;
maxsus kurs o'qish " Parallel tuzilish algoritmlari ";
"Parallel hisoblash" maxsus kursini o'qish.
Ushbu dastur ma'lum ma'noda maksimaldir. Biroq, bu juda haqiqat. Albatta, uni har bir universitetda to'liq amalga oshirib bo'lmaydi. Ammo uning asosida har bir aniq universitet uchun siz hisoblash fanlari bo'yicha o'z o'quv dasturingizni yaratishingiz mumkin.
Ta'lim tsiklidagi dastlabki ikkita fikrdan boshlab, siz ikkalasini ham, ikkalasini ham birdaniga kiritishingiz mumkin. Bu talaba uchun juda muhimdir imkoni boricha tezda Hisoblash jarayonlarini tashkil etishning boshqa usullari ham borligini va "operatsiya bo'yicha operatsiyalarni" ketma-ket bajarish bilan bir qatorda, ushbu boshqa usullar eng zamonaviy zamonaviy hisoblash texnologiyalarini yaratishda ishlatilishini, faqat bunday texnologiyalar yirik sanoat va ilmiy muammolarni hal qila olishini va hokazolarni bilib oldim. Bu, birinchi navbatda, ketma-ket hisoblash falsafasiga tanqidiy munosabat zarurligiga talabalarning e'tiborini imkon qadar erta jalb qilish uchun juda muhimdir. Oxir oqibat, ushbu falsafa bilan ular maktabda ham, universitetda ham o'qish davomida duch kelishlari kerak. Aynan mana shu falsafa parallel arxitektura kompyuterlarida ishlashning o'ziga xos xususiyatlarini tushunishga xalaqit beradi.
Parallel hisoblash to'g'risida dastlabki ma'lumotlarni dasturlash kursiga kiritish juda o'rinlidir. Unda siz eng oddiy modelni muhokama qilishingiz mumkin parallel hisoblash tizimi, parallel jarayonlar va ularning xususiyatlari haqida gapiring. Hisoblash algoritmlarini tavsiflash uchun mavhum shaklni kiritish bu erda ham foydalidir. Bundan tashqari, uning aniq tarkibini berish mutlaqo kerak emas. Keyinchalik raqamli usullarni o'rganayotganda bu haqda gapirish yaxshiroqdir. Algoritmlarning parallel shakllari va ulardan foydalanish haqida gapirishni boshlashingiz mumkin. Parallel hisoblash haqidagi barcha ma'lumotlar, bizning fikrimizcha, dasturlash kursida ikki yoki uchta ma'ruzalarda taqdim etilishi mumkin. Algoritmlarda parallellikni namoyish qilish uchun yaxshi sinov maydoni bu chiziqli algebrada kursdir. Matritsali operatsiyalar va chiziqli algebraik tenglamalarni echish uchun Gauss usuli bunga ancha erta ko'rinadi. Tegishli algoritmlardan, hattoki "barmoqlarda" ham, hisoblashlarning parallelligini, tezkor algoritmlarni va boshqalarni namoyish qilish mumkin. Yangi ma'lumotni muhokama qilish uchun faqat bitta ma'ruza kerak bo'ladi.
Parallel hisoblash bilan birinchi tanishuvni juda ko'p tafsilotlar va jiddiy natijalar bilan ortiqcha yuklamang. Ushbu bosqichning asosiy maqsadi faqat ushbu mavzuga qiziqishni uyg'otishdir. Hisoblashlarning parallelligi, parallel shakllar, algoritmlar grafigi va hisoblash jarayonlarining xususiyatlari haqida umumiy fikr berish kifoya. Agar barcha boshlang'ich ma'lumotlar "Parallel hisoblashlarga kirish" bitta tsiklga birlashtirilgan bo'lsa, unda ularni uchta yoki to'rtta ma'ruzalarda aytib berish mumkin. Ammo yana bir bor ta'kidlaymiz - bu ma'lumotni imkon qadar erta talabalarga etkazish kerak.
Ushbu ma'ruzalar materiallari zamonaviy arxitektura hisoblash tizimlarida zamonaviy muammolarni echishda duch keladigan muammolarni tushunish uchun algoritmlar grafigi va ularning parallel shakllarini yaxshi bilish qanchalik muhimligini ishonchli namoyish etadi. Bu haqida ma'lumotni hisoblash matematikasi kurslariga kiritish tabiiydir. Bunday qaror foydasiga asosiy dalil algoritmlarning axborot tuzilishi tavsiflanganligi bilan bog'liq bir xilda taqdimot o'tkaziladigan indeks tizimlari va sonli usullar. Umuman olganda, raqamli usullar bo'yicha mavjud kursga siz faqat algoritmlar grafigi, ular uchun supurgi to'plamlari va bularning barchasi uchun texnologiya haqida ma'lumot qo'shishingiz kerak. Albatta, yangilangan kurslarni tayyorlash biroz mehnat talab qiladi. Ammo algoritmlarning tuzilishini to'liq muhokama qilish kerak emas. Buni faqat ularning hisoblash yadrolari uchun qilish kifoya. Algoritmlar va texnologiyalar grafikalari haqida tushuncha, ehtimol kursning boshida taqdim etilishi kerak. Shu bilan birga, har bir algoritm uchun grafik va supurgi berish maqsadga muvofiqdir. Aytilganlarga qo'shimcha ravishda, biz bir xil raqamli usullarni ko'p yillar davomida o'zgarishsiz o'qiymiz va ularning tuzilmalari haqida ma'lumotni faqat bir marta tayyorlash kerakligini ta'kidlaymiz. Va bu ma'lumot shubhasiz ko'p marotaba va turli sohalarda ishlatiladi.