Vazifa parallelligi - Task parallelism

Vazifa parallelligi (shuningdek, nomi bilan tanilgan funktsiya parallelligi va parallellikni boshqarish) shaklidir parallellashtirish ning kompyuter kodi ko'p sonli bo'ylab protsessorlar yilda parallel hisoblash atrof-muhit. Vazifa parallelligi tarqatishga qaratilgan vazifalar - ayni paytda jarayonlar yoki iplar - turli xil protsessorlar bo'ylab. Aksincha ma'lumotlar parallelligi bir xil vazifani ma'lumotlarning turli tarkibiy qismlarida bajarishni o'z ichiga olgan vazifa parallelligi bir xil ma'lumotlarda bir vaqtning o'zida juda ko'p turli xil vazifalarni bajarish bilan ajralib turadi.[1] Vazifalar parallelligining keng tarqalgan turi quvur liniyasi har bir vazifa boshqalardan mustaqil ravishda bajarishi mumkin bo'lgan bir qator alohida vazifalar orqali bitta ma'lumot to'plamini ko'chirishdan iborat.

Tavsif

Ko'p protsessorli tizimda har bir protsessor bir xil yoki turli xil ma'lumotlarda har xil ish zarrachasini (yoki jarayonini) bajarganda vazifa parallelligi erishiladi. Mavzular bir xil yoki boshqa kodni bajarishi mumkin. Umuman olganda, turli xil ijro etuvchi iplar ishlash paytida bir-birlari bilan aloqa qilishadi, ammo bu shart emas. Aloqa odatda a-ning bir qismidan ikkinchisiga ma'lumotlarni uzatish orqali amalga oshiriladi ish oqimi.[2]

Oddiy misol sifatida, agar tizim 2 protsessorli tizimda kod ishlayotgan bo'lsa (CPU "a" & "b") a parallel va biz "A" va "B" vazifalarini bajarishni xohlaymiz, protsessor "a" ga "A" va "b" protsessorlariga bir vaqtning o'zida "B" topshiriqlarini bajarishini aytsa bo'ladi va shu bilan ishlash vaqti ijro etilishi. Vazifalar yordamida tayinlash mumkin shartli gaplar quyida tasvirlanganidek.

Vazifa parallelligi ma'lumotlardan farqli o'laroq (ya'ni iplar) ishlov berishning taqsimlangan (parallel) xususiyatini ta'kidlaydi (ma'lumotlar parallelligi ). Haqiqiy dasturlarning aksariyati vazifalar parallelligi va ma'lumotlar parallelligi o'rtasidagi doimiylikka bog'liq.[3]

Ip darajasidagi parallellik (TLP) bo'ladi parallellik bir nechta ishlaydigan dasturga xosdir iplar birdaniga. Parallellikning bunday turi asosan tijorat uchun yozilgan dasturlarda uchraydi serverlar ma'lumotlar bazalari kabi. Bir vaqtning o'zida ko'plab ish zarrachalarini ishga tushirish orqali ushbu dasturlar yuklarni ko'tarilishi mumkin bo'lgan kirish-chiqish va xotira tizimining kechikishiga bardosh bera oladi - bitta ip xotira yoki diskka kirishni kutish kechiktirilsa, boshqa ish zarrachalari foydali ish qilishlari mumkin.

Ip darajasidagi parallellikning ekspluatatsiyasi, shuningdek, paydo bo'lishi bilan ish stoli bozoriga kira boshladi ko'p yadroli mikroprotsessorlar. Buning sababi shundaki, turli sabablarga ko'ra soat tezligini yoki bitta yadro soatiga ko'rsatmalarni oshirish tobora amaliyroq bo'lib qoldi. Agar ushbu tendentsiya davom etsa, potentsial hisoblash quvvatining o'sishidan foyda olish uchun bir nechta mavzulardan foydalanish uchun yangi dasturlar ishlab chiqilishi kerak. Bu avvalgi mikroprotsessor yangiliklariga qarama-qarshi bo'lib, mavjud kodni yangi / tezroq kompyuterda ishga tushirish orqali avtomatik ravishda tezlashtirildi.

Misol

The psevdokod Quyida vazifa parallelligi tasvirlangan:

dastur: ... agar CPU = "a" bo'lsa, u holda "A" topshirig'ini bajaring, agar CPU = "b" bo'lsa, u holda "B" vazifasini bajaring, agar ... tugatish dasturi

Dasturning maqsadi aniq umumiy vazifani bajarishdir ("A + B"). Agar biz kodni yuqoridagi kabi yozsak va uni 2 protsessorli tizimda ishga tushirsak, u holda ish vaqti muhiti uni quyidagicha bajaradi.

  • In SPMD (bitta dastur, bir nechta ma'lumotlar) tizimi, ikkalasi ham CPU kodni bajaradi.
  • Parallel muhitda ikkalasi ham bir xil ma'lumotlarga ega bo'lishadi.
  • "Agar" bandi protsessorlarni ajratib turadi. CPU "a" "if" da to'g'ri o'qiydi va "b" protsessor "else if" da to'g'ri o'qiladi va shu bilan o'z vazifalariga ega bo'ladi.
  • Endi ikkala protsessor bir vaqtning o'zida turli xil vazifalarni bajarib, alohida kod bloklarini bajaradi.

Kod "a" protsessori tomonidan bajarilgan:

dastur: ... "A" vazifasini bajaring ... yakuniy dastur

CPU "b" tomonidan bajarilgan kod:

dastur: ... "B" vazifasini bajaring ... yakuniy dastur

Ushbu kontseptsiya endi istalgan miqdordagi protsessorlarda umumlashtirilishi mumkin.

Tilni qo'llab-quvvatlash

Vazifalar parallelligini umumiy maqsadlar uchun mo'ljallangan tillarda yoki o'rnatilgan binolarda yoki kutubxonalarda qo'llab-quvvatlash mumkin. Taniqli misollarga quyidagilar kiradi:

Vazifadagi parallel tillarning misollarini ushbu sohada topish mumkin Uskuna ta'rifi tillari kabi Verilog va VHDL.

Shuningdek qarang

Adabiyotlar

  1. ^ Reinders, Jeyms (2007 yil 10 sentyabr). "Vazifa va ma'lumotlar parallelligini tushunish | ZDNet". ZDNet. Olingan 8 may 2017.
  2. ^ Kvinn, Maykl J. (2007). MPI va openMP bilan C da parallel dasturlash (Tata McGraw-Hill tahr.). Nyu-Dehli: Tata McGraw-Hill pab. ISBN  978-0070582019.
  3. ^ Xiks, Maykl. "Muvofiqlik asoslari" (PDF). Merilend universiteti: kompyuter fanlari bo'limi. Olingan 8 may 2017.