На бирже курсовых и дипломных проектов можно найти образцы готовых работ или получить помощь в написании уникальных курсовых работ, дипломов, лабораторных работ, контрольных работ, диссертаций, рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


Отчет по практике Параллельные вычисления.Создайте последовательную программу, реализующую алгоритм скалярного произведения векторов.

Информация:

Тип работы: Отчет по практике. Добавлен: 16.05.2016. Сдан: 2016. Страниц: 9. Уникальность по antiplagiat.ru: 90.

Описание (план):



СОДЕРЖАНИЕ
1. ПОСТАНОВКА ЗАДАЧИ 2
2. ОПИСАНИЕ ИСПОЛЬЗУЕМЫХ ФУНКЦИЙ 2
3. ОПИСАНИЕ ПРОГРАММЫ 3
4. РЕАЛИЗАЦИЯ 3
ИЗ ДОКЛАДА СТАРЧЕНКО И БЕРЦУН «МЕТОДЫ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ» 7
ЗАКЛЮЧЕНИЕ 8
ЛИТЕРАТУРА 9

1. Постановка задачи
Создайте последовательную программу, реализующую алгоритм скалярного произведения векторов. Размер векторов возьмите n=(10^3, 10^4, 10^5,10^6,10^7,10^8,10^9). Элемент 1-го вектора задайте (1/(1+i)), второго - (i/(1+i)). Создайте параллельную программу, реализующую данный алгоритм. Для реализации используйте изученные коммуникационные функции, а также возможности приема данных от неизвестного отправителя (MPI_ANY_SOURCE). Определите время выполнения последовательной и параллельной программ в зависимости от размера массивов (запустите несколько раз и возьмите наилучшие результаты). Параллельную программу запустите на 2-х и 4-х процессах. Требуется представить полученные значения в табличном виде, привести скрин компиляции и запуска параллельной программы. Получите теоретическую оценку ускорения параллельного алгоритма (рассматривали пример на лаб. - сумма ряда, тут выполнить аналогично - выписать время работы последовательной программы, параллельной для 2-х процессов, взять отношение - это и будет ускорение, определить когда оно будет больше 1). Сделайте выводы о целесообразности распараллеливания данного алгоритма.
2. Описание используемых функций
• int MPI_Send(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) //функция выполняет посылку сообщений
Входные параметры:
buf - адрес начала расположения пересылаемых данных;
count - число пересылаемых элементов;
datatype - Тип посылаемых элементов;
dest - номер процесса-получателя в группе, связанной с коммуникатором comm;
tag - идентификатор сообщения;
comm - коммуникатор области связи.
• int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) // функция выполняет прием
Входные параметры:
count - максимальное число принимаемых элементов;
datatype - тип элементов принимаемого сообщения;
source - номер процесса-отправителя;
tag - идентификатор сообщения;
comm - коммуникатор области связи.
Выходные параметры:
buf - -адрес начала расположения принимаемого сообщения;
• int MPI_Probe (int source, int tag, MPI_Comm comm, MPI_Status *status) //функция определения параметров принятого сообщения
Входные параметры:
source - номер процесса-отправителя;
tag - идентификатор сообщения;
comm - коммуникатор.
Выходные параметры:
status - атрибуты опрошенного сообщения.


3. Описание программы
Выделение места в памяти, задание элементов векторов a (a[i] = 1/(1+i)) и b (b[i] = i/(1+i)) и скалярное умножение векторов задается на всех процессах одинаково.
• Если номер процесса = 0
Функция MPI_Probe узнает информацию о принятом сообщении, а именно от какого процесса принято сообщение с тэгом 000 и атрибуты сообщения. Принимает элемент результата и суммирует его с результатом с нулевого процесса и с уже принятыми результатами с других процессов в количестве 1 элемента от процесса, который первый выполнил умножение и отправил сообщение на нулевой процесс, с тэгом 000.
• Если номер процесса не равен 0
Отправляем результат скалярного произведения векторов функцией MPI_SEND в переменную r. Количество элементов 1 на нулевой процесс с тэгом 000.
.............
1) Параллельное программирование. Лабораторная работа №3.
2) Доклад: doc/parallel_comp_meth.pdf



Перейти к полному тексту работы



Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.