Parallel hisoblash uchun mo‘ljallangan masalalar
Reja:
Parallelizatsiya samaradorligi
Ma'lumotlarni uzatish tarmog'i topologiyalariga misollar
Superkompyuterlar hamjamiyatining tashkiliy yordami
Dastur hisob-kitoblari kompyuterda parallel deb nomlanishi kerak. Lekin bu men javob olmoqchi bo'lgan yagona savol emas. Nega oddiy, taniqli, tushunarli ketma-ket hisoblash dunyosidan parallel hisoblashning tushunish qiyin dunyosiga o'tish kerakligini tushunish ham bir xil darajada muhimdir. Parallel hisoblashning qanday afzalliklari bor va parallel hisoblashga qaratilgan dasturlarni yaratishda dasturchini qanday muammolar kutmoqda. Bu savollarga javob berish uchun keling, kompyuterlarning rivojlanish tarixiga qisqacha ekskursiya qilaylik.
Birinchi kompyuterlar fon Neyman tomonidan ishlab chiqilgan printsiplarga muvofiq qurilgan. Ular uchta asosiy komponentga ega edi - xotira, protsessor va ba'zi to'plamlar tashqi qurilmalar axborotni kiritish va chiqarishni ta'minlash.
Xotira ko'p darajali bo'lib, birinchi kompyuterlar uchun tashqi xotira va ichki xotira - operativ va registr bo'lgan. Tashqi xotira (magnit lentalarda, perfokartalarda, disklarda) kompyuter yoqilgan yoki yoqilmaganligidan qatʼiy nazar, dasturlar va maʼlumotlarni saqlash imkonini berdi. Ichki xotira ma'lumotni faqat kompyuter bilan sessiya davomida saqlaydi. Kompyuter o'chirilganda, tarkib ichki xotira G'oyib bo'lgan.
Dastur kompyuterda bajarilishi uchun uni yuklash kerak edi Ram... U erda ushbu dastur tomonidan qayta ishlangan ma'lumotlar bilan bir xil tarzda saqlangan. Xotirada saqlanadigan dastur printsipi Von Neuman kompyuterlarining asosiy tamoyillaridan biridir.
Hisob-kitoblar amalga oshirilgan vaqtda registr xotirasi ishlatilgan. Ma'lumotlar bilan har qanday operatsiyani bajarishdan oldin, ma'lumotlar registrlarga joylashtirilishi kerak. Ushbu tezkor xotira turi ma'lumotlar bilan operatsiyalarni bajarishda kerakli ishlashni ta'minladi.
Barcha operatsiyalar - ma'lumotlar bo'yicha operatsiyalar va hisoblash jarayonini boshqarish operatsiyalari protsessor tomonidan amalga oshirildi. Kompyuter protsessorida ma'lum ko'rsatmalar to'plami mavjud edi. Ushbu to'plam har qanday potentsial hisoblash mumkin bo'lgan funktsiyani hisoblash uchun etarlicha ko'p qirrali edi. Boshqa tomondan, bu to'plam odamlar uchun dasturlar yozishning nisbatan qulayligini ta'minladi.
Dastlabki kompyuterlar uchun dasturlar amaldagi protsessor ko'rsatmalar to'plamining bir qismi bo'lgan ko'rsatmalar ketma-ketligi edi. Dasturni kompyuterda bajarish juda oddiy edi. Kompyuterda bir vaqtning o'zida bitta dastur ishlayotgan edi. Protsessor dasturga muvofiq ketma-ket buyruqlarni birin-ketin bajardi. Barcha kompyuter resurslari - xotira, protsessor vaqti, barcha qurilmalar dasturning to'liq ixtiyorida edi va uning ishiga hech narsa xalaqit bera olmaydi (albatta, odamdan tashqari). Parallelizmdan asar ham yo'q edi.
O'sha paytlarda nihoyatda qimmat bo'lgan kompyuterlar resurslaridan samarasiz foydalanilgani uchun bu idil uzoq davom etmadi. O'shanda kompyuterlar o'chmagan - bir dastur boshqasini almashtirgan.
Tez orada kompyuter, protsessor bilan birga chaqirila boshlandi markaziy ishlov berish bloki, qo'shimcha protsessorlar, birinchi navbatda, eng sekin buyruqlarni bajarish uchun mas'ul bo'lgan ma'lumotlarni kiritish-chiqarish qurilmalari uchun maxsus protsessorlar paydo bo'ldi. Bu kompyuterda bir vaqtning o'zida bir nechta dasturlar ishlayotganda dasturni bajarishning ommaviy rejimini tashkil qilish imkonini berdi - bitta dastur ish natijalarini chop etishi, ikkinchisi bajarilishi, uchinchisi esa kerakli ma'lumotlarni kiritishi mumkin edi, masalan, magnit lenta yoki boshqa tashqi muhitdan.
Inqilobiy qadam 1964 yilda paydo bo'ldi operatsion tizim IBM tomonidan - OS 360. Kompyuterda paydo bo'ldi operatsion tizim uning suveren egasi - barcha resurslarining boshqaruvchisiga aylandi. Endi foydalanuvchi dasturi faqat operatsion tizim nazorati ostida bajarilishi mumkin edi. Operatsion tizim ikkita muhim vazifani hal qilish imkonini berdi - bir tomondan, kompyuterda bir vaqtning o'zida ishlaydigan barcha dasturlarga zarur xizmat ko'rsatish, boshqa tomondan, mavjud resurslardan samarali foydalanish va ushbu resurslarga da'vogar dasturlar o'rtasida taqsimlash. Operatsion tizimlarning paydo bo'lishi bir kompyuterda bir vaqtning o'zida bir nechta dasturlar bajariladigan bir dasturli ish rejimidan ko'p dasturli rejimga o'tishga olib keldi. Ko'p dasturlash u hali parallel emas dasturlash lekin bu parallel hisoblash sari qadamdir.
Ko'p dasturlash - bu bir nechta dasturlarning parallel bajarilishi. Ko'p dasturlash sizga umumiy bajarish vaqtini qisqartirish imkonini beradi.
Parallel hisoblash deganda bir xil dasturning parallel bajarilishi tushuniladi. Parallel hisoblash bitta dasturni bajarish vaqtini qisqartirishi mumkin.
E'tibor bering, kompyuterda bir nechta protsessorlarning mavjudligi ko'p dasturlash uchun zaruriy shartdir. Ko'p dasturlashni amalga oshirish uchun protsessorlarning o'zaro ishini tashkil qiluvchi operatsion tizimning mavjudligi etarli. Parallel hisoblashlar uchun qo'shimcha talab qo'yiladi - bu dasturning o'zi uchun talab - dastur hisoblashlarni parallellashtirish imkoniyatini berishi kerak.
Operatsion tizimning paydo bo'lishi kompyuterni faqat "apparat" (xotira, protsessorlar, boshqa qurilmalar) sifatida ko'rish mumkin emasligini anglatadi. Endi u ikkita komponentga ega - qattiq va yumshoq - bir-birini to'ldiradigan apparat va dasturiy ta'minot komponentlari. Kompyuterlar mavjud bo'lgan yarim asr davomida ikkala komponent ham tez rivojlandi.
Uskuna eksponensial o'sish bilan tavsiflanadi, bu taniqli empirik Mur qonunida aks etadi - barcha eng muhim xususiyatlar eksponent ravishda o'sdi - barcha darajadagi xotira miqdori, xotiraga kirish vaqtining pasayishi, protsessorlarning tezligi. Mur qonuniga ko'ra (Gordon Mur asoschilaridan biridir Intel) har bir yarim yilda xususiyatlarning qiymatlari ikki baravar oshdi. Kompyuterga kiritilgan protsessorlar soni ham o'sdi. O'zgartirildi va kompyuter arxitekturasi... Ushbu o'zgarishlar ko'p jihatdan hisob-kitoblarni parallellashtirishga qaratilgan qadamlar edi. To'g'ridan-to'g'ri parallellashtirish jarayoni bilan bog'liq protsessor arxitekturasida bir nechta o'zgarishlar:
Quvur liniyasi buyrug'ini qayta ishlash. Protsessor tomonidan ko'rsatmalar oqimini bajarish jarayoni endi ko'rsatmalardan keyin ko'rsatmalarning ketma-ket bajarilishi deb hisoblanmaydi. Buyruqlar oqimini qayta ishlash quvur liniyasida amalga oshirildi, shuning uchun bir vaqtning o'zida bir nechta buyruqlar bajarish uchun tayyorlandi. Quvurli ishlov berishda ma'lumotlar bilan bir-biriga bog'liq bo'lmagan buyruqlar bir vaqtning o'zida bajarilishi mumkin edi, bu allaqachon haqiqiy parallelizmdir.
"Uzoq buyruqlar". Ba'zi kompyuterlarning arxitekturasi butun sonlar ustida mantiqiy va arifmetik amallarni bajarishga imkon beruvchi bir nechta protsessorlarni, suzuvchi nuqtali raqamlar bilan operatsiyalarni bajaradigan bir nechta protsessorlarni o'z ichiga oladi. Long buyrug'i bitta buyruqda mavjud protsessorlarning har biri tomonidan bajarilishi kerak bo'lgan amallarni belgilash imkonini berdi. Shunga qaramay, bu apparat parallelizmiga imkon berdi.
Vektor va matritsali protsessorlar. Bunday protsessorlar uchun ko'rsatmalar to'plami vektorlar va matritsalar bo'yicha asosiy operatsiyalarni o'z ichiga oladi. Bitta buyruq, masalan, ikkita matritsa qo'shishi mumkin. Bunday buyruq aslida parallel hisoblashni amalga oshiradi. Ushbu operatsiyalar ma'lumotlarni qayta ishlashning asosini tashkil etadigan ilovalar keng tarqalgan. Uskunada amalga oshirilgan parallel ma'lumotlarni qayta ishlash ushbu sinfning ilovalari samaradorligini sezilarli darajada oshirishi mumkin.
Grafik protsessorlar. Uskuna darajasida parallel bajarilishi sodir bo'ladigan yana bir muhim dastur turi - bu grafik talab qilinadigan ilovalardir. Ushbu qayta ishlash amalga oshiriladi GPUlar. Grafik tasvir nuqtalar yig'indisi sifatida qarash mumkin. Rasmni qayta ishlash ko'pincha barcha nuqtalarda bir xil operatsiyani bajarishga to'g'ri keladi. Bunday vaziyatda ma'lumotlarga parallellashtirishni amalga oshirish oson. Shu sababli, GPU uzoq vaqtdan beri ko'p yadroli bo'lib, bu parallel ishlov berish va tasvirni samarali qayta ishlash imkonini beradi.
Superkompyuterlar. Superkompyuterlar hozirgi vaqtda eng yuqori ishlash ko'rsatkichlariga ega kompyuterlardir. Ularga yuz minglab protsessorlar kiradi. Superkompyuterlardan samarali foydalanish hisob-kitoblarni iloji boricha kengroq parallellashtirishni nazarda tutadi.
Ilmiy tadqiqotlar va yangi texnologiyalarda doimo mavjud hisoblash tizimlarining to'liq quvvatini talab qiladigan vazifalar mavjud. Mamlakatning ilmiy salohiyati ko'p jihatdan uning superkompyuterlarining mavjudligi bilan belgilanadi. Superkompyuter nisbiy tushunchadir. O'n yil oldingi superkompyuterning xarakteristikalari bugungi kunda oddiy kompyuterning xususiyatlariga mos keladi. Hozirgi superkompyuterlarda bor ishlash, petafloplarda o'lchanadi (sekundiga 10 15 suzuvchi nuqta operatsiyalari). 2020 yilga kelib, bu kutilmoqda ishlash superkompyuterlar 1000 barobar ortadi va eksafloplarda o'lchanadi.