ko'paytirishning ishlash ta'rifidan boshlab, C matritsasining barcha elementlarini
hisoblash bir-biridan mustaqil ravishda bajarilishi mumkin. Natijada, parallel
hisoblashni tashkil qilishning mumkin bo'lgan yondashuvi, natijada paydo
bo'ladigan matritsaning bir elementini asosiy subtask sifatida aniqlash uchun
foydalanishdan iborat bo'lib, barcha kerakli hisob-kitoblarni bajarish uchun har bir
subtaskada bir qator matritsa va bitta matratik B matritsasi bo'lishi kerak. subtask n2
Taklif etilgan yondashuvni ko'rib chiqib, shuni ta'kidlash joizki, erishilgan
parallellik darajasi ko'p hollarda ortiqcha emas. Odatda, amaliy hisob-kitoblarni
amalga oshirayotganda, bunday subtaskalar mavjud bo'lgan protsessorlarning
sonidan kattaroq va asosiy vazifalarni muqarrar ravishda kengaytirish bosqichini
belgilaydi. Shu munosabat bilan, hisob-kitoblarni yig'ish asosiy subtaskalarni
tanlash bosqichida allaqachon foydali bo'lishi mumkin. Mumkin bo'lgan eritma bir
subtaskada birma-bir emas, balki natijada paydo bo'lgan matritsaning bir necha
elementlari bilan birlashtirilishdan iborat bo'lishi mumkin. Keyinchalik ko'rib
chiqish uchun biz asosiy matritsani C matrisi satrlaridan birining barcha
elementlarini hisoblash uchun protsedurani aniqlaymiz. Bu yondashuv umumiy
sonni kamaytiradi subtasks n qiymatiga teng.
Asosiy subtaskaning barcha kerakli hisob-kitoblarini bajarish uchun matris A
satriga va B matritsasining barcha ustunlariga ega bo'lishi kerak.Bu muammoning
oddiy echimi - barcha subtasklardagi B matritsasining takrorlanishi - odatda xotira
yuki tufayli qabul qilinishi mumkin emas. Shuning uchun hisob-kitoblarni tashkil
qilish har bir joriy vaqtning o'zida pastki vazifalar hisob-kitoblarni amalga oshirish
uchun zarur bo'lgan ma'lumotlarning faqatgina bir qismini o'z ichiga oladigan tarzda
tuzilishi va boshqa ma'lumotlarga kirish protsessorlar o'rtasida ma'lumotlar
uzatilishi bilan ta'minlanishi kerak.
Matritsani lentali taqsimlash algoritmi sxemasi
Ushbu amaliy ishda matritsalarni ko'paytirish amaliyotini bajarish uchun
uchta parallel usulni nazarda tutadi. Birinchi algoritm protsessorlar orasidagi
matritsalarni ajratishga asoslangan. Ushbu algoritmning ikki xil versiyasini taqdim
etadi. Algoritmning birinchi varianti ko'paytirilgan matritsaning turli bo'linmalariga
asoslanadi - birinchi matris (matritsa) gorizontal chiziqlarga bo'linadi va ikkinchi
matritsa (matris B) vertikal chiziqlar bo'lib bo'linadi. Ip algoritmining ikkinchi
variantida matritsaning gorizontal chiziqlarga bo'lishini qo'llaydi.
Xulosa
1. Matritsani ko’paytirishda parallel usullardan foydalanish vaqtni tejaydi
2. Matritsa elementlarini taqsimlashni lentali gorizantal, vertical va blokli
usullari bor