Ki talabasi azimov sherxonning kompyuter arxitekturasi fanidan oraliq nazorati


Download 70.64 Kb.
Sana02.12.2020
Hajmi70.64 Kb.

217-18 KI talabasi AZIMOV SHERXONNING KOMPYUTER ARXITEKTURASI FANIDAN ORALIQ NAZORATI

14-variant

Ko‘p yadroli protsessorlar turlari va hususiyatlari

OpenMP paketi yordamida parallel dasturlash.

Ko'p yadroli protsessor bitta protsessor chipida yoki bitta paketda 2 yoki undan ko'p hisoblash yadrosini o'z ichiga olgan markaziy protsessor hisoblanadi.

Intel korporatsiyasi tomonidan 1971 yil 15-noyabrda birinchi (albatta, bitta yadroli!) Intel 4004 protsessori ishga tushirildi. U 2300 tranzistorni o'z ichiga olgan, 108 kHz soat chastotasida ishlagan va 300 dollar turadi.

Markaziy mikro protsessorning hisoblash quvvati talablari tobora o'sib bormoqda va o'sishda davom etmoqda. Ammo oldin protsessor ishlab chiqaruvchilari kompyuter foydalanuvchilari tomonidan amalga oshiriladigan tezkor (har doim o'sib borayotgan!) Talablarga moslashtirishi kerak bo'lsa, hozirda chiplar ishlab chiqaruvchilari uzoq yo'l oldilar!

Uzoq vaqt davomida an'anaviy hosildorlik yagona yadroli protsessorlar   asosan soat chastotasining ketma-ket o'sishiga (protsessor ishlashining qariyb 80 foizi soat chastotasi bilan aniqlangan) va bir chipda tranzistorlar soni bir vaqtning o'zida ko'payishi natijasida yuzaga keldi. Shu bilan birga, soat chastotasining navbatdagi tezligi (3.8 gigagertsli soat chastotasi, chiplar o'ta qizib ketgan!) Bir qator fundamental fizik to'siqlarga asoslangan (chunki texnologik jarayonlar atom darajasiga juda yaqin: bugungi kunda protsessorlar 45nm texnologiyasidan foydalanib ishlab chiqarilgan va silikon atomining hajmi taxminan 0.543 nm):

* Birinchidan, kristall o'lchamlari va ortib borayotgan soat chastotasi bilan tranzistor oqimining oqimi ortadi. Bu esa energiya sarfini oshirish va issiqlik chiqindilarining oshishiga olib keladi;

* ikkinchidan, xotiraga kirishning kechikishlaridan kelib chiqqan holda, yuqori chastotali soat tezligi afzalliklari qisman bekor qilinadi, chunki xotiradan foydalanish vaqti soatning chastotalarigacha mos kelmaydi;

* Uchinchidan, ba'zi ilovalar uchun an'anaviy ketma-ket arxitektorlar "von Neumann darboğazi" deb ataladigan soat chastotasining ortishi bilan samarasiz bo'lib qoladi - ketma-ket hisoblash oqimlari natijasida ishlash cheklovlari. Bu signal chastotasining ortishi bilan bog'liq bo'lgan qo'shimcha darboğaz bo'lgan signal uzatishni kuchaytiruvchi kechikishlarini oshiradi.

Ko'p protsessorli tizimlardan foydalanish ham keng tarqalgan emas, chunki u murakkab va qimmatli ko'p protsessorli anakartlarni talab qiladi. Shuning uchun mikroprotsessorlarning ishlashini boshqa yo'llar bilan yanada takomillashtirishga qaror qilindi. Superkompyuterlar dunyosidan kelib chiqqan ko'p tarmoqli kontseptsiya eng samarali yo'nalish sifatida tan olingan - bir nechta buyruqlar oqimlarining parallel ishlashi.



Parallel dasturlash ketma-ketlikda qo'llaniladi. Dastur bajarilish vaqtini yoki ketma-ketligini qisqartirishi kerak dastur, ma'lumotlarning katta hajmini hisobga olgan holda, bittasining xotirasiga kirishni to'xtatadi kompyuter.

Yuqori samarali hisoblash sohasida rivojlanish yo'nalishi adolatli. Ushbu ikkita muammoni hal qilishga qaratilgan: bilan kuchli hisoblash tizimlarini yaratish bir tomondan katta miqdordagi RAM va tegishli dasturiy ta'minotni ishlab chiqish boshqasi bilan. Asosan, hamma savol narxlar / ishlash nisbati minimallashtirish bilan bog'liq. Axir, har doim samarali bo'lgan hisoblash tizimini qurish (yig'ish) mumkin muammoni hal qiling, ammo bunday echimning narxi etarli bo'ladimi. Mumkin kompyuter texnologiyalari rivojlanishining ikkita yo'nalishini ajratib ko'rsatish: vektorli mashinalar (Cray) va klasterlar (oddiy kompyuterlar, standart dasturiy ta'minot). Parallel dasturlarni yozish Parallel dasturlarni ishlab chiqish (PP) uchta asosiy bosqichdan iborat: Vazifani pastki topshiriqlarga ajratish. Ideal holda, ushbu kichik topshiriqlar mustaqil ravishda ishlaydi bir-biridan (ma'lumotlar mahalliyligi printsipi). Subtasklar o'rtasida ma'lumotlar almashinuvi qimmat operatsiya, ayniqsa, bu tarmoq almashinuvi bo'lsa.

Vazifalarni protsessorlar o'rtasida taqsimlash (virtual protsessorlar). Ba'zi hollarda ushbu masala PP ish vaqtining ixtiyoriga topshirilishi mumkin. Qandaydir parallel kutubxonadan foydalanib dastur yozish. Tanlash kutubxonalar dastur ishlaydigan platformaga bog'liq bo'lishi mumkin. Talab qilinadigan ishlash darajasi va vazifaning o'zi. Parallel arxitektura Ko'pincha, barcha hisoblash tizimlari va kompyuterlar uch guruhga bo'linadi: Tarqatilgan xotira tizimlari. Har bir protsessor o'z xotirasiga ega va qila olmaydi to'g'ridan-to'g'ri boshqa protsessorning xotirasiga kirish. Bunday tizimlar uchun dasturlarni ishlab chiqishda dasturchi barchasini aniq belgilashi kerak aloqa tizimi (Xabarlarni uzatish). Kutubxonalar: MPI, PVM, Shmem (faqat Cray).

Umumiy (umumiy) xotiraga ega tizimlar. Protsessor to'g'ridan-to'g'ri kirishi mumkin boshqa protsessorning xotirasi. Protsessorlar bitta avtobusda (SMP) o'tirishi mumkin. Umumiy xotira jismonan ajratilishi mumkin, ammo keyinchalik masofadan boshqarish pultiga kirish narxi xotira juda yuqori bo'lishi mumkin va buni dasturiy ta'minot dizaynerlari hisobga olishlari kerak.

Dasturiy ta'minotni ishlab chiqish yondashuvlari: Mavzular, kompilyator ko'rsatmalari (OpenMP), uzatish mexanizmi

xabarlar.

OpenMP


OpenMP-ga kirish

OpenMP - umumiy xotira tizimlari uchun parallel dasturlarni yozish mexanizmi. Tuzuvchi direktivalari va kutubxona funktsiyalari to'plamidan iborat. C / C ++, Fortran-da osongina ko'p tarmoqli dasturlarni yaratishga imkon beradi. Uskuna ishlab chiqaruvchilari (Intel, HP, SGI, Sun, IBM), ishlab chiquvchilar tomonidan qo'llab-quvvatlanadi kompilyatorlar (Intel, Microsoft, KAI, PGI, PSR, APR, Absoft)

OpenMP dasturlash modeli

Asosiy ip kerak bo'lganda bolalar iplarini tug'diradi.

Fork-join modeli.

Dastlabki kodning muhim nuqtalariga kompilyator ko'rsatmalarini kiritish orqali dasturlash



dasturlar. Tuzuvchi ushbu direktivalarni sharhlaydi va tegishli joylarga kiritadi dastur kutubxonasi kod bo'limlarini parallellashtirishga chaqiradi.

Direktiv uchun #Pragma omp parallel bu ko'chadan bo'linish kerakligini bildiradi iplar orasidagi takrorlash orqali.

Mavzular soni dasturdan yoki ish vaqti davomida boshqarilishi mumkin dasturlar - muhit o'zgaruvchisi OMP_NUM_THREADS. Shuni ta'kidlash kerakki, ishlab chiquvchi ipni sinxronlashtirish va qaramlik uchun javobgardir ma'lumotlar o'rtasida.

Dasturni OpenMP ko'magi bilan kompilyatsiya qilish uchun kompilyator kerak qo'shimcha kalitni ko'rsating:



OpenMP


OpenMP-ga kirish

OpenMP - umumiy xotira tizimlari uchun parallel dasturlarni yozish mexanizmi.

Tuzuvchi direktivalari va kutubxona funktsiyalari to'plamidan iborat.

C / C ++, Fortran-da osongina ko'p tarmoqli dasturlarni yaratishga imkon beradi.

Uskuna ishlab chiqaruvchilari (Intel, HP, SGI, Sun, IBM), ishlab chiquvchilar tomonidan qo'llab-quvvatlanadi kompilyatorlar (Intel, Microsoft, KAI, PGI, PSR, APR, Absoft)

Fork-join modeli.

Dastlabki kodning muhim nuqtalariga kompilyator ko'rsatmalarini kiritish orqali dasturlash

dasturlar. Tuzuvchi ushbu direktivalarni sharhlaydi va tegishli joylarga kiritadi dastur kutubxonasi kod bo'limlarini parallellashtirishga chaqiradi.



Direktiv uchun #Pragma omp parallel bu ko'chadan bo'linish kerakligini bildiradi iplar orasidagi takrorlash orqali.

Mavzular soni dasturdan yoki ish vaqti davomida boshqarilishi mumkin dasturlar - muhit o'zgaruvchisi OMP_NUM_THREADS. Shuni ta'kidlash kerakki, ishlab chiquvchi ipni sinxronlashtirish va qaramlik uchun javobgardir ma'lumotlar o'rtasida.

Dasturni OpenMP ko'magi bilan kompilyatsiya qilish uchun kompilyator kerak qo'shimcha kalitni ko'rsating:





Oqimlar qanday o'zaro ta'sir qiladi? Umumiy xotira modelida ish zarrachalari birgalikda foydalaniladi o'zgaruvchilar. Dasturda bunday o'zgaruvchilarga beparvolik bilan munosabatda bo'lgan taqdirda, poyga holati yuzaga keladi. Bu oqimlarning kelib chiqishi bilan bog'liq parallel ravishda bajariladi va shunga muvofiq umumiy foydalanishga kirishning ketma-ketligi o'zgaruvchilar bir dasturdan boshqasiga o'tishi bilan farq qilishi mumkin. Raqobatdagi xatolarni boshqarish uchun iplarning ishi sinxronlashtirilishi kerak. Uchun sinxronizatsiya ibtidoiylari, masalan, muhim bo'limlar, to'siqlar, atom operatsiyalari va qulflar 1. Shuni ta'kidlash kerakki, sinxronizatsiya talab qilinishi mumkin qo'shimcha qo'shimcha xarajatlar dasturidan va o'ylash va tarqatish yaxshiroqdir sinxronlash punktlari soni minimallashtirilishi uchun ma'lumotlar.
Download 70.64 Kb.

Do'stlaringiz bilan baham:




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