Universiteti kompyuter Arxitikturasi fanidan
Parallel tizimlardan foydalanishdagi qiyinchiliklar
Download 224.15 Kb.
|
Kompyuter arxitekturasi 1-Mustaqil ish
- Bu sahifa navigatsiya:
- Amdal qonuni.
- Amdal qonunining natijasi.
- Parallel tizim dasturlash
Parallel tizimlardan foydalanishdagi qiyinchiliklar
Parallel kompyuterlar va superkompyuterlarning ulkan ishlashi ulardan foydalanishning murakkabligi bilan qoplanadi. Sizda dastur va 256 protsessorli kompyuterga kirishingiz mumkin. Nima kutyapsiz? Ha, bu aniq: siz qonuniy ravishda dasturning bitta protsessorga qaraganda 256 marta tezroq ishlashini kutasiz. Ammo bu, ehtimol, sodir bo'lmaydi. Amdal qonuni. Faraz qilaylik, dasturda ketma-ket bajarilishi kerak bo'lgan amallarning ulushi f bo'lsin, bu erda 0<=f <=1 (при этом доля понимается не по статическому числу строк кода, а по числу операций в процессе выполнения). Крайние случаи в значениях f соответствуют полностью параллельным (f = 0) и полностью последовательным (f = 1) программам. Тогда для того, чтобы оценить, какое ускорение S может быть получено на компьютере из "p" процессоров при данном значении f, можно воспользоваться законом Амдала: если 9/10 программы исполняется параллельно, а 1/10 по-прежнему последовательно, то ускорения более, чем в 10 раз получить в принципе невозможно вне зависимости от качества реализации параллельной части кода и числа используемых процессоров (10 получается только в том случае, когда время исполнения параллельной части равно 0). Amdal qonunining natijasi. Dasturning bajarilishini q marta tezlashtirish uchun dasturning (1-1 / q) qismidan kam bo'lmagan holda kamida q marta tezlashtirish kerak. Shuning uchun, agar dasturni ketma-ket versiyasiga nisbatan 100 marta tezlashtirish istagi mavjud bo'lsa, unda kod tezligining kamida 99,99% ni olish kerak! Shunday qilib, parallel hisoblash tizimini ma'lum bir dasturda maksimal samaradorlik bilan ishlashi oson ish emas, chunki dasturlar va algoritmlarning tuzilishini parallel hisoblash tizimlari arxitekturasining xususiyatlari bilan diqqat bilan muvofiqlashtirish kerak. Parallel tizim dasturlash Fon Neyman mashinasi modeli protsessor buyruqlar ketma-ketligini bajarishini taxmin qiladi. Ko'rsatmalar turli arifmetik amallarga qo'shimcha ravishda o'qilishi / xotiraga yozilishi kerak bo'lgan ma'lumotlarning manzillarini va / yoki keyingi bajariladigan buyruqning manzilini belgilashi mumkin. Faqatgina ushbu asosiy model nuqtai nazaridan kompyuterni dasturlash mumkin bo'lsa-da, bu usul ko'pchilik maqsadlar uchun qabul qilib bo'lmaydigan darajada qiyin, chunki biz millionlab xotira pozitsiyalarini kuzatishimiz va minglab mashina ko'rsatmalarining bajarilishini tashkil qilishimiz kerak. Binobarin, modulli loyihalash texnikasi qo'llaniladi, bunda murakkab dasturlar oddiy komponentlardan va yuqori darajadagi abstraktsiyalar (masalan, ma'lumotlar tuzilmalari, iteratsiya davrlari va protseduralar) nuqtai nazaridan tuzilma komponentlaridan yaratiladi. Abstraktsiyalar (masalan, protseduralar) ob'ektlarning ichki tuzilishi haqida qayg'urmasdan, ularni boshqarishga imkon berish orqali modullikdan foydalanishni osonlashtiradi. Fortran, C, Ada va Java kabi yuqori darajadagi tillar shunday yaratilgan bo'lib, ular avtomatik ravishda bajariladigan kodga tarjima qilinadigan ushbu abstraktsiyalar nuqtai nazaridan ifodalangan rivojlanish imkonini beradi. Parallel dasturlash qo'shimcha murakkablik manbalarini taqdim etadi: agar biz eng past darajada dasturlashimiz kerak bo'lsa, biz nafaqat bajarish uchun ko'rsatmalar sonini ko'paytirishimiz, balki minglab protsessorlarning bajarilishini boshqarishimiz va millionlab protsessorlararo o'zaro aloqalarni muvofiqlashtirishimiz kerak. Demak, mavhumlik va modullik hech bo'lmaganda ketma-ket dasturlashdagi kabi muhimdir. Darhaqiqat, biz parallellik, masshtablilik va joylashuvdan tashqari parallel dasturiy ta'minot uchun to'rtinchi asosiy talab sifatida modullikni ta'kidlaymiz. Parallel dasturlashda ishlatiladigan asosiy abstraktsiyalar vazifalar va kanallarga qisqartiriladi: 1. Parallel hisoblash bir yoki bir nechta vazifalardan iborat. Vazifalar parallel ravishda bajariladi. Dastur ishlayotgan vaqtda vazifalar soni o'zgarishi mumkin. 2. Vazifa - ketma-ket dastur va mahalliy xotirani izolyatsiya qilish. Bundan tashqari, kirish va chiqishlar to'plami o'z muhitida uning interfeysini belgilaydi. 3. Vazifa mahalliy xotiraga o'qish va yozishdan tashqari to'rtta asosiy amalni bajarishi mumkin: uning chiqish portlariga xabar yuborish, kirish portlaridan xabar olish, yangi vazifalar yaratish va vazifani o'ldirish (tugatish). 4. Xabar jo'natish operatsiyasi asinxron bo'lib, u darhol tugaydi. Qabul qilish operatsiyasi sinxron bo'lib, u vazifaning bajarilishiga olib keladi, xabar qabul qilinmaguncha jarayonni bloklaydi. 5. I / U juftlari quvurlar deb ataladigan navbatdagi xabarlar bilan bog'lanishi mumkin. Quvurlar yaratilishi va o'chirilishi mumkin, shuningdek quvurlarga (portlarga) havolalar ulanish dinamik ravishda o'zgarishi uchun xabarlarga kiritilishi mumkin. 6. Ishlar jismoniy protsessorlarda turli usullarda ko'rsatilishi mumkin; xaritalash ilovasi dasturning semantikasiga ta'sir qilmaydi. Xususan, bir nechta ishni bitta protsessorga solishtirish mumkin (siz bitta vazifani bir nechta protsessorga solishtirish mumkinligini ham tasavvur qilishingiz mumkin, ammo bu xususiyat bu erga kiritilmagan.) Vazifalarni mavhumlashtirish mahalliy xususiyatni talab qiladi: vazifaning mahalliy xotirasidagi ma'lumotlar "yopiq"; boshqa ma'lumotlar "o'chiriladi". Kanal abstraktsiyasi boshqa vazifani boshlash uchun bitta vazifadan qaysi ma'lumotlarni hisoblash kerakligini aniqlash mexanizmini taqdim etadi. (Bu ma'lumotlarga bog'liqlik bilan tavsiflanadi). Vazifa va kanal modeli yana bir qancha xususiyatlarga ega: Download 224.15 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling