|
Signallarga parallel ishlov berish masalalari
|
bet | 13/27 | Sana | 18.05.2024 | Hajmi | 1,16 Mb. | | #242810 |
Bog'liq O‘zbekiston respublikasi axborot texnologiyalari va kommunikatsi
2.1 Masalalarni paralellashtirish va parallel xisoblash usullari.
Dasturlar darajasida masalalarni paralellashtirish. Dasturchilar ketma-ket fikr yuritishi tabiiy va shuning uchun ular ko'p bosqichli yoki parallel ishlov berish dasturlarini yozishni kamroq bilishadi. Parallel dasturlash vaqt va boshni qulflash kabi turli masalalarni ko'rib chiqishni talab qiladi. Ishlab chiquvchilar ushbu dasturlarni yozish uchun qo'shimcha dasturlardan foydalanishlari kerak. Shuning uchun dasturchilar ketma-ket kod yozishni afzal ko'radilar va eng mashhur dasturlash tillari uni qo'llab-quvvatlaydi. Bu ularga dasturga ko'proq e'tibor qaratish imkonini beradi.
Shuning uchun bunday ketma-ket dasturlarni avtomatlashtirilgan vositalar yordamida parallel dasturlarga aylantirish zarurati tug'iladi. Ehtiyoj ham ahamiyatsiz emas, chunki so'nggi bir necha o'n yilliklarda yozilgan katta miqdordagi eski kodni qayta ishlatish va parallellashtirish kerak.
Parallellashtirishning umumiy tartibi
1. Jarayon, dasturchining fikricha, parallel imkoniyatlarga ega bo'lgan kod bo'limlarini aniqlashdan boshlanadi. Ko'pincha bu vazifa boshqacha bo'ladi, chunki kodni parallellashtirishni istagan dasturchi dastlab ushbu kodni yozmagan. Yana bir variant - bu mavzu bo'yicha yangi bo'lgan dasturchi. Shunday qilib, bu parallellashtirish jarayonidagi birinchi qadam bo'lib, dastlab oddiy ko'rinsa ham, unday emas.
2. Keyingi qadam - parallel aniqlangan qismlardan kodlar ro'yxatini qisqartirish. Ushbu bosqich muhimroq va murakkabroq, chunki u katta miqdordagi tahlilni talab qiladi. Odatda C/C++ kodlari uchun bu yerda ko‘rsatkichlarni kiritish qiyin. Kodning boshqa kodlar bilan bog'liqligini aniqlash uchun ko'plab maxsus usullar talab qilinadi, masalan, indikatorning taxallusini tahlil qilish, funktsiyalarning yon ta'sirini tahlil qilish. Agar kodning ma'lum bo'limlarida ko'proq bog'liqliklar mavjud bo'lsa, parallellashtirish imkoniyatlari kamayadi.
3. Ba'zan bog'liqliklar kodni o'zgartirish orqali olib tashlanadi va bu parallellashtirishning keyingi bosqichidir. Kod funktsiya funksiyasiga aylantiriladi, shuning uchun natijada natija o'zgartirilmaydi, lekin agar u mavjud bo'lsa, kodning boshqa bo'limiga yoki boshqa ko'rsatmalarga havola o'chiriladi.
4. Parallellashtirishning oxirgi bosqichi parallel kodni yaratishdir. Ushbu kod har doim ketma-ketlik uchun manba kodiga funktsional jihatdan o'xshaydi, lekin bajarilganda bir nechta oqim yoki jarayonlarni yaratadigan qo'shimcha tuzilmalar yoki kod bo'limlari mavjud.
|
| |