G‘afarov, A. F. Galimyanov parallel hisobiyotlar qo'llanma Qozon


Download 1.46 Mb.
bet44/85
Sana24.12.2022
Hajmi1.46 Mb.
#1062519
1   ...   40   41   42   43   44   45   46   47   ...   85
Bog'liq
ParVychGafGal (1)

Parallel ForEach Loop

Parallel ForEach tsikli parallel versiyani taqdim etadi standart ketma-ket foreach tsikli. Har bir iteratsiya jarayonlari
kollektsiyadan bitta element. Biroq, pastadirning parallel tabiati shuni anglatadi turli protsessorlarda bir vaqtning o'zida bir nechta iteratsiya ishlashi mumkin
yoki protsessor yadrolari.

Loopning parallel versiyasi statik ForEach usulidan foydalanadi parallel sinf . Ushbu usulning juda ko'p yuklangan versiyalari mavjud. Eng oddiy ikkita dalilni oladi. Birinchisi - ob'ektlar to'plami,


ro'yxatga kiritilishi. Bu har qanday to'plam bo'lishi mumkin
IEnumerable ni amalga oshiradi .
73

Machine Translated by Google
Ikkinchi parametr delegatdir, odatda lambda ifodasi sifatida ifodalanadi, har biri uchun qilinadigan harakatni belgilaydi
to'plamdagi element. Delegat parametri to'plamdagi elementni o'z ichiga oladi, iteratsiya paytida qayta ishlanishi kerak.
E'tibor bering, tsiklning tanasi endi bayonotning tanasi hisoblanadi lambda va to'plam usulning birinchi parametriga o'tkaziladi.
Parallel.ForEach(Enumerable.Range(1, 10), i =>
{


Console.WriteLine("{0} - {1}", i, GetTotal());
});

      1. Parallel halqalarni bajarish

C# tomonidan taqdim etilgan barcha standart tsikllar , ya'ni foreach tsikllari va while yordamida loopdan erta chiqish imkonini beradi
buzish buyrug'i . Ushbu bayonotga duch kelganda, tsikl to'xtaydi. darhol, qolgan iteratsiyalar bekor qilinadi va dastur
tsikldan keyingi ko'rsatma bilan davom etadi. Bu holatlarda foydalidir
tsiklni davom ettirish samarasiz bo'lganda. Misol uchun, agar siz to'plamni takrorlayotgan bo'lsangiz ma'lum bir elementni qidirish uchun qiymatlar, qachon tsikldan chiqishingiz mumkin element topildi.
Parallel halqalar bilan ishlayotganingizda, undan chiqish oson emas, ketma-ket tsikllarda bo'lgani kabi. Chunki tsiklning bir nechta takrorlanishi mumkin parallel ravishda bajarilishi, bitta protsessorda bir iteratsiyadan chiqish ishlayotgan boshqa iteratsiyalar bilan sinxronlashtirilishi kerak
boshqa yadrolar. Agar parallel operatsiyalar to'xtatilgan bo'lsa, bu mumkin ma'lumotlar mos kelmaydigan holatda qoladi, shuning uchun boshqa iteratsiyalar ishlashda davom etadi. Siz qila oladigan birinchi muammo
Encounter - bu bilan ishlatiladigan break buyrug'i

Buning parallel versiyalari uchun ketma-ket tsikllar mavjud emas


74
Machine Translated by Google
usuli. Parallel aylanishlar tufayli uzilish buyrug'i mavjud emas
statik sinf usullari bilan ta'minlanadi Parallel, tilning bir qismi sifatida emas C#. Tanaffus buyrug'i faqat C# kalit so'zi bilan ishlaydi
C# tsikllari uchun parallel bo'lmagan.
Parallel halqalarning iteratsiyasini muvofiqlashtirish, shu jumladan chiqish bu ko'chadan kerak bo'lganda foydalanishimiz kerak

Download 1.46 Mb.

Do'stlaringiz bilan baham:
1   ...   40   41   42   43   44   45   46   47   ...   85




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling