Ishlash ... Protseduralar va ma'lumotlar tuzilmalari kabi ketma-ket dasturlash abstraktsiyalari samaralidir, chunki ular fon Neuman kompyuterida sodda va samarali tarzda ko'rsatilishi mumkin. Vazifalar va kanallar ko'p kompyuterda xuddi shunday to'g'ridan-to'g'ri taqsimlanadi. Vazifa bitta protsessorda ketma-ket bajarilishi mumkin bo'lgan kod qismini ifodalaydi. Agar kanalni ulashgan ikkita vazifa boshqa protsessorlarda paydo bo'lsa, kanal ulanishi protsessorlararo ulanish sifatida amalga oshiriladi; agar ular bir xil protsessorda ko'rsatilsa, ba'zi samaraliroq mexanizmlardan foydalanish mumkin.
Tarqatish mustaqilligi ... Vazifalar vazifaning o'rnidan qat'i nazar, bir xil mexanizm (kanallar) yordamida o'zaro ta'sir qilganligi sababli, dastur tomonidan hisoblangan natija vazifaning qayerda bajarilishiga bog'liq emas. Demak, algoritmlarni ular ishlaydigan protsessorlar soni haqida qayg'urmasdan loyihalash va amalga oshirish mumkin; Aslida, algoritmlar ko'pincha protsessorlarga qaraganda ko'proq vazifalarni yaratish uchun mo'ljallangan. Bu masshtablilikka erishishning oson yo‘li: protsessorlar soni ortishi bilan protsessorga to‘g‘ri keladigan vazifalar soni kamayadi, lekin algoritmning o‘zini o‘zgartirish kerak emas. Aloqa kechikishlarini maskalash uchun protsessorlar bajara oladigan vazifalardan ko'proq bo'lsa, masofaviy ma'lumotlarga kirish uchun aloqa davom etayotganda bajarilishi mumkin bo'lgan boshqa hisoblar taqdim etiladi.
Modullilik... Modulli dasturlashda dasturlarning turli komponentlari mustaqil modullar sifatida alohida ishlab chiqiladi va keyin birlashtirilib to‘liq dastur hosil qilinadi. Modullar orasidagi o'zaro ta'sir aniq belgilangan interfeyslar bilan cheklangan. Shunday qilib, modulli ilovalar boshqa komponentlarni o'zgartirmasdan o'zgartirilishi mumkin va dasturning xususiyatlarini uning modullari spetsifikatsiyasi va ushbu modullarni bir-biriga bog'laydigan koddan aniqlash mumkin. Modulli ishlab chiqish muvaffaqiyatli qo'llanilganda, dasturning murakkabligi kamayadi va kodni qayta ishlatish osonlashadi.
Determinizm... Algoritm yoki dastur ma'lum bir kirish bilan bajarilganda doimo bir xil natijani beradigan bo'lsa, deterministik hisoblanadi. Agar bir xil kirishga ega bo'lgan bir nechta bajarilishi turli xil natijalarga olib kelishi mumkinligi aniqlanmaydi. Non-determinizm ba'zan foydali va qo'llab-quvvatlanishi kerak bo'lsa-da, deterministik dasturlarni yozishni osonlashtiradigan parallel dasturlash modeli juda ma'qul. Deterministik dasturlarni tushunish osonroq. Bundan tashqari, to'g'riligini tekshirishda parallel dasturning bajarilishining barcha mumkin bo'lganlarini emas, balki faqat bitta ketma-ketligini hisoblash kerak.
|