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

8.1 Анықталған интегралды параллель есептеу жолы

Сабақ мақсаты: жұмыс процестерінде интегралды анықтау, π санын параллель есептеуде қолдану.

Негізгі түсініктер: интеграл, жұмыс процестерінде интегралды анықтау, итерация.

Әдебиеттер: [5,8]

8.1 Анықталған интегралды параллель есептеу жолы

π санының мәні төменде келтірілген белгілі бір интегралдың мәніне тең екені белгілі:

(1)

Берілген интегралдың схемасын келесі түрде көрсетуге болады, 0 мен 1 аралығын 4 бөлікке бөлдік (сурет 47):

Сурет 47 – Анықталған интегралдың бөліну схемасы

Белгілі бір интегралды есептеу былайша жүргізіледі.

  1. MatLab-ты жүктеу.

  2. CurrentFolder-дің сол жақ терезесінде жол нұсқау керек:

D:\Program Files\MATLAB\R2011b\toolbox\distcomp\bin

келесі терезе пайда болады (сурет 48):

Сурет 48 - MatLab негізгі терезесі

Іске қосылған процессорларды анықтау үшін CommandWindow терезесінде мына команданы іске қосу керек:

!admincenter.bat

>>pmodestartmpc 4-ті іске қосу керек.

Lab1, Lab2, Lab3, Lab4 жұмыс аймақтарын пайда болады.Группа 300

Келесі белгілі командаларды іске қоса отырып, мына нәтижеге қол жеткіземіз (сурет 49):

p>>labindex

p>>numlabs

p>>a=labindex

Сурет 49 – Жұмыс процессорлары сессиясының жұмыс терезелері

1-суретте көрсетілгендей, өз интервалының аумағында итерациялана алады. Есепті шешудің бірінші қадамы ретінде жұмыс процессорларының барлығындағы функциясының таралуы саналады. Команданы енгіземіз:

p>>F = @(x) 4./(1+x.^2)

1: F =

1: @(x) 4./(1+x.^2)

2: F = @(x) 4./(1+x.^2)

2: @(x) 4./(1+x.^2)

3: F =

3: @(x) 4./(1+x.^2)

4:F =

4: @(x) 4./(1+x.^2)

F функциясы әрбір жұмыс үдерісінде анықталатын айнымалыға айналады.

Ары қарай интегралардың шекарасын анықтау керек болады:

p>> a = (labindex -1)/numlabs

p>> b = labindex/numlabs

Жоғарыда аталған командалардың қорытындысы былайша көрініс береді (сурет 50):

Сурет 50 – Жұмыс үдерісі бойынша интегралдың шекараларын бөлу

Операцияны есептеу алгоритмі:

a1:

(1-1)/4

b1:

1/4

a2:

(2-1)/4

b2:

2/4

a3:

(3-1)/4

b3:

3/4

a4:

(4-1)/4

b4:

4/4

Ары қарай мына команданы орындай отырып,

p>> [a,b]

мына нәтижеге қол жеткіземіз:

ans = 0

0.0250

ans = 0.0250

0.5000

ans = 0.5000

0.7500

ans = 0.7500

1

quadl (F,a,b)функцисын қолдана отырып жұмыс үдерісіндегі белгілі бір интегралдың мәнін анықтаймыз.

p>>myIntegral = quadl(F,a,b)

Қорытындысы:

Lab1

ans = 0 0.0250

myIntegral = 0.9799

Lab2

ans = 0.2500 0.5000

myIntegral = 0.8747

Lab3

ans = 0.5000 0.7500

myIntegral = 0.7194

Lab4

ans = 0.7500 1.0000

myIntegral = 0.5676

Әрбір сессиядағы ауыспалы myIntegral-ды, яғни белгілі бір интегралды анықтаған соң gplus функциясының көмегімен ауыспалы myIntegral-дың барлық үдеріс бойындағы ортақ мәнін анықтаймыз.

p>>sumInt = gplus(myIntegral)

1: sumInt =

3.1416

2: sumInt =

3.1416

3: sumInt =

3.1416

4: sumInt =

3.1416

Matlab қолданбалы сесиясының жұмыс үдерісінде сақталған айнымалы мәнін тасымалдау үшін suspend командасын қолдану керек.

lab2client командасының көмегімен кез келген үдерістегі қолданушы сессиясына белгілі бір ауыспалының көшірмесін жасауға болады

>>pmode lab2client sumInt1

sumInt-тің мәнінің түрлілігін анықтауға және Matlab жүйесінде сақталған π тұрақтысының мәнін анықтауға болады.

>>sumInt-pi

ans =

-3.1086e-015

Соңында локальді сессиядағы жұмыстан кейін pmode режиміне көшу үшін келесі команданы енгізу керек.

яғни,

>>pmoderesume

p>>

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

  1. Есептерді шешуге арналған Matlab кластерінбаптаудың баспалдағы қандай?

  2. mpc деген не?

  3. Pmodeкомандасының қызметі қандай?

  4. Pmodeрежимінен локальдісессияға қалай ауысуға болады?

  5. Labindexпен numlabs функциялары жайлы айтыңыз.

  6. Қандай функцияның көмегімен сессияның меншікті сомалары өлшенеді?

  7. quadl (F,a,b)функциясының қызметі.

Тұжырым: жұмыс процестерінде интегралды анықтауға, π санын есептеуге арналған мысалдар қарастырылды.

Дәрістің тақырыбы 9: Параллельдеуге жататын есептерді программалау. m-файл инструкциясын қолдану нұсқасы

Жоспар: