Введение
В данной работе мы познакомимся с организацией высокопроизводительных вычислений на уровне параллельных процессов. При этом большую задачу приходится разделить на несколько частей, а выполнение каждой части работы поручить отдельному процессу.
Это будет самое первое знакомство на очень простых примерах.
Задание. Прочитайте в Википедии статью «Процесс (информатика)» и выясните, что такое ПРОЦЕСС и как он связан с ПРОГРАММОЙ.
Параллельные процессы могут выполняться на одном локальном персональном компьютере, или на другом (удалённом) персональном компьютере, или на нескольких отдельных компьютерах, или на большом вычислительном кластере, который состоит из некоторого количества самостоятельных материнских плат, объединённых скоростной локальной сетью.
Задание. Прочитайте в Википедии статью «Кластер (группа компьютеров)» и найдите определение КЛАСТЕРА и виды кластеров.
0. Организация работы
Для серьёзного изучения предмета параллельных вычислений можно найти несколько книг на русском языке [1 – 9]. Перед этим имеет смысл получить общее представление об изучаемой технологии. Разобрать какой-нибудь сквозной пример с пошаговым руководством. На западе это называется TUTORIAL. Мы добавили к такому практическому подходу простенькие задания для расширения кругозора и общего понимания материала.
Данная работа продолжает серию работ по параллельному программированию [10, 11].
В работе [10] мы познакомились со стандартными методами работы с потоками в операционной системе Microsoft Windows.
Далее в работе [11] мы освоили основы работы с параллельными потоками по технологии OpenMP. Теперь пришло время для параллельных процессов по технологии MPI. Оформление отчёта мы подробно описали в работе [12]. Анализ данных с помощью сводных таблиц мы подробно рассмотрели в работе [13].
Задание. Скачайте пособия [10 – 13] по ссылкам в списке литературы.
0.1. Отчёт
Отчёт будем оформлять в виде многостраничного файла Microsoft Excel. Напомним, что студентам нашего вуза предоставляется лицензия на установку Microsoft Office 365. Подробности на сайте:
https://www.ugatu.su/ (https://www.ugatu.su/)
Желающие могут использовать любой другой пакет типа электронных таблиц, например, Libre Office,Таблицы Гугл или что угодно ещё.
Страницы отчёта нумеруем следующим образом: 01, 02, 03 и так далее. Номер страницы указываем на вкладке очередного листа внизу окна Excel.
Первая страница отчёта – титульный лист со всеми необходимыми сведениями.
Вторая страница отчёта – оглавление со ссылками на все страницы документа.
Далее идёт сам отчёт. Все подробности и инструкции – в работе [12].
Задание. Создайте файл отчёта, заполните титульный лист и сохраните под коротким информативным названием.
0.2. Варианты заданий
Во всех работах мы используем одно и то же задание – параллельное численное интегрирование. Номер варианта задания – последняя цифра номера зачётки. Если последняя цифра ноль, берём вариант 10. Нулевой вариант используется только для демонстрации технологии и разбора сквозного примера.
Задание. Определите номер своего варианта и укажите его на титульном листе отчёта.
Исходные данные для численного интегрирования мы используем одни и те же во всей серии работ. Это нелинейная функция с индивидуальным набором коэффициентов и пределы интегрирования. Таблица с вариантами заданий есть в предыдущем пособии [11].
Задание. Опишите свой вариант задания в отчёте на странице 03, включая точное аналитическое решение задачи.
0.3. Среда разработки
В данной работе мы используем среду разработки Visual Studio Community Edition. Она бесплатна для учебных и некоммерческих целей. Мы будем использовать компилятор языка Си. Процесс установки и компиляции мы описали в работе [10].
Желающие могут использовать любой другой компилятор языка Си. Главное, чтобы компилятор поддерживал технологию MPI.
Задание. Запустите среду разработки и убедитесь в её работоспособности.
1. Технология MPI
В предыдущей работе мы рассмотрели технологию OpenMP. В данной работе нам предстоит познакомиться с одной из наиболее распространённых технологий распараллеливан