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

2. Тізбектелген коды:

N- денелер гравитациясының барлық есептеулері келесі алгоритммен сипатталуы мүмкін

For (t=0; t<tmax; t++)

For (i=0; i<N; i++)

{

F= Force_routine(i);

V[i]=v[i]+F*dt;

}

For (i=0; i<nmax; i++)

{

X[i]=x[i];

V[i]=v[i];

}

Параллель коды

Алгоритмнің тізбектелген кодын параллельдеу үшін әрбір процессорге арналған денелер тобын қолдануы мүмкін. Алгоритм шамамен процессорлардың О(N2) әрекетін алады.

Есептеу уақыты келесі бақылауды қолданғандықтан аяаюы мүмкін: N-дене кластері кластер массасының ортасында орналасқан толық массалы жеке қашықтықтағыдай жуықталуы мүмкін.

Барнс және Нат алгоритмі

Берілген есептің кластерлерді пайдаланып қолданылуы куб денеден тұратын толық кеңістіктен басталады. Алдымен бұл куб сегіз ішкі кубтерге бөлінеді. Егер ішкі кубте ешқандай бөлшектер болмаса, онда бұл куб әрмен қарай қарастырылмайды. Егер кубта біреуден артық дене болса, ол әрбір куб ешқандай денеден тұрмайынша рекурсивті түрде бөліне береді. Бұл процесс октоағашты құрады, яғни ағаштың әрбір түйіннен сегіз қыры болады. Жапырақ ұяшықты береді, оның әрқайсысында бір денеден болады.

Екі өлшемді есеп үшін, әрбір рекурсивті бөлім төрт ішкі облыстан тұрады да, шаршыағаш құрады.

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

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

  1. N – дене есебі неден тұрады?

  2. N – дене есебінің тізбектелген кодын келтіріңіз

  3. N – дене есебінің параллель алгоритмін келтіріңіз.

Әдебиеттер

  1. Воеводин Вл. Параллельные вычисления. Санкт-Петербург, 2002

  2. Грегори р. Эндрюс. Основы многопоточного, параллельного и распределенного программирования. Пер. С. Англ. –м.: Издательский дом «Вильямс», 2003.

15-дәріс.

Тақырыбы: Кескіндерді өңдеу. Төменгі, ортаңғы және жоғарғы деңгейлерде кескіндерді өңдеу түрлері. Фурье түрлендіруі және Фурье алгортимдері

Мақсаты: Кескіндерді параллель өңдеу, соның ішіне Фурье түрлендіруін қолданып, өңдеу әдісін үйрету

Кілттік сөздер: кескін, төменгі деңгей, Фурье түрлендіруі, Фурье алгоритмі, ортаңғы деңгей, жоғарғы деңгей, пиксель.

Жоспары:

  1. Кескіндерді өңдеудің төменгң деңгейі

  2. Кескіндерді өңдеудің Фурье түрлендіруі

Кескіндерді өңдеудің төменгі деңгейі кескінді дұрыстау үшін және адам мен компьютер оны тануы үшін сақталған кескінге тікелей әсер етеді. Кескіндерді бұлай өңдеу көптеген облыстарда, соның ішінде, медициналық диагностикада, ішкі істердегі бармақ ізін тануда, өндірістік өнімдердегі ақауларды табу үшін және киноиндустрияда қолданылады. Басында кескін камераға түсіріліп, цифрлық түрде сақталынады. Сақталға кескін екіөлшемді пиксельдер массивінен тұрады. Кескін монохромды деп алып, сұр түсті пиксельдерге хабарлама жібереді. Кескін түсі әрқайсысы үш қарапайым түстің реңі болып табылатын үш мәнді (қызыл, жасыл, көк) қолданады.

Біз сақталған кескін сол жақ жоғары бұрыштан басталтын қарапайым координаталар жүйесін қолданады деп болжаймыз. Кескін пиксельдері екі өлшемді массивте сақталады да, оның элементтерін p[i][j] деп белгілеп аламыз және әрбір пиксельдің интенсивтілігі берілген массивтен табылады.

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

Кей кездері пиксельдер идентификацияланатын тік сызықтар немесе қисықтармен ассоцияцияланады. Идентификацияның ең тиімді тәсілі Hough түрлендіруін қолдану. Hough түрлендіруі пиксель координаталарын сызық теңдеуіне жақын тәуелділік теңдеуін анықтау үшін қолданылады.

Есептерге қойылатын талаптар.

Әректтің басында өңдеудің төменгі деңгейінде параллель өңдеуді қолданудың маңыздылығын айта кеткен жөн. Айталық, кескін 1024×1024 пиксельден тұрады делік, мүндай пиксельдер картасымен және пиксельге 8 битпен сақтау өте өажет.

