© Валентин Юльевич Арьков, 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 это коммуникация в форме ОБМЕНА СООБЩЕНИЯМИ.
Задание. Прочитайте в Википедии статью «Межпроцессное взаимодействие» и выясните, какие механизмы взаимодействия процессов может обеспечить операционная система.