Вычислительный центр им. А.А. Дородницына РАНРаздел виртуального курса
|
|
---|
Во-первых, перед началом работы вам следует установить MPICH для Windows на ваш компьютер.
Затем, вам необходимо изучить инструкцию пользователя MPICH на английском языке или руководство пользователя российского суперкомпьютера МВС 1000М, с тем чтобы вы знали ответы на следующие вопросы:
В третьем упражнении дана простая последовательная программа, названная karp, которая вычисляет PI, используя цикл for для вычисления апроксимации интеграла. Требуется преобразовать ее в параллелную программу, используя представление SPMD (одна программа множество данных).
Для относительных новичков в передаче сообщений, эти упражнения возможно потребуют следующее время для выполнения:
Чтобы посмотеть на синтакс и описание вызовов MPI, справляйтесь с руководством программиста российского суперкомпьютера МВС 1000М .
исходный C файл: hello.c
файл решения на С записать в: helloex1.c
Hello является программой SPMD (Single Program Multiple Data = одна программа множество данных), то есть, одна и та же программа выполняется и как процесс "мастер", и как процессы "рабочие". Программа определяет является ли она мастером (ранг 0) или рабочим (ранг 1 или выше) посрдством предложения if, и затем разветвляется по соответствующим сегментам программы.
Мастер посылает сообщение ("Hello world!") всем рабочим, и затем распечатывает сообщение на стандартный вывод stdout. Каждый рабочий получает его сообщение, затем распечатывает его на stdout.
Ваша миссия заключается в том, чтобы модифицировать программу hello так, чтобы каждый рабочий вместо распечатки подтверждения посылал сообщение обратно мастеру, добавив в него рабочий ранг. Мастер должен получить эти сообщения и распечатать сообщение и соответствующие ранги на stdout.
Запустите эту программу на 4 процессорах.
исходный C файл: helloex1.c
файл решения на С записать в: helloex2.c
Приложение может использовать параметр тег в вызовах отправки и получения, чтобы отличать сообщения. Модифицируйте программу, полученную в упражнении 1 так, чтобы мастер посылал сообщения каждому рабочему используя два различных тега. Используя теги заставьте рабочих получать сообщения в обратном порядке и затем ответьте мастеру как в упражнении 1. И опять заставьте мастера получить и распечатать каждое сообщение и соответствующий ранг на stdout.
Запустите эту программу на 8 процесорах. Создайте командный файл для запуска ex2.bat и очистки ex2cu,bat.
исходный C файл: karp.c
файл решения на С записать в: karpsoln.c
Входной файл данных: values
Программа karp вычисляет PI, используя интегральную аппроксимацию. Вам предоставлена последовательная версия программы karp, и от вас требуется модифицировать ее в параллельную версию в форме SPMD.
© 2003
Вычислительный центр им. А.А.Дородницына
Все права защищены. |
|