Ең критикалық фактор – есептеу жылдамдығы. Айталық, әрқайсысы тек бір рет қана өңделеді делік. Онда тек қаңқасының өзіне ғана 210 операциялар қажет. Қазіргі кезде барлық компьютерлер мүндай әрекет жасай алмайды. Нақты уақыт режимінде қосымшалар үшін есептеу шамамен секундына 60-85 каркас болуы керек. Чиптерді сигналды өңдейтін арнайы аппараттық қамсыздандыру ойлап табылды. Бірақ мұндай жүйелер параллель компьютерлер сияқты икемді емес.

Теңдеуі

Берілген өңдеудің бір деңгейінде қандай да порогты пиксельдер мәні сақталады, ал оден төмен басқалары 0 мәнін қабылдайды. Мысалыға, х мәнді пиксель берілсін, онда пиксельге орындалатын амал:

If (x< threshold) x=0; else x=1;

Контрастпен жұмыс

Берілген жағдайда сұр түстің мәндері деңгейінің диапазоны кескіннің кейбір детальдары көрнсін деп кеңейеді.

Медицинада тіс пен сүйек тканінің көзге көрінбейтін детальдарын табу үшін рентген кескіндерін қолданады. Бұл жағдайда контраст кеңеймесін сұр түстің шкаласы бойынша жұмсақ тканнің өлшемін анықтау үшін қолданады.

Сұр түс деңгейін азайту.

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

Параллель орындалуы.

Айталық бір процессор бір пиксельге тіркелген делік. Тура параллель орындалу әрбір процессорден бір уақытта орындалып жатқан әрбір процессорден 9 қадам орындауды талап етер еді. Мұнда барлық хабарлау тек оқу болғандықтан мәліметтер ену қарама – қайшылығы болмайды. Нүкте мәндерін орталандырудың параллель нұсқасы төрт қадамнан тұрады:

Қадам1. Әрбір процессор өзінің сол жағындағы пиксельдер санын алып, мәндерді өзі сақатап жатқан пиксельдер санына қосады.

Қадам 2. Әрбір процессор өзінің оң жағындағы пиксельдер мәнін алады да, жиналып жатқан сомаға қосады.

Қадам 3. Әрбір процессор төменнен жиналған мәндер жиынын екінші қадамдағыдан алып тастап, осы мәнді өзінің жиналған мәндеріне қосады. Ол сонымен қатар, келесі қадам үшін жиналған соманың ағымдағы мәнін сақтап қалу керек.

Қадам 4. Әрбір процессор үстінен жиналған мәндер жиынын екінші қадамдағыдан алып тастап, осы мәнді өзінің жиналған мәндеріне қосады.

Және, ақырында, әрбір процессор жиналған мәндерін ортақ мәнді табу үшін 9-ға бөледі. Сонда әәрбір процессорда төрт қосу байланысы және бір бөлу болады.

2.Кескіндерді өңдеудің Фурье түрлендіруі.

Кескіндерді өңдеу есебінің кең көлемі әртүрлі облыстарда жасалынды. Дискретті Фурье түрлендіруінің бір қолданылуы тегістеуде де үшкір шеттерді табуда да қолданылатын фильтрлеу. Фильтрлеу төмендегі екі функцияны салыстырып есептеу көмегімен жүзеге асырылады:

H(j,k)=G(j,k)xF(j,k)

мұндағы F(j,k) – бұл f(j,k) Фурье функциясының түрлендірілуі, ал G(j,k) – (g(j,k ) Фурье функциясының түрлендірілуі. (j,k – х пикселінің координаталары).

Фурьенің дискретті түрлендірілу функциясы:

Хк=1/N∑хje-2π(jk/n)

мұндағы хi N пиксельдер мәні, i- комплестік сан.

және Фурьенің кері түрлендіруі

хк=1/N∑Хje-2π(jk/n).

Практикада көбіне формуланы 1/N көпмүшесіз қолданады.

Сондықтан, әрі қарай біз бұл көпмшені түсіріп тастаймыз.

w=e-2πi/N

деп белгілейік.

Сонда формула мына түрде болады:

Хк=∑хjwjk)

болады.

Берілген формуланы жүзеге асырудың тізбектелген коды келесі түрде болады:

For (k=0; k<N; k++)

{ X[k]=0

For (j+0; j<N; j++)

X[k]=X[k]+a*X[j];

a=a*pow(w,k);

}

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

  1. Фурье әдісі не үшін қолданылады?

  2. Фурьенің дискреттң түрлендіру әдісі қандай?

  3. Параллель орындалу неше қадамнан тұрады? Атаңыз.

Әдебиеттер