Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК Параллель багдарламалау.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.47 Mб
Скачать

5.2 Parfor операторы. Ерекшеліктері

Сабақ мақсаты: студенттерді PARFOR операторы және оның ерекшеліктерімен таныстыру.

Негізгі түсініктер: Parfor операторы, компьютерлердің барлық ядроларын қолдану, MatLabPool, workers, labs.

Әдебиеттер: [3,7]

5.1 MATLABPOOL

Параллельді цикл ретінде parfor немесе spmd параллельді блогы қолданылады. Бұл жұмыста біз, parfor параллельді циклін қарастырамыз. parfor параллельді циклін немесе spmd параллельді блогы қажетті жұмыс процессорын бөледі (workers немесе labs).

Пул (matlabpool) – параллельді есептеулерді орындау үшін клиентпен алдын-ала сақталынған бірнеше лабораториялар(labs).

Ұсынылып отырған лабораториялық жұмыста біз, parfor циклін қарастырамыз.

Matlab жүйесінің терезесіндегідей өз программасының орындалуын JobMonitor дың көмегімен (Parallel мәзірінің көмегімен), бақылауға мүмкіндік бар.

Пуланың анық тапсырмасы matlabpool командасының көмегімен, Matlab терезесінде жұмыс істегенде көрінуі мүмкін. Белгіленген процессорлардың саны мен уақыты параллельді конфигурацияға тәуелді. Біздің жағдайда, конфигурацияның атауы mpc, ал процессорлардың саны – 4 (әр поцессорде 2 ядродан).

Matlabpool –параметрсіз команда және кему бойынша орнатылған конфигурацияны қолдану.

Пул өлшемінің тапсырмасына мысалы:

matlabpoolopen 28

Кластердегі қол жетімді максималды жұмыс процессорының шамасын ескеру қажет. Егер жұмыс прцессорлары жеткіліксіз болса, онда есепті орындау JobN атауымен беріледі, мұндағы N=1,2,…

Егер жұмыс процессорлары жеткілікті болса, пул ашық болады. Пулдың көлемін matlabpoo lsize командасы арқылы анықтауымызға болады.

Пулмен жұмысты аяқтаған соң, оны matlabpool close командасының көмегімен жабуға болады.

5.2 Parfor операторы. Ерекшеліктері

Parfor операторы компьютердің барлық локальды ядроларын қолданғанда өте қолайлы (сурет 29). Негізгі түсініктер 2-кестеде көрсетілген.

Сурет 29 - Parfor операторын қолдану

Parfor операторында айнымалылыарды қолдану MatLab жүйесінде шектеулер қояды.

MatLab-тың айнымалылары мынадай типтер бойынша топтастырылады:

- temporary;

- reduction;

- slicedinput;

- slicedoutput және т.б.

2-кесте – parfor циклінің негізгі түсініктері

1

MATLAB-ғыparforциклініңнегізгітүсінігістандарт for цикліндегідей болады:MATLABмағына диапазонында бірқатар операцияларды орындайды.

2

Parfor циклінің затының бөлігі MATLAB клиентінде орындалады (мұндаparforенгізілген), жәнебасқабірбөлігіпараллельнемесежарыспалытүрде MATLAB жұмысшысында орындала береді.

3

parfor өңдейтін маңызды деректер клиенттерден жұмыскерлерге жіберіледі, сол жерде есептеулердің көбі жүргізіледі де, шыққан нәтиже қайтадан клиентке жіберіледі және біріктіріледі.

4

parfor дене циклының әрбір орындалуы бұл - итерация. MATLAB жұмысшылары бір-бірінен тәуелсіз түрде итерация жүргізеді. Барлық итерациялар тәуелсіз, итерациялардың синхронизациялануының ешқандай кепілдігі жоқ және қажеттілігі де жоқ.

5

Қарапайым интерацияларды орындау мүмкіндігі бар жерде parfor циклі пайдаға асады. Parfor итерация циклын әрбір жұмысшы итерацияның ортақ санының кейбір бөлігін қоса орындайтындай етіп екі топқа бөледі.

6

итерацияның орындалуы көп уақыт талап еткендеparfor циклы аса пайдалы, себебі жұмысшылар итерацияны бір мезгілде жасай алады.

7

Циклитерацияларыбасқалардың қорытындысына тәуелді болғанда parforциклын қолдануға болмайды.

8

Әрбір итерация басқаларға тәуелсіз болу керек. Уақыттың жарым бөлігі коммуникацияға кететіндіктен, бұл циклды қарапайым есептеулерге қолдану мүддеге сай келмейді. Коммуникация кезінде жүйе автоматты түрде zip-архивке жұмыс файлдарын жинақтайды және оны жұмыс үдерістерінің тиісті сессияларында қолдануға мүмкіндік береді.

Әрбір типке кейбір шектеулер қолданылады, мысалы: loop-ауысымының мәнін цикл ішінде модификациялауға тыйым салынады.

Негізінде, егер бір итерация басқалардың нәтижесіне бағынышты болса, ондай циклды parfor-да өңдеу мүмкіндігі болмайды [12,13].

Келесі мысал тізбекті (сол жақ) және параллель (оң жақ) циклдарды көрсетеді:

for k = 1:8

A(k) = k;

end

A

parfor k = 1:8

A(k) = k;

end

A

Бақылау сұрақтары:

  1. Рarfor операторының қызметі.

  2. Рarfor циклының затындағы ауысымды қолдануда қандай шектеулер қолданылады?

  3. Рarforциклында ауысым классификациясын белгілеу.

  4. Рarforциклын қолдануға мысал келтіріңіз.

  5. Рarfor тәуелді итерацияларда қалай болар еді?

Тұжырым: MatLabPool, Parfor операторы және оның ерекшеліктері қарастырылды, сонымен бірге практикалық ортада жүзеге асрылуы туралы мысалдармен келтірілді.

Дәрістің тақырыбы 6: Кластерді баптау

Жоспар: