|
Скачать дистрибутив электронного задачника Programming Taskbook for MPI-2 (версия 1.6 с поддержкой русского и английского интерфейса)
Скачать дистрибутив системы MS-MPI 10.1.2
Скачать дистрибутив системы MPICH2 1.3 for Windows
Скачать дистрибутив системы MPICH 1.2.5 for Windows
Общее описание
Программный комплекс «Электронный задачник по параллельному
программированию на базе MPI-2 Programming Taskbook for MPI-2» (PT for MPI-2)
является дополнением электронного задачника
Programming Taskbook, позволяющим выполнять задания на
разработку параллельных программ с применением технологии MPI стандарта 1.x и 2.x (и частично стандарта MPI 3.x).
Электронный задачник Programming Taskbook for MPI-2 разработан при поддержке Стипендиальной программы
Благотворительного фонда В. Потанина в рамках выполнения проекта
«Электронный задачник по параллельному MPI-программированию»
одного из проектов-победителей грантового конкурса для преподавателей магистратуры 20162017 года
в номинации «Новые методы и специальные навыки в обучении».
Начиная с версии 1.1, задачник PT for MPI-2 позволяет использовать два варианта
языкового интерфейса: русский и английский.
Для возможности использования задачника PT for MPI-2 его следует
установить в системный каталог базового варианта электронного
задачника Programming Taskbook
(обычно системным каталогом задачника является каталог C:\Program Files\PT4 или C:\Program Files (x86)\PT4).
Версии 1.41.6 задачника PT for MPI-2 можно использовать совместно с задачником Programming Taskbook, начиная
с версии 4.22.
Для версий задачника Programming Taskbook от 4.17 до 4.19
можно использовать версию 1.1 задачника PT for MPI-2, для версий задачника Programming Taskbook 4.20 и 4.21
можно использовать версии 1.2 и 1.3 задачника PT for MPI-2 соответственно.
На компьютере надо также установить систему MPICH для Windows, которая обеспечивает запуск программ
в параллельном режиме. Версия 1.3 задачника может использоваться совместно со следующими версиями системы MPICH
(поддержка системы MS-MPI 10.0, также разработанной на основе системы MPICH,
была добавлена в версии 1.3 задачника PT for MPI-2; в версии 1.6 система MS-MPI 10.0 была заменена на MS-MPI 10.1.2):
- MPICH 1.2.5 (ftp://ftp.mcs.anl.gov/pub/mpi/nt/mpich.nt.1.2.5.exe),
поддерживает стандарт MPI 1.2;
- MPICH2 1.3 (http://www.mpich.org/static/downloads/1.3/mpich2-1.3-win-ia32.msi),
поддерживает стандарт MPI 2.1.
- MS-MPI 10.1.2 (https://www.microsoft.com/en-us/download/details.aspx?id=100593),
поддерживает стандарт MPI 2.1, обеспечивает более быструю работу параллельных программ
для ОС Windows 10/11 (требуется скачать установочный файл msmpisetup.exe). Следует отметить, что в системе MS-MPI 10.0
(которая использовалась в версиях 1.31.5 задачника PT for MPI-2)
не поддерживался ряд функций стандарта MPI-2, связанных с параллельной файловой обработкой.
В версии 1.6 используется система MS-MPI 10.1.2, в которой отмеченный недочет исправлен.
Если на компьютере установлено более одной из указанных систем MPICH,
то с помощью модулей PT4Setup и PT4Load можно выбирать вариант
для использования с учебными программами.
Примечание. Для корректной установки системы MPICH2 необходимо запустить установочный файл
mpich2-1.3-win-ia32.msi с правами администратора. Чтобы упростить подобный запуск,
можно использовать программу MPICH2Installer.exe, входящую в задачник, начиная с версии 1.5.
Комплекс PT for MPI-2 является свободно распространяемым
программным продуктом (freeware); он может использоваться как с
полным вариантом задачника PT4Complete1100, так и со свободно
распространяемым мини-вариантом PT4Mini270.
Задания, включенные в задачник PT for MPI-2 версии 1.6, могут
выполняться на языке С++ во всех программных средах для этого языка,
поддерживаемых задачником Programming Taskbook версий 4.22 и 4.23:
- Microsoft Visual Studio 2017, 2019, 2022;
- Code::Blocks 20.03;
- Dev-C++ 5.11 и 6.30;
- Visual Studio Code.
К учебным программам должна подключаться динамическая
библиотека, входящая в состав комплекса MPICH. Доступ к библиотеке обеспечивается
с помощью lib-файла и набора заголовочных файлов (также входящих в комплекс MPICH).
Все действия по копированию в рабочий каталог дополнительных файлов и их подключению
к учебному проекту задачник выполняет автоматически.
Задачник PT for MPI-2 предоставляет при выполнении заданий те же
возможности, что и базовый задачник Programming Taskbook; в частности,
он передает программе учащегося исходные данные, проверяет
правильность результатов, полученных программой, выполняя серию тестовых запусков учебной программы, и
сохраняет сведения о каждом тестовом испытании программы в специальном файле. Кроме
того, в задачнике PT for MPI-2 предусмотрены дополнительные
возможности, связанные со спецификой выполнения
заданий по параллельному программированию:
- демонстрационный просмотр заданий, не требующий
использования параллельного режима;
- создание для выбранного задания проекта-заготовки с
подключенными к нему модулями библиотеки MPI;
- особый механизм, обеспечивающий выполнение программы
учащегося в параллельном режиме при ее обычном запуске из
среды разработки: запущенная программа выполняет запуск
приложения MPIRun.exe из комплекса MPICH, которое, в свою
очередь, запускает программу в параллельном режиме (все
процессы выполняются на локальном компьютере);
- передача каждому процессу параллельной программы его
собственного набора исходных данных;
- получение от каждого процесса требуемых результатов и их
автоматическая пересылка в главный процесс для проверки и
отображения в окне задачника;
- вывод информации об ошибках времени выполнения (в том числе
ошибках, возникших при выполнении функций MPI) и ошибках
ввода-вывода с указанием рангов процессов, в которых эти ошибки
произошли;
- возможность вывода отладочной информации для каждого
процесса в специальном разделе окна задачника;
- автоматическая выгрузка из памяти всех запущенных процессов
даже в случае зависания параллельной программы.
Перечисленные выше возможности избавляют учащегося от
необходимости выполнения дополнительных действий, связанных с
запуском его программы в параллельном режиме, и упрощают выявление и
исправление стандартных ошибок, возникающих в параллельных
программах.
Использование исходных данных, подготовленных задачником для
каждого процесса параллельной программы, наглядный вывод в одном
окне всех результатов, полученных каждым процессом, и их
автоматическая проверка, а также дополнительные средства отладки
позволяют учащемуся сосредоточиться на реализации алгоритма решения
задачи и обеспечивают надежное тестирование разработанного алгоритма.
Задачник является расширенной версией задачника Programming Taskbook for MPI (PT for MPI),
ориентированного на стандарт MPI-1, первая версия которого была разработана в 2009 г.
Помимо 100 учебных заданий, перенесенных в него из задачника
PT for MPI, он включает 165 новых заданий. Часть новых заданий дополняет прежние темы, часть
связана с новыми возможностями стандарта MPI-2. Из указанных новых 165 заданий 15 заданий были добавлены
в версии 1.6; они связаны с неблокирующими коллективными функциями (стандарт MPI-3) и могут выполняться только
совместно с системой MS-MPI 10.1.2.
Наряду с группами, посвященными конкретным разделам библиотеки MPI, задачник включает группу заданий на разработку
параллельных алгоритмов (а именно ленточных и блочных алгоритмов умножения матриц),
в которых используются различные средства MPI, изученные в предыдущих группах.
В отличие от задачника PT for MPI, в состав которого входит одна большая группа MPIBegin, состоящая из 100 заданий
по разным разделам MPI,
задачник PT for MPI-2 включает 9 групп заданий. Первые 5 из них содержат все задания из группы MPIBegin
и ряд новых заданий (всего 139 заданий); заключительные 4 группы являются новыми и включают 126 заданий.
Ниже перечислены группы заданий и входящие в них подгруппы (в скобках указывается количество заданий):
- MPI1Proc: процессы и их ранги (10 заданий);
- MPI2Send: обмен сообщениями между отдельными процессами (32):
- MPI3Coll: коллективные взаимодействия (28):
- MPI4Type: производные типы и упаковка данных (22):
- MPI5Comm: группы процессов и коммуникаторы (32):
- MPI6File: параллельный ввод-вывод файловых данных (MPI-2) (30):
- MPI7Win: односторонние коммуникации (MPI-2) (30):
- MPI8Inter: интеркоммуникаторы и динамическое создание процессов (MPI-2) (22):
- MPI9Matr: параллельные матричные алгоритмы (44):
Ряд заданий, взятых из группы MPIBegin, снабжен новыми указаниями.
Задачники PT for MPI и PT for MPI-2 могут использоваться совместно, причем
в случае установки задачника PT for MPI-2 задания, входящие в задачник PT for MPI,
могут выполняться на языке C++ с применением как системы MPICH 1.2.5, так и системы MPICH2 1.3
(задания на языке Pascal, который поддерживается в задачнике PT for MPI, могут выполняться только
с применением системы MPICH 1.2.5). Задачник PT for MPI-2 язык Pascal не поддерживает.
При разработке новых (и модификации имеющихся) заданий широко использовались новые возможности
электронного задачника Programming Taskbook последних версий, в частности,
наличие варианта окна задачника с динамической компоновкой, позволяющей
отображать на экране большие формулировки заданий
и большие наборы исходных и результирующих данных, возможность добавления к формулировке задания
иллюстраций (использована в заключительных заданиях группы MPI5Comm, посвященных топологиям графа),
возможность создания специальных программ-заготовок для отдельных заданий (использована в группе MPI9Matr, посвященной
параллельным матричным алгоритмам).
Как и в последних версиях задачника PT for MPI, при однократном запуске программ, выполняющих
задания из задачника PT for MPI-2, выполняется их проверка на нескольких наборах тестовых данных; таким образом,
для полного тестирования решения достаточно выполнить один запуск программы из интегрированной среды.
В заданиях, связанных с файловым вводом-выводом (группа MPI6File
и часть заданий группы MPI9Matr) использованы средства электронного задачника, позволяющие включать
в задание двоичные файлы в качестве «внешних» исходных и результирующих данных
(и обеспечивающие наглядный вывод их содержимого в окне задачника).
При разработке комплекса PT for MPI-2 были расширены возможности раздела отладки окна задачника, связанные
с отображением отладочной информации из различных процессов: добавлена возможность отображения данных,
полученных от тех процессов, которые были созданы в ходе работы параллельной программы.
Данная возможность использована в заданиях группы MPI8Inter, посвященных
динамическому созданию процессов.
В контекстное меню окна задачника были включены дополнительные команды, позволяющие настраивать следующие
параметры параллельного приложения:
- время ожидания отклика от подчиненных процессов на завершающем этапе выполнения
программы (при получении от них информации о введенных и выведенных данных),
- установка или отмена режима паузы при завершении выполнения bat-файла, обеспечивающего
запуск программы в параллельном режиме.
Первая настройка позволяет увеличить время ожидания отклика для компьютеров с низким быстродействием,
вторая настройка (режим паузы) позволяет просмотреть сообщения об ошибках, выводимые системой MPICH в консольном окне
(при отключенном режиме паузы в случае возникновения ошибок на уровне системы MPICH консольное окно немедленно закрывается).
Реализованные в задачнике PT for MPI-2 средства автоматического
запуска и отладки параллельных приложений позволяют использовать его
для разработки и тестирования параллельных программ, не связанных с
конкретными учебными заданиями. С этой целью в задачник PT for MPI-2
(как и ранее в задачник PT for MPI)
включена вспомогательная группа MPIDebug из 36 «заданий», каждое из
которых обеспечивает автоматический запуск параллельной программы,
причем количество процессов определяется порядковым номером задания (пример
использования заданий из этой группы приведен в разделе «Отладка параллельных
программ»). Таким образом, эти «задания»
позволяют запускать любые параллельные программы с требуемым количеством
процессов непосредственно из интегрированной среды и предоставляют
для их отладки средства, имеющиеся в задачнике.
Предусмотренные в задачнике возможности, связанные с отладочной печатью, можно использовать
и при разработке консольных параллельных программ, не требующих подключения задачника.
Для этого предназначены компоненты pt4console.h и pt4console.cpp, размещенные в подкаталоге PTforMPI2\stubs
системного каталога задачника Programming Taskbook (по умолчанию c:\Program Files (x86)\PT4).
Примеры их использования приведены в разделе
«Запуск параллельных программ без задачника»
С помощью конструктора учебных заданий PT4TaskMaker
преподаватель может разрабатывать дополнительные группы заданий,
связанные с параллельным MPI-программированием (см.
разделы «Дополнительные возможности конструктора заданий»
и «Примеры»).
Вариант конструктора учебных заданий для языка C++ включен с дистрибутив задачника PT for MPI-2;
его компоненты pt4taskmaker.h и pt4taskmaker.cpp содержатся в подкаталоге PTforMPI2\taskmaker
системного каталога задачника Programming Taskbook.
В состав задачника PT for MPI-2 входит гипертекстовая справочная система PTforMPI2.chm,
содержащая ту же информацию, что и раздел сайта ptaskbook.com, посвященный задачнику PT for MPI-2.
Программный комплекс «Электронный задачник по
параллельному программированию на базе MPI-2 Programming Taskbook for MPI-2»
зарегистрирован в Реестре программ для ЭВМ 2 февраля 2018 г. (свидетельство о государственной регистрации
программы для ЭВМ номер 2018611548).
|