91_-__ guruh talabasi
______________________
Parallel kompyuterlarning
arxitekturasi va dasturlash
fanidan.
1-Laboratoriya ishi.
Mavzu: Java tilida parallel dasturlash asoslari.
Javada dastur ishlab chiquvchilarga ko'p yadroli arxitekturalardan foydalanadigan va Java kodining samaradorligini oshiradigan parallel oqimlarni yaratishga imkon beradi. Parallel oqimda operatsiyalar parallel ravishda bajariladi va parallel oqim yaratishning ikki yo'li mavjud.
parallelStream()To'plamdagi usuldan foydalanish
Usuldan parallel()oqimda foydalanish
Masalan
1
|
Optional calcProd = list1.parallelStream().reduce((a,b) -> a*b));
|
Ushbu kodda parallel oqim olinadi list1va uni kamaytirish operatsiyasi bajariladi.
Qilmang eslayman , Qarama Daryolarning faqat bilan foydalanish kerak fuqaroligi bo'lmagan , non-to'sqinlik va assotsiativ operatsiyalar , ya'ni
A fuqaroligi bo'lmagan ish bir elementning davlat boshqa elementi ta'sir qilmaydi bo'lgan operatsiya hisoblanadi
A bo'lmagan aralashib operatsiya ma'lumotlar manbai ta'sir bo'lgan operatsiya hisoblanadi
An assotsiativ operatsiya natijasi operanddan buyrug'i bilan ta'sir emas, qaysi bir operatsiya bo'lgan
1.1 Java 8-da parallel oqimlar
Keling, stsenariyni ko'rib chiqaylik, sizda xodimlar ro'yxati mavjud va siz ish haqi 15000 dan yuqori bo'lgan xodimlarni sanashingiz kerak. Umuman olganda, ushbu muammoni hal qilish uchun siz har bir xodimning ro'yxatidan o'tib, xodimning ish haqi 15000 dan yuqori bo'lganligini tekshirib ko'rasiz. ketma-ket ketgandan keyin O (N) vaqtni oladi.
Oqimlar bizga ro'yxat bo'yicha parallel ravishda takrorlash uchun moslashuvchanlikni beradi va natijada tezlikni beradi. Java-da oqimli uzatish, agar parallel ravishda aniq aytilmasa, odatiy ravishda ketma-ketlikda bo'ladi . Oqim parallel ravishda bajarilganda, Java ish vaqti bo'limlari bir nechta quyi oqimlarga bo'linadi. Umumlashtiruvchi operatsiyalar iteratsiya qiladi va quyi oqimlarni parallel ravishda qayta ishlaydi va natijalarni birlashtiradi.
Parallel oqimni yaratishni yodda tutish kerak bo'lgan yagona narsa parallelStream()bu to'plamdagi boshqa usulni chaqirish, sukut bo'yicha ketma-ket oqim stream()usul bilan qaytariladi .
1.1.1 Parallel oqimlarning ishlashi oqibatlari
Parallel oqim ham uning afzalliklari kabi teng ishlashga ta'sir qiladi.
Har bir quyi oqim bitta ma'lumotni ishlaydigan va ishlaydigan bitta oqim bo'lganligi sababli, ketma-ket oqim bilan solishtirganda uning ustki qismi bor
Iplararo aloqa xavfli va muvofiqlashtirish uchun vaqt talab etiladi
1.2 Parallel oqimlardan qachon foydalanish kerak?
Ular operatsiya natijasi manba yig'ishda mavjud bo'lgan elementlarning tartibiga bog'liq bo'lmaganda (masalan, oqim yaratiladigan) ishlatilishi kerak.
Parallel oqimlardan umumiy funktsiyalar mavjud bo'lganda foydalanish mumkin
Parallel oqimlar katta o'lchamdagi to'plamlarda tezda iteratsiya qiladi
Agar ishlab chiquvchilar ketma-ket oqimlar bilan bog'liq bo'lsa, parallel oqimlardan foydalanish mumkin
Agar atrof-muhit ko'p oqimli bo'lmasa, Parallel oqim oqim hosil qiladi va yangi kelgan so'rovlarga ta'sir qilishi mumkin
Endi Eclipse Ide-ni oching va men Java8 dasturlashda parallel oqimlarni batafsilroq tushuntirib beraman.
2. Java8 parallel oqimlari namunasi
2.1 Amaldagi vositalar
Biz Eclipse kislorodidan, JDK 1.8 va Maven-dan foydalanmoqdamiz.
Loyihaning tuzilishi
Birinchidan, kelgusida tegishli fayllar yoki papkalarni qayerda yaratish kerakligi haqida adashgan bo'lsangiz, loyihaning yakuniy tuzilishini ko'rib chiqamiz!
2-rasm: Loyihaning tuzilishi
2.3 Loyihani yaratish
Ushbu bo'limda Java asosidagi Maven loyihasini Eclipse yordamida qanday yaratishni ko'rsatamiz. Eclipse IDE-ga o'ting File -> New -> Maven Project.
3-rasm: oqimli loyihasini yarating
New Maven Project oynasida u sizdan loyihaning joylashuvini tanlashingizni so'raydi. Odatiy bo'lib, "Standart ish joyidan foydalanish" tanlanadi. 'Oddiy loyihani yaratish (arxetipni tanlashni o'tkazib yuborish)' katagiga belgi qo'ying va oldinga o'tish uchun shunchaki keyingi tugmani bosing.
4-rasm: Loyiha haqida ma'lumot
U sizdan "loyiha uchun guruhga va artefakt idiga kirishingizni" so'raydi. Tafsilotlarni quyidagi rasmda ko'rsatilgandek kiritamiz. Versiya raqami sukut bo'ladi: 0.0.1-SNAPSHOT.
5-rasm: Arketip parametrlari
Finish tugmachasini bosing va ishlangan loyihani yaratish tugallanadi. Agar ko'rsangiz, u bog'liq bog'liqlikni yuklab oldi va pom.xmlfayl yaratiladi. U quyidagi kodga ega bo'ladi:
Ishlab chiquvchilar o'zlari xohlagan qaramlikni qo'shishni boshlashlari mumkin. Ilovani qurishni boshlaymiz!
Do'stlaringiz bilan baham: |