Laboratoriya ishi №1
C++ dasturlash tilining PPL kutubxonasi bilan tanishish va uning
yordamida parallel dasturlar tuzush.
1.Ishni bajarishdan maqsad:
Parallelashtirishning maxsus kutubxonalridan
biri bo’lgan ppl kutubxonasi haqida nazariy bilimlarga ega bo’lish
va ppl
kutubxonasidan foydalangan holda parallel tasturlar tushush ko’nikmasini
shakllantirish.
2.Nazariy qisim
Parallel Patterns Library (PPL) parallellashtirish kutubxonasi bir vaqtda
dasturlarni ishlab chiqish uchun keng ko'lamli va qulay foydalanishni ta'minlaydigan
majburiy dasturiy modeli taqdim etadi. PPL
Concurrency
Runtime
ning
rejalashtirish va resurslarni boshqarish qismlariga asoslanadi. Bu parallel ravishda
ma'lumotlar ustida parallel ishlaydigan algoritm va maxsus konteynerlarni taqdim
etish orqali dastur bajalishini parallel bajarilishini ta’minlab beradugan c++ tadqim
qilgan kutubxona hisoblanadi.
PPL quyidagi xususiyatlarni taqdim etadi:
•
Vazifa parallelizmi: Bir nechta ish elementini (vazifalarini) parallel ravishda
bajarishni Windows ThreadPool ustida ishlatadigan mexanizmni yaratish;
•
Parallel algoritmlar: Parallel algorintmlarni generatsiya qilish,
parallel
ravishda ishlash uchun o'zaro bir vaqtda ishlaydigan umumiy algoritmlarni
yaratish.
•
Parallel konteynerlar va ob’yektlar: Maxsus konteynerlar va maxsus obyektlar
ustida parallel algoritmlar
asosida ishlov berish
Parallel Patterns Library (PPL) bir vaqtning o'zida ma'lumotlarni to'plash
bo'yicha ishlarni amalga oshiradigan algoritmlarni taqdim etadi. Ushbu algoritmlar
C ++ standart kutubxonasi tomonidan taqdim etilganlarga o'xshaydi. Parallel
algoritmlar
Concurrency
Runtime da mavjud funktsiyalardan iborat. Bularga misol
qilib quyida parallel_for va parallel_for_each algorimlarini ko’rib chiqamiz.
Parallel_for algoritmi.
Parallel_for algoritmi
parallel ravishda bir xil
vazifani bajaradi. Ushbu vazifalarning har biri iteratsiya qiymati bilan
parametrlangan. Ushbu algoritm sizga iteratsiyalari o'rtasida
resurslarni
taqsimlamaydigan masalalarni parallel yechishda yordam beradi.
Parallel_for algoritmi parallel bajarish uchun optimal tarzda ishlaydi.
Parallel_for algoritmi ichki parallelizmni ham qo'llab-quvvatlaydi. Ya’ni har bir
itaratsiyada parallel bajaraliadigan bir nechta masalalarni bajarishimiz mumkin.