Ko'p kompyuterlar. Parallel arxitekturaning ikkinchi versiyasida har bir protsessor faqat ushbu protsessor uchun mavjud bo'lgan o'z xotirasiga ega. Bunday sxema multikompyuter yoki taqsimlangan xotira tizimi deb ataladi. Ko'p kompyuter va ko'p protsessor o'rtasidagi asosiy farq shundaki, ko'p kompyuterdagi har bir protsessor o'zining mahalliy xotirasiga ega bo'lib, bu protsessor LOAD va STORE ko'rsatmalarini bajarish orqali kirishi mumkin, ammo boshqa hech qanday protsessor ushbu ko'rsatmalar yordamida ushbu protsessorning mahalliy xotirasiga kira olmaydi. . Shunday qilib, ko'p protsessorlar barcha protsessorlar tomonidan taqsimlangan bitta fizik manzil maydoniga ega, ko'p kompyuterlarda esa har bir protsessor uchun alohida jismoniy manzillar bo'shliqlari mavjud.
Ko'p kompyuterdagi protsessorlar umumiy xotiraga oddiy kirish orqali bir-biri bilan bog'lana olmaganligi sababli, protsessorlar ularni bog'laydigan aloqa tarmog'i orqali xabarlar almashadilar. Ko'p kompyuterlarga misollar: IBM BlueGene/L, Red Storm va Google klasteri.
Uskunada amalga oshirilgan umumiy xotira bo'lmasa, ma'lum bir dasturiy tuzilma qabul qilinadi. Ko'p kompyuterda LOAD va STORE buyruqlari bilan ma'lumotlarni o'qish va yozish imkonini beruvchi barcha protsessorlar uchun yagona virtual manzil maydoniga ega bo'lish mumkin emas. Misol uchun, agar rasmning yuqori chap burchagidagi protsessor(bu protsessorga 0 raqamini beramiz) uning ob'ektining bir qismi keyingi protsessor bilan bog'liq bo'lgan boshqa bo'limga tushishini aniqlaydi (u protsessor 1 bo'lsin), u shunchaki xotiradan ma'lumotni o'qishni davom ettirishi mumkin, bu protsessorning dumi tasvirini olish uchun. samolyot. Biroq, agar rasmda protsessor 0 bo'lsa. 6 b,
6-rasm. MPP arxitekturasi.
U 1-protsessor xotirasidan ma'lumotni oddiygina o'qiy olmaydi.Bu holda ma'lumotlarni yig'ish algoritmi boshqacha bo'lishi kerak.
6-rasmda 16 ta protsessorli, har biri o'z xotirasiga (xotiralariga) ega multikompyuter; 6-rasmdagi bitmap16 xotira moduliga bo'lingan (b)
Birinchidan, 0-protsessor qandaydir tarzda qaysi protsessor kerakli ma'lumotlarni o'z ichiga olganligini aniqlashi va ma'lumotlarning nusxasini so'rab ushbu protsessorga xabar yuborishi kerak. 0 protsessor keyin javob olinmaguncha bloklanadi. 1-protsessor xabarni qabul qilganda, u dasturiy ta'minot tomonidan tahlil qilinadi, shundan so'ng so'ralgan ma'lumotlar qaytarib yuboriladi. 0 protsessoriga javob xabari kelganda, qulf dasturiy ta'minot tomonidan chiqariladi va protsessor ishlashda davom etadi.
Ko'p kompyuterda yuborish va qabul qilish ibtidoiylari ko'pincha protsessorlar o'rtasida aloqa qilish uchun ishlatiladi. Shuning uchun ko'p kompyuterli dasturiy ta'minot ko'p protsessorli dasturiy ta'minotga qaraganda ancha murakkab tuzilishga ega. Bunday holda, asosiy muammo ma'lumotlarni to'g'ri taqsimlash va ularni oqilona joylashtirishdir. Bu ko'p kompyuter va ko'p protsessor o'rtasidagi yana bir farq bo'lib, unda ma'lumotlarni joylashtirish muammoni hal qilishning to'g'riligiga ta'sir qilmaydi, garchi u ishlashga ta'sir qilishi mumkin. Muxtasar qilib aytganda, ko'p kompyuterni dasturlash ko'p protsessorga qaraganda ancha qiyin.
Savol tug'iladi: agar ko'p protsessorlarni dasturlash ancha oson bo'lsa, nega umuman multikompyuterlarni yaratish kerak? Javob oddiy: katta hajmdagi multikompyuterni yaratish bir xil miqdordagi protsessorli multiprotsessorni yaratishdan ko'ra osonroq va arzonroq. Bir necha yuz protsessorlar tomonidan umumiy xotirani amalga oshirish juda qiyin ish, ammo 10 000 yoki undan ortiq protsessorlarni o'z ichiga olgan multikompyuterni loyihalash juda oson. Keyinchalik ushbu bobda 50 000 dan ortiq protsessorga ega multikompyuterni ko'rib chiqamiz.
Shunday qilib, biz dilemmaga duch kelamiz: ko'p protsessorlarni loyihalash qiyin, lekin dasturlash oson va ko'p kompyuterlarni qurish oson, lekin dasturlash qiyin. Natijada, doimiy ravishda gibrid tizimlarni yaratishga urinishlar olib borilmoqda. Ushbu urinishlar umumiy xotirani turli yo'llar bilan amalga oshirish mumkinligini tushunishga olib keldi, har bir variantning afzalliklari va kamchiliklari mavjud. Parallel kompyuter arxitekturasi sohasidagi deyarli barcha tadqiqotlar ikkala tizimning afzalliklarini birlashtirgan gibrid shakllarni yaratishga qaratilgan. Bu erda miqyoslilikka erishish, ya'ni tobora ko'proq protsessorlar qo'shilishi bilan to'g'ri ishlashni davom ettiradigan tizimni ishlab chiqish muhimdir.
Yondashuvlardan biri zamonaviy kompyuter tizimlari monolit emas, balki ko'p darajali tuzilishga ega ekanligiga asoslanadi. Bu rasmda ko'rsatilganidek, umumiy xotirani bir necha darajalardan birida amalga oshirish imkonini beradi. Yuqoridagi biz "haqiqiy" multiprotsessorda bo'lgani kabi apparatda amalga oshirilgan umumiy xotirani ko'ramiz. Ushbu ishlanmada bitta jadvallar to'plamiga ega bo'lgan operatsion tizimning bitta nusxasi, xususan, xotirani ajratish jadvali mavjud. Agar jarayonga ko'proq xotira kerak bo'lsa, u operatsion tizimni to'xtatadi, so'ngra jadvalda bo'sh sahifani qidiradi va ushbu sahifani chaqiruv jarayonining manzil maydoniga joylashtiradi. Operatsion tizimga kelsak, bitta xotira mavjud va operatsion tizim qaysi sahifa qaysi jarayonga tegishli ekanligini kuzatib boradi.
Ikkinchi yondashuv - bitta sahifali virtual manzil maydonini ta'minlash orqali umumiy xotirani simulyatsiya qiladigan ko'p kompyuter uskunasi va operatsion tizimdan foydalanish. Ushbu yondashuv natijasida har bir sahifa xotira modullaridan birida joylashgan va har bir mashina o'zining virtual xotirasi va o'z sahifa jadvallarini o'z ichiga olgan Taqsimlangan umumiy xotira (DSM) ga olib keladi. Agar protsessor o'zida mavjud bo'lmagan sahifaga kirish paytida LOAD yoki STORE buyrug'ini bajarsa, tizimdan istisno yuzaga keladi. Shundan so'ng, operatsion tizim to'g'ri sahifani topadi va sahifani xotiradan tushirish va uni protsessorlar xabar almashadigan ichki aloqa tarmog'i orqali yuborish uchun tegishli protsessorni chaqiradi. Sahifa qabul qilish jarayoniga yetganda, u xotiraga joylashtiriladi va uzilgan buyruqning bajarilishi davom etadi. Aslida, operatsion tizim etishmayotgan sahifalarni diskdan emas, balki xotiradan oladi. Bu foydalanuvchiga mashinada bitta umumiy xotira borligi haqidagi taassurot qoldiradi. Biz ushbu bobda keyinroq taqsimlangan umumiy xotiraga qaytamiz.
Uchinchi yondashuv - real vaqtda foydalanuvchi tizimi tomonidan dasturiy ta'minotda umumiy xotirani amalga oshirish. Bunday yondashuv bilan dasturlash tili umumiy xotiraning abstraktsiyasini yaratadi va bu abstraktsiya kompilyator tomonidan amalga oshiriladi (ya'ni umumiy xotira modeli ishlatiladigan dasturlash tiliga bog'liq bo'lishi mumkin). Masalan, Linda modeli kortejlarning umumiy maydonini (maydonlar to'plamini o'z ichiga olgan ma'lumotlar yozuvlari) mavhumlashtirishga asoslangan. Har qanday mashinadagi jarayonlar umumiy maydondan kortej olishi yoki uni umumiy maydonga yuborishi mumkin. Ushbu maydonga kirish dasturiy ta'minot (Linda real vaqt tizimi) tomonidan to'liq nazorat qilinganligi sababli, maxsus apparat yordami yoki maxsus operatsion tizim talab qilinmaydi.
7-rasm
Umumiy xotirani amalga oshirish mumkin bo'lgan darajalar: apparatni amalga oshirish (a); operatsion tizim (b); dasturiy ta'minotni joriy etish (c)
Maxsus real vaqt tizimi tomonidan amalga oshirilgan umumiy xotiraning yana bir misoli Orcs tizimidagi Shared Data Objects modelidir. Ogsa modelida jarayonlar Lindadagi kabi kortejlarni emas, balki ulardagi usullarni chaqirish orqali asosiy ob'ektlarni almashadi. Agar usul ob'ektning ichki holatini o'zgartirsa, real vaqt tizimi ushbu ob'ektning barcha mashinalardagi barcha nusxalari bir vaqtning o'zida o'zgartirilishini ta'minlashi kerak. Shunga qaramay, ob'ektlar sof dasturiy ta'minot tushunchasi bo'lganligi sababli, ular real vaqt rejimida operatsion tizim yoki apparat aralashuvisiz amalga oshirilishi mumkin. Ushbu bobda Linda va Ogs modellariga qaytamiz.
Parallel kompyuter tizimlarining tasnifi. Parallel kompyuter tizimlari uchun dasturiy ta'minot haqida ko'p gapirish mumkin, ammo endi biz ushbu bobning asosiy mavzusiga - bunday tizimlar arxitekturasiga qaytishimiz kerak. Yillar davomida parallel kompyuter tizimlarining ko'p turlari taklif qilindi va qurildi, shuning uchun men ularni qandaydir tarzda tasniflashni xohlayman. Ko'pgina tadqiqotchilar buni turli natijalar bilan amalga oshirishga harakat qilishdi lekin, afsuski, hali ham yaxshi tasniflash mavjud emas. Ko'pincha Flinn tasnifi qo'llaniladi, lekin u juda qo'poldir.
1-jadval. Flinning parallel kompyuter tizimlarining tasnifi
Buyruqlar oqimlari ma'lumotlar oqimlari toifalari misollari
SISD
|
Klassik von Neyman mashinasi
|
SIMD
|
Vektorli superkompyuter, matritsa
|
|
Markaziy protsessor
|
MISD
|
Mavjud emas
|
MIMD
|
Ko'p protsessorli, ko'p kompyuterli
|
1-jadval
Tasniflash buyruqlar oqimi va ma'lumotlar oqimlari tushunchalariga asoslanadi.
Ko'rsatmalar oqimi ko'rsatmalar hisoblagichiga mos keladi. n ta protsessorli tizimda n ta dastur hisoblagichi va shuning uchun n ta buyruq oqimi mavjud. Ma'lumotlar oqimi operandlar to'plamidan iborat.
Buyruqlar va ma'lumotlar oqimlari biroz mustaqildir, shuning uchun bunday oqimlarning 4 ta kombinatsiyasi mavjud. SISD (Single Instruction stream Single Data Stream - bitta ma'lumot oqimi bilan bitta buyruq oqimi) klassik seriyali fon Neyman kompyuter arxitekturasidir. Fon Neyman kompyuterida bitta buyruq oqimi va bitta ma'lumot oqimi mavjud va bir vaqtning o'zida faqat bitta amalni bajarishi mumkin. SIMD toifasiga kiruvchi mashinada (Single Instruction-stream Multiple Data-stream – bir nechta ma’lumotlar oqimiga ega bitta ko‘rsatma oqimi) bir vaqtning o‘zida bitta ko‘rsatma chiqaradigan bitta boshqaruv bloki mavjud, biroq bir nechta ma’lumotlar to‘plamini qayta ishlay oladigan bir nechta ALU mavjud. bir vaqtning o'zida. SIMD mashinalarining prototipi ILLIAC IV protsessoridir (2.6-rasmga qarang). SIMD mashinalari keng qo'llanilmasa ham, ba'zi an'anaviy kompyuterlar multimedia ma'lumotlarini qayta ishlash uchun SIMD ko'rsatmalaridan foydalanadi. Pentium protsessorlaridagi SSE ko'rsatmalari SIMD ko'rsatmalari sifatida tasniflanadi. Har holda, "SIMD dunyosi" dan olingan g'oyalar birinchi o'ringa chiqadigan bir soha bor, bu oqim protsessorlari. Stream protsessorlari multimedia ishlovi uchun maxsus ishlab chiqilgan va kelajakda muhim rol o'ynashi mumkin [107]
MISD (Multiple Instruction-stream Single Data-stream - bitta ma'lumot oqimi bilan bir nechta ko'rsatmalar oqimi) juda g'alati toifadir. Bu erda bir nechta buyruqlar bir xil ma'lumotlar to'plamida ishlaydi. Bunday mashinalar mavjudligini aytish qiyin, garchi ba'zilari konveyerli mashinalarni MISD deb tasniflaydi.
Oxirgi toifa - MIMD (Multiple Instruction-stream Multiple Data-stream - bir nechta ma'lumotlar oqimiga ega bo'lgan bir nechta buyruq oqimlari). Bu erda bir nechta mustaqil protsessorlar kattaroq tizimning bir qismi sifatida ishlaydi. Aksariyat parallel protsessorlar ushbu toifaga kiradi. Ko'p protsessorlar ham, ko'p kompyuterlar ham MIMD mashinalaridir.
Biz Flinning tasnifini kengaytirdik (7-rasm). Bizning SIMD mashinalarimiz ikkita kichik guruhga bo'lingan. Birinchi kichik guruh vektorlarda ishlaydigan, vektorning har bir elementida bir xil amallarni bajaradigan ko'plab superkompyuterlar va boshqa mashinalarni o'z ichiga oladi. Ikkinchi kichik guruh ILLIAC IV tipidagi mashinalarni o'z ichiga oladi, ularda asosiy boshqaruv bloki bir nechta mustaqil ALUga buyruqlar yuboradi.
8-rasm Parallel kompyuterlarning tasnifi
Bizning tasnifimizda MIMD toifasi ko'p protsessorlarga (umumiy xotira mashinalari) va ko'p kompyuterlarga (xabar almashish mashinalari) bo'lingan. Ko'p protsessorlarning uch turi mavjud. Ular umumiy xotiraga kirish mexanizmida bir-biridan farq qiladi va UMA (Uniform Memory Access - yagona xotiraga kirish), NUMA (Nonuniform Memory Access - nonunform xotiraga kirish) va COMA (Cache only Memory Access - faqat keshga kirish) deb nomlanadi. xotira). Bu kichik toifalash mantiqiy, chunki katta multiprotsessorlar odatda xotirani bir nechta modullarga ajratadilar. UMA mashinalarida har bir protsessor har qanday xotira moduliga bir xil kirish vaqtiga ega. Boshqacha qilib aytganda, har bir so'z boshqa so'z bilan bir xil tezlikda xotiradan o'qilishi mumkin. Agar bu texnik jihatdan imkonsiz bo'lsa, eng tez kirishlar sekinlashadi, dasturchi hech qanday farqni sezmasligi uchun eng sekinga mos keladi. Bu "bir hil" kirishni anglatadi. Bu bir xillik ishlashni bashorat qilish imkonini beradi va bu omil samarali dasturlarni yaratish uchun juda muhimdir.
NUMA mashinasi esa bir xillik xususiyatiga ega emas. Odatda har bir protsessor xotira modullaridan biriga ega bo'lib, u boshqalarga qaraganda unga yaqinroq joylashgan, shuning uchun ushbu xotira moduliga kirish boshqalarga qaraganda ancha tezroq. Bunday holda, ishlash nuqtai nazaridan, dastur va ma'lumotlarning qayerda tugashi juda muhimdir. SOMA mashinalariga kirish ham heterojen bo'lib chiqadi, ammo boshqa sababga ko'ra. Variantlarning har birini keyinroq, tegishli kichik toifalarni o'rganganimizda batafsil ko'rib chiqamiz.
MIMD mashinalarining ikkinchi asosiy toifasi ko'p kompyuterlar bo'lib, ular ko'p protsessorlardan farqli o'laroq, xotirani arxitektura darajasida taqsimlamaydi. Boshqacha qilib aytganda, multikompyuterdagi protsessorning operatsion tizimi boshqa protsessorning xotirasiga shunchaki LOAD buyrug'ini berish orqali kira olmaydi. Protsessor xabar yuborishi va javobni kutishi kerak. Bu operatsion tizimning ko'p protsessorlarni ko'p kompyuterlardan ajratib turadigan LOAD buyrug'i yordamida masofaviy xotira modulidan so'zni o'qish qobiliyatidir. Yuqorida aytib o'tganimizdek, hatto ko'p kompyuterda ham foydalanuvchi dasturlari LOAD va STORE buyruqlari yordamida boshqa xotira modullariga kirishlari mumkin bo'lsa-da, bu qobiliyat apparat tomonidan qo'llab-quvvatlanmaydi, lekin operatsion tizim illyuziya yaratadi. Farqi kichik, lekin juda muhim.
Ko'p kompyuterlarni ikkita qo'shimcha toifaga bo'lish mumkin. MPP (Massively Parallel Processor) toifasiga yuqori tezlikdagi ichki aloqa tarmog‘i orqali ulangan ko‘p sonli protsessorlardan tashkil topgan qimmat superkompyuterlar kiradi. Taniqli tijorat misoli IBM kompaniyasining SP/3 superkompyuteridir.
Multikompyuterlarning ikkinchi toifasiga an'anaviy shaxsiy kompyuterlar yoki ba'zi tijorat kommunikatsiya texnologiyalariga muvofiq aloqa qiladigan ish stantsiyalari (ba'zan tokchalarga o'rnatilgan) kiradi. Mantiqiy nuqtai nazardan, bu erda fundamental farq yo'q, lekin millionlab dollarlik kuchli superkompyuter, albatta, oxirgi foydalanuvchilar tomonidan yig'ilgan kompyuter tarmog'idan farqli ravishda ishlatiladi, bu har qanday MPP mashinasidan bir necha baravar arzon. Ushbu "mahalliy" tizimlar ba'zan ish stantsiyalari tarmoqlari (Network Of Workstations, NOW), ish stantsiyalari klasterlari (Cluster Of Workstations, COW) yoki oddiygina klasterlar (klaster) deb ataladi.
Do'stlaringiz bilan baham: |