© Валентин Юльевич Арьков, 2020
ISBN 978-5-4498-6204-4
Создано в интеллектуальной издательской системе Ridero
В данной работе мы познакомимся с организацией высокопроизводительных вычислений на уровне параллельных процессов. При этом большую задачу приходится разделить на несколько частей, а выполнение каждой части работы поручить отдельному процессу.
Это будет самое первое знакомство на очень простых примерах.
Задание. Прочитайте в Википедии статью «Процесс (информатика)» и выясните, что такое ПРОЦЕСС и как он связан с ПРОГРАММОЙ.
Параллельные процессы могут выполняться на одном локальном персональном компьютере, или на другом (удалённом) персональном компьютере, или на нескольких отдельных компьютерах, или на большом вычислительном кластере, который состоит из некоторого количества самостоятельных материнских плат, объединённых скоростной локальной сетью.
Задание. Прочитайте в Википедии статью «Кластер (группа компьютеров)» и найдите определение КЛАСТЕРА и виды кластеров.
Для серьёзного изучения предмета параллельных вычислений можно найти несколько книг на русском языке [1 – 9]. Перед этим имеет смысл получить общее представление об изучаемой технологии. Разобрать какой-нибудь сквозной пример с пошаговым руководством. На западе это называется TUTORIAL. Мы добавили к такому практическому подходу простенькие задания для расширения кругозора и общего понимания материала.
Данная работа продолжает серию работ по параллельному программированию [10, 11].
В работе [10] мы познакомились со стандартными методами работы с потоками в операционной системе Microsoft Windows.
Далее в работе [11] мы освоили основы работы с параллельными потоками по технологии OpenMP. Теперь пришло время для параллельных процессов по технологии MPI. Оформление отчёта мы подробно описали в работе [12]. Анализ данных с помощью сводных таблиц мы подробно рассмотрели в работе [13].
Задание. Скачайте пособия [10 – 13] по ссылкам в списке литературы.
Отчёт будем оформлять в виде многостраничного файла Microsoft Excel. Напомним, что студентам нашего вуза предоставляется лицензия на установку Microsoft Office 365. Подробности на сайте:
https://www.ugatu.su/
Желающие могут использовать любой другой пакет типа электронных таблиц, например, Libre Office,Таблицы Гугл или что угодно ещё.
Страницы отчёта нумеруем следующим образом: 01, 02, 03 и так далее. Номер страницы указываем на вкладке очередного листа внизу окна Excel.
Первая страница отчёта – титульный лист со всеми необходимыми сведениями.
Вторая страница отчёта – оглавление со ссылками на все страницы документа.
Далее идёт сам отчёт. Все подробности и инструкции – в работе [12].
Задание. Создайте файл отчёта, заполните титульный лист и сохраните под коротким информативным названием.
Во всех работах мы используем одно и то же задание – параллельное численное интегрирование. Номер варианта задания – последняя цифра номера зачётки. Если последняя цифра ноль, берём вариант 10. Нулевой вариант используется только для демонстрации технологии и разбора сквозного примера.
Задание. Определите номер своего варианта и укажите его на титульном листе отчёта.
Исходные данные для численного интегрирования мы используем одни и те же во всей серии работ. Это нелинейная функция с индивидуальным набором коэффициентов и пределы интегрирования. Таблица с вариантами заданий есть в предыдущем пособии [11].
Задание. Опишите свой вариант задания в отчёте на странице 03, включая точное аналитическое решение задачи.
В данной работе мы используем среду разработки Visual Studio Community Edition. Она бесплатна для учебных и некоммерческих целей. Мы будем использовать компилятор языка Си. Процесс установки и компиляции мы описали в работе [10].
Желающие могут использовать любой другой компилятор языка Си. Главное, чтобы компилятор поддерживал технологию MPI.
Задание. Запустите среду разработки и убедитесь в её работоспособности.
В предыдущей работе мы рассмотрели технологию OpenMP. В данной работе нам предстоит познакомиться с одной из наиболее распространённых технологий распараллеливания под названием MPI.
Задание. Прочитайте в Википедии начало статьи «Message Passing Interface» и выясните, на какие платформы ориентированы технологии MPI и OpenMP.
Можно сказать, что MPI – это только общий стандарт. Для написания программы нам потребуются соответствующие средства программирования (библиотека). Это будет называться РЕАЛИЗАЦИЯ MPI.
Задание. Прочитайте в Википедии окончание статьи «Message Passing Interface» и выясните, сколько реализаций MPI существует и для каких операционных систем.
Для организации совместной работы потребуется наладить общение между вычислительными процессами. В технологии MPI это коммуникация в форме ОБМЕНА СООБЩЕНИЯМИ.
Задание. Прочитайте в Википедии статью «Межпроцессное взаимодействие» и выясните, какие механизмы взаимодействия процессов может обеспечить операционная система.
2. Установка библиотеки MPI
В данной работе мы рассмотрим работу в среде Microsoft Visual Studio Community Edition – бесплатной для учебных и некоммерческих целей. В предыдущих работах мы рассмотрели процедуру установки Visual Studio [10]. Желающие могут использовать любой другой компилятор м поддержкой MPI.
Компилятор позволяет организовать вызовы библиотечных функций MPI. Но для этого потребуется установить библиотеку MPI. В данной работе мы рассмотрим работу с библиотекой MPICH. Это одна из реализаций стандарта MPI. Желающие могут использовать любую другую библиотеку MPI.
Задание. Прочитайте в Википедии статью «MPICH» и выясните, какие известные компании участвовали в разработке и как расшифровывается название библиотеки.
Процедура установки библиотеки MPI в общих чертах демонстрируется в ролике [15]. Далее мы разберём каждый шаг установки более подробно.
Задание. Посмотрите видеоролик [15].
Нам нужно скачать и установить библиотеку MPICH2. Переходим на сайт проекта:
http://www.mpich.org/
Переходим в раздел Downloads.
Находим ссылку на предыдущие выпуски:
Older releases are available here (рис.2.1).
Рис. 2.1. Сайт проекта
Переходим по указанной ссылке и получаем список разных версий (рис. 2.2).
Рис. 2.2. Версии библиотеки
При первом знакомстве с библиотекой начнём с чего-нибудь простого. Последние версии предлагаются в виде исходных текстов. Мы будем искать предыдущие версии с готовой программой установки MSI. Но для начала разберёмся, что означает это слово из трёх букв.
Задание. Прочитайте в Википедии статью «Установщик Windows» и выясните, что такое