Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8654

.pdf
Скачиваний:
0
Добавлен:
25.11.2023
Размер:
1.77 Mб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

Д. И. Кислицын

ОСНОВЫ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ MPI

Учебно-методическое пособие

по выполнению лабораторных работ для обучающихся по дисциплине «Основы параллельных вычислений для систем с распределённой памятью» по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля

Нижний Новгород

2016

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Нижегородский государственный архитектурно-строительный университет»

Д. И. Кислицын

ОСНОВЫ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ MPI

Учебно-методическое пособие

по выполнению лабораторных работ для обучающихся по дисциплине «Основы параллельных вычислений для систем с распределённой памятью» по направлению подготовки 09.03.02 Информационные системы и технологии, без профиля

Нижний Новгород ННГАСУ

2016

УДК

Кислицын Д. И./ Основы параллельного программирования с использованием технологии MPI [Электронный ресурс]: учеб. – метод. пос./ Д. И. Кислицын; Нижегор. гос. архитектур. – строит. ун-т – Н. Новгород: ННГАСУ, 2016. - ___ с. 1 электрон. опт. диск (CD-R)

В методических указаниях представлены задания и пояснения к выполнению лабораторных работ в среде разработки Microsoft Visual С++ с поддержкой технологии MPI в рамках курса «Основы параллельных вычислений для систем с распределённой памятью».

Д. И. КислицынННГАСУ. 2016.

Введение

В настоящее время технология MPI (The Message Passing Interface –

Интерфейс передачи сообщений) является основным средством программирования для кластерных систем и компьютеров с распределённой памятью. MPI является библиотекой функций обмена данными между процессами, реализованная для языков С и Fortran. Головной организацией проекта MPI является Аргонская национальная лаборатория США [1]. После появления первой версии стандарта MPI в мае 1994 года MPI получил широкое распространение в мире. В настоящее время стандарт MPI адаптирован для большинства суперЭВМ и кластеров, в том числе и в России [2]. Благодаря простоте технической реализации кластеров на базе локальных сетей сотни университетов используют MPI для учебных и научных целей.

Настоящие методические указания ориентированы на работу в сетях персональных ЭВМ под управлением операционной системы Windows с использованием языка С++.

Дополнительную информацию о стандарте MPI можно найти в работах Воеводина В.В. [3], Антонова А.С. [4] и Немнюгина С.А. [5], а также на тематической странице Научно-исследовательского вычислительного центра МГУ в сети Интернет (http://www.parallel.ru).

Требования к выполнению работ

При подготовке к лабораторной работе студенту необходимо изучить соответствующие разделы лекционного курса. Сводный перечень некоторых MPIфункций приведён в ПРИЛОЖЕНИИ 4. В ходе выполнения каждой лабораторной работы студент должен подготовить письменный отчет, включающий:

номер, тему и цель лабораторной работы;

перечень заданий работы;

входные и выходные данные для каждого задания;

блок-схему последовательной программы;

тексты последовательной и параллельной программ;

таблицу и графики с результатами вычислений;

общие выводы по результатам лабораторной работы.

ЛАБОРАТОРНАЯ РАБОТА № 1

Тема: Создание простейшего консольного многопоточного Windowsприложения в среде Visual С++ 2010 для систем с распределённой памятью.

Цель работы: Знакомство со средой Visual С++ 2010. Создание консольного многопоточного Windows-приложения в среде Visual С++ 2010 на основе технологии MPI.

Лабораторная работа состоит из шести последовательно выполняемых заданий.

1.Создать пустой проект консольного Windows – приложения в среде Visual

С++.

2.Написать последовательную программу, выводящую на экран сообщение: “Hello World!”.

3.Написать параллельную программу, в которой каждый процесс выводит на экран сообщение: “Hello World!”.

4.Модифицировать программу из Задания 3 так, чтобы процессы выводили на экран сообщение: “Hello World!” и свой порядковый номер, а нулевой процесс дополнительно выводил бы общее количество процессов.

5.Модифицировать программу из Задания 4 так, чтобы порядковый номер выводился в порядке возрастания.

6.Запустить параллельную программу на нескольких вычислительных узлах кластера.

Порядок выполнения работы

1.Создание нового проекта.

1.1.Запустить среду разработки MS Visual Studio 2010.

1.2.Создать новый проект, используя следующие пункты меню: Файл – Создать – Проект (File - New - Project) см. рис.1.

Рис. 1. Создание нового проекта

1.3.Указать тип нового проекта: Visual С++ (рис. 2.).

 

Рис. 2. Выбор типа проекта

 

 

1.4. Указать

шаблон,

на

основе

которого создаётся проект: Консольное приложение Win32 (Win32Console Application).

1.5.Ввести имя (Name) создаваемого проекта: WindowsApplication_N , где N – идентификатор пользователя (например, фамилия). При необходимости кнопкой Browse можно изменить расположение (Location) файлов проекта на диске. Рекомендуется сохранять в папку с номером Вашей группы.

1.6.После нажатия кнопки ОК появится окно мастера настройки проекта (рис. 3) – нажмите кнопку Далее (Next).

Рис. 3. Мастер настройки проекта

1.7. В окне настройки параметров приложения укажите Консольное приложение (Console application) и Пустой проект (Empty project) и нажмите кнопку Готово (Finish) см. рис. 4.

Рис. 4. Настройка проекта

1.8. В появившемся окне Обозревателя решений (Solution Explorer) на рис. 5 добавьте новый cpp-файл в Файлы исходного кода (Source Files) через контекстное меню Добавить – Создать элемент (Add New Item) см. рис. 6. В

открывшемся окне выберите C++ File, укажите имя создаваемого файла и нажмите кнопку Добавить (Add) см. рис. 7.

Рис. 5. Дерево проекта

Рис. 6. Добавление нового файла

Рис. 7. Указание типа и имени файла

2. Написание последовательной программы, выводящей на экран сообщение: “Hello World!”.

2.1. Для вывода сообщений на экран воспользуемся функцией printf(). Для этого командой include подключим библиотеку stdio.h:

#include <stdio.h>

2.2. Вывод сообщения опишем в функции main():

int main () {

printf("Hello World!\n");

}

2.3. Сборка программы выполняется командой Построить решение (Build Solution) из меню Построение (Build) см. рис. 8.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]