Вычисление двойного интеграла c использованием средств параллельного программирования MPI - Программирование, компьютеры и кибернетика лабораторная работа

Главная
Программирование, компьютеры и кибернетика
Вычисление двойного интеграла c использованием средств параллельного программирования MPI
Разработка программы, реализующей расчёт двойного интеграла с применением средств параллельного программирования. Использование для решения задачи узла, содержащего два четырехядерных процессора и двух потоков, уменьшающих время ее выполнения в два раза.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Вятский государственный университет
Факультет автоматики и вычислительной техники
Кафедра электронных вычислительных машин
Вычислительные машины, комплексы и системы
Вычисление двойного интеграла c использованием средств параллельного программирования MPI
Проверил: преподаватель кафедры ЭВМ
Составить программу, реализующую расчёт двойного интеграла с использованием средств параллельного программирования.
Двойные интегралы обладают такими же свойствами, как и определённые интегралы (линейность, аддитивность, формулы среднего значения и т.д.).
Двойной интеграл в декартовых координатах
Пусть функция определена и непрерывна в замкнутой ограниченной области D плоскости 0xy.
Разобьём область D произвольным образом на элементарные ячейки , в каждой из которых зафиксируем точку:
называемую интегральной, которая соответствует данному разбиению D на части и данному выбору точек .
Если существует предел последовательности интегральных сумм при -диаметр ячеек и этот предел не зависит ни от способа разбиения области D на элементарные ячейки, ни от выбора точек , то он называется двойным интегралом от функции f(x,y) по области D и обозначается .
//----------------- Эта функция считает значение функции
double Func ( double X , double Y )
//------- Эта функция возвращает случайное число в диапозоне от 0 до 1
//----------------- Эта функция считает интеграл --------------------
double DoubleIntegrall ( long long N , // Количество отрезков
double AX , double BX ,// Интервал откуда берем случайные значения
double AY , double BY )// Интервал откуда берем случайные значения
double HX = BX-AX , HY = BY-AY ,x, y, f = 0;
x = (double) ( GetRandom ()*HX + AX );
y = (double) ( GetRandom ()*HY + AY );
//------------------- MAIN -------------------------------
int My_Rank; /* ранг текущего процесса */
int NumProcs; /* общее число процессов */
double AX , AY; /* левый конец интервала */
double BX , BY; /* правый конец интервала */
long long N; /* число точек разбиения */
double LenX; /*LenY; /* длина отрезка интегрирования для текущего
double Local_AX , Local_AY;/* левый конец интервала для текущего
double Local_BX , Local_BY; /* правый конец интервала для текущего
long long Local_N; /* число точек разбиения для текущего процесса */
double Local_Res;/* значение интеграла в текущем процессе */
double Result; /* результат интегрирования */
double WTime; /* время работы программы */
srand ( ( unsigned ) time ( NULL ) );
/* Получить номер текущего процесса в группе всех процессов */
MPI_Comm_rank(MPI_COMM_WORLD, &My_Rank);
/* Получить общее количество запущенных процессов */
MPI_Comm_size(MPI_COMM_WORLD, &NumProcs);
cout << "Input number of random value: ";
/* Рассылаем данные из процесса 0 остальным */
MPI_Bcast(&AX, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
MPI_Bcast(&BX, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
MPI_Bcast(&AY, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
MPI_Bcast(&BY, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
MPI_Bcast(&N, 1, MPI_LONG_LONG, 0, MPI_COMM_WORLD);
/* Вычисляем отрезок интегрирования для текущего процесса */
/* Вычислить интеграл на каждом из процессов */
Local_Res = DoubleIntegrall (Local_N, Local_AX, Local_BX, Local_AY,
/* Сложить все ответы и передать процессу 0 */
MPI_Reduce(&Local_Res, &Result, 1, MPI_DOUBLE, MPI_SUM, 0,
cout << "Integral X:[ " << AX << ";" << BX
<< "] Y:[ " << AY << ";" << BY << "] = ";
cout << "Result: " << Result << endl;
двойной интеграл параллельный программирование
Программа выполнялась на одном и двух узлах, содержащих по два четырехядерных процессора. Результаты работы программы на одном узле представлены в таблице 1 и на рисунке 1:
Кол-во входных значений Кол-во потоков
Рисунок 1 - Результаты работы программы на одном узле
Результаты работы программы на двух узлах представлены в таблице 2 и на рисунке 2:
Кол-во входных значений / Кол-во потоков
Рисунок 2 - Результаты работы программы на двух узлах
Результаты работы программы на одном узле
Результаты работы программы на двух узлах
На основе результатов работы программы можно сделать следующие выводы:
ѕ Использование двух потоков для решения данной задачи, уменьшает время ее выполнения в два раза, так как количество входных значений на интервале разделяется между двумя ядрами;
ѕ При небольшом значении входных данных (n=9000) увеличение потоков с 1 до 8, дает выигрыш во времени примерно в 7 раз;
ѕ Данная задача выполнялась на узле, содержащем два четырехядерных процессора, поэтому при увеличении потоков до 16 происходит незначительное уменьшение времени решения данной задачи, так как в данном случае на каждое ядро процессора приходится по 2 потока;
Оценка временной сложности алгоритма. Механизм сортировки пузырьком и вставками. Основные положения технологии параллельного программирования Ореn MР. Оценка временной сложности некоторых классов алгоритма с помощью параллельного программирования. дипломная работа [1,7 M], добавлен 27.10.2017
Метод хорд решения нелинейных уравнений. Вычисление интеграла методом Симпсона. Процесс численного решения уравнения. Окно программы расчета корней уравнения методом хорд. Алгоритм вычисления интеграла в виде блок-схемы. Выбор алгоритма для вычислений. курсовая работа [832,6 K], добавлен 24.07.2012
Разработка программного обеспечения, эффективно использующего вычислительные ресурсы за счет одновременного исполнения кода на нескольких вычислительных узлах. Обзор компании Intel в использовании инструментов и языков параллельного программирования. реферат [1,7 M], добавлен 25.12.2011
Расчет трансформатора питания. Численное решение нелинейных уравнений с заданной точностью и дифференциальных уравнений первого порядка. Разработка программы с использованием средств визуального программирования на алгоритмическом языке программирования. курсовая работа [1,2 M], добавлен 17.08.2013
Разработка программы нахождения значения определенного интеграла с помощью метода трапеций. Оценка абсолютной погрешности метода. Использование среды программирования Visual Studio Community 2015 для написания программы. Работа с графическим интерфейсом. курсовая работа [573,8 K], добавлен 17.03.2016
Основные направления развития параллелизма, модели параллельного программирования. Автоматические средства разработки параллельного ПО, анализ последовательной программы. Разработка системы автоматического распараллеливания программ на языке Fortran77. дипломная работа [57,7 K], добавлен 14.10.2010
Постановка задачи и математическое описание ее решения. Назначение программного обеспечения. Описание принятых идентификаторов. Выбор языка программирования и написание программы на входном языке. Методика отладки программы и проведение ее тестирования. курсовая работа [96,1 K], добавлен 25.06.2013
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .
© 2000 — 2021
Вычисление двойного интеграла c использованием средств параллельного программирования MPI лабораторная работа. Программирование, компьютеры и кибернетика.
Курсовая работа по теме Расчет экономической эффективности новой техники
Дипломная работа по теме Рекомендации по антикризисному управлению ООО 'РА' Сатурн'
Реферат: Апаратні засоби захисту інформації
Реферат: Манипуляции в современном обществе и их нейтрализация
Эссе По Русскому Языку 5 Класс
Курсовая работа: Разработка средства функционального диагностирования вычислительных устройств
Реферат: Долгосрочная стратегия развития Казахстан 2030
Сочинение: А. С. Пушкин и С. А. Есенин — певцы русской природы
Реферат На Тему Основні Елементи Релігії
Мои Карманные Деньги Сочинение На Английском
Контрольная работа по теме Региональный рынок труда
Красный Плоский Лишай Дерматовенерология Реферат
Книга: Основы банковского дела
Реферат: Operation Bluestar Essay Research Paper Operation Blue
Как Составить План Курсовой Работы Пример
Основные Концепции Философии Техники Эссе
Сочинение По Английскому 10 Класс Spotlight
Дипломная работа по теме Норманизм и антинорманизм
Экспертные Задачи И Их Классификация Курсовая Работа
Байрон Собрание Сочинений
Подготовка управленческого решения в аудите - Менеджмент и трудовые отношения контрольная работа
Моніторинг стану соматичного здоров’я студенток І курсів вищих навчальних закладів міста Харкова - Медицина статья
Социально–педагогическая работа по профилактике наркомании среди подростков в условиях учреждения образования (на примере ГУО "СШ № 40" г. Витебска) - Педагогика дипломная работа