2010 Yil, T. 2, № 3, P. 231-272 236
Va Karpov
Yana bir yondashuv hisob-kitoblarni turli ijrochilar tomonidan bajarilishi uchun javobgarlik zonalariga ajratish
va ushbu hisob-kitoblar bilan bog'liq ma'lumotlarni aniqlashni o'z ichiga
oladi. Bu hisob-kitoblar bo'yicha dekompozitsiya (funktsional ajralish).
Ajralish har doim ham mumkin emas.
Bir nechta ijrochilarning ishtirokini amalga oshirishda printsipial jihatdan ruxsat bermaydigan algoritmlar mavjud.
5. Ishlarni tayinlash (assignment). Dekompozitsiya bosqichining muvaffaqiyatli yakunlanganidan keyin-
goritm
-alohida ijrochilar tomonidan kichik vazifalarni hal qilishga qaratilgan bir qator harakatlar to'plamidir. Bir to'siqning harakat
to'plamlari bir vaqtning o'zida va mustaqil ishlashga imkon beradi. To'plamlar turli
xil to'plamlarni o'z ichiga olishi va shunga mos ravishda turli xil
ijrochilar tomonidan amalga oshirilishi mumkin. Bir qism mavjud bo'lishi mumkinbir qator va
faqat bitta protsessor (yadro) talab qiladi.
Aslida, mavjud yadrolarning soni har doim cheklangan. Ushbu bosqichda
siz qancha san'atkorni ishlatmoqchi ekanligingizni va
kichik topshiriqlarni ijrochilarga qanday taqsimlashni aniqlashingiz kerak. Sub-vazifalarni tayinlashning asosiy maqsadlari
protsessorlarni (yadrolarni) yuklashni muvozanatlash, ular o'rtasidagi ma'lumotlar almashinuvini kamaytirish va
maqsadga erishish uchun xarajatlarni kamaytirishdir. Vaqti-vaqti bilan tayinlash usullari
ikki toifaga bo'linadi:
* statik-tarqatish yozma, kompilyatsiya yoki yozish bosqichida amalga oshiriladi
dasturning boshlanishi (hisoblashning haqiqiy boshlanishiga qadar);
* dinamik-tarqatish ijro jarayonida amalga oshiriladi.
6. O'tish: saytda harakatlanish, qidiruv Uchrashuv bosqichi tugagandan so'ng biz Co-
uning simfoniyasini bajarish uchun barcha ballarni tayyorlagan bastakorning stendlari. Biroq
, orkestrning oddiy ovozi faqat
individual musiqachilarning faoliyatini sinxronlashtiradigan va o'z uslubini bajaradigan dirijor bo'lsa mumkin.
Dirijyorning harakatlariga o'xshash, men ushbu bosqichning nomini "dirijyorlik"atamasi bilan tarjima qildim.
Uning maqsadi dasturiy modelni tanlash va ijrochilarning kerakli sinxronizatsiyasini aniqlashdir
, bu asosan dasturiy modelga bog'liq bo'ladi.
Keling, parallel hisoblash tizimlarida ishlash uchun dasturiy modellarga batafsil to'xtalib
o'taylik. Dasturiy modellarning tasnifi va nomlari to'liq aniqlanmagan bo'lsa-da
, biz to'rtta asosiy narsani ta'kidlaymiz:
* Izchil model. Bu avvalgi ikki kishiga tupurish orqali noto'g'ri ekanligini ko'rsatadi-
Pa,
keyinchalik avtomatik ravishda kompilyator yoki maxsus dasturiy vositalar bilan parallelizatsiya qilish uchun ketma-ket dasturlash modellaridan birida muntazam ketma-ket dasturni yozasiz
.
Modelning afzalligi — ketma-ket variant bilan solishtirganda ortiqcha ish qilish kerak emas
, kamchilik-avtomatik parallelizatsiya juda cheklangan
imkoniyatlarga ega.
* Xabarlarni uzatish. Ishlaydigan dastur o'z ichiga oladi
har xil manzilli joylar bilan bir qator jarayonlardan, ularning har biri o'z
ijrochisida ishlaydi. Jarayonlar
aniq yuborish/qabul qilish operatsiyalari orqali xabarlarni uzatish orqali muloqot qiladi. Modelning
afzalligi shundaki, dasturchi to'liq nazorat
qiladi muammoni hal qilish, kamchilik-dasturiy qiyinchilikda.
* Modelisiz xotira. Ushbu dastur nining to'plamidan iborat-
ajratilgan o'zgaruvchilar va sinxronizatsiya primitivlaridan foydalangan holda ishlash (thread'ov)
. Ikkita submodel ajratilgan — aniq ijro etuvchi iplar-
mavzu va Pro ishlarini tashkil qilish uchun tizim yoki kutubxona qo'ng'iroqlaridan foydalanish-