Студопедия
МОТОСАФАРИ и МОТОТУРЫ АФРИКА !!!


Авиадвигателестроения Административное право Административное право Беларусии Алгебра Архитектура Безопасность жизнедеятельности Введение в профессию «психолог» Введение в экономику культуры Высшая математика Геология Геоморфология Гидрология и гидрометрии Гидросистемы и гидромашины История Украины Культурология Культурология Логика Маркетинг Машиностроение Медицинская психология Менеджмент Металлы и сварка Методы и средства измерений электрических величин Мировая экономика Начертательная геометрия Основы экономической теории Охрана труда Пожарная тактика Процессы и структуры мышления Профессиональная психология Психология Психология менеджмента Современные фундаментальные и прикладные исследования в приборостроении Социальная психология Социально-философская проблематика Социология Статистика Теоретические основы информатики Теория автоматического регулирования Теория вероятности Транспортное право Туроператор Уголовное право Уголовный процесс Управление современным производством Физика Физические явления Философия Холодильные установки Экология Экономика История экономики Основы экономики Экономика предприятия Экономическая история Экономическая теория Экономический анализ Развитие экономики ЕС Чрезвычайные ситуации ВКонтакте Одноклассники Мой Мир Фейсбук LiveJournal Instagram

Задания. Задача 1.Откомпилировать и выполнить программу 3.4.3.2., задающую базовую структуру MPI-программ




Задача 1.Откомпилировать и выполнить программу 3.4.3.2., задающую базовую структуру MPI-программ. Запустить программу на количестве процессоров от 1 до 4.

Задача 2.Написать и отладить MPI-программу, в которой корневой процесс (процесс с рангом 0) выдает на консоль количество запущенных процессов, а также сообщение

Root process: Hello, world”,

а все остальные процессы выдают сообщение

“Slave process: my rank is xxxx”,

где xxx есть ранг соответствующего процесса.

Выполнить запуски программы на разном количестве процессоров.

Задача 3.Оттранслировать и запустить на выполнение программу 3.4.4.1.1. с параметром –np 2, в которой процесс с номером 0 “пингует” (посылает тестовое сообщение, в данном случае, длины 1) процессу с номером 1, и ждет от него ответного сообщения.

Задача 4.Написать программу, в которой процесс с номером 0 пингует все процессы в группе (кроме самого себя), посылая им однобайтовые сообщения и принимая от них такие же ответные сообщения.

Задача 5.Реализоватьпрограмму суммирования элементов вектора на заданном числе процессов (задается через аргументы): мастер-процесс посылает дочерним части вектора, дочерние возвращают суммы частей, после чего мастер-процесс их суммирует и выводит результат, время выполнения. Сравнить с последовательным вариантом суммирования для 5000, 10000, 50000 элементов (для замер времени выполнения использовать функции приложения 2).

Задача 6.Реализоватьпрограмму умножения матрицы A на вектор b: мастер-процесс посылает дочерним часть матрицы A(блок строк) и реплицирует вектор b, каждый процесс обрабатывает части, после чего все собирается мастер-процессом.

Задача 7.Реализоватьпрограмму умножения матрицы A на вектор b: мастер-процесс посылает дочерним части матрицы A(блок строк) и вектора b, дочерние анализируют часть А, определяют необходимые для вычислений части вектора b (случай разреженной матрицы), запрашивают у процессов, производят вычисления, частные результаты собираются мастер-процессом. Сравнить время выполнения с результатом зад.6.

Задача 8.Реализоватьпрограмму ленточного умножения матрицы A на матрицу В. Каждый процесс получает блок строк матрицы А и блок строк матрицы В. Запрашивает необходимые части матрицы В у других процессов. Проводит вычисления. Сбор результатов мастер-процессом.

Задача 10.Реализовать посылку сообщений (например, значений ранга) от всех процессов в группе, процессу с заданным рангом (этот ранг является входным параметром программы) с помощью функции MPI_Gather.

Задача 11.Оттранслировать и выполнить с параметром –np 4 программу 3.4.5.1.4. , в которой функция MPI_Scatter используется для рассылки строк матрицы чисел с плавающей точкой по отдельным процессам.




Дополнить эту программу фрагментом, в котором отдельные процессы суммируют все элементы полученной строки и возвращают полученные результаты корневому процессу с помощью функции MPI_Gather.

Задача 13. Реализовать программу, которая

1) рассылает строки исходной прямоугольной матрицы по процессам;

2) находит максимальный элемент в каждом столбце этой матрицы,

3) умножает все элементы i-ой строки матрицы на максимальный элемент i-го столбца,

4) собирает полученную матрицу в процессе с номером 0.

5) сохраняет результат на машине процессора 0.

Приложение 1.

Активизация MPI в Visual C++

  1. Установите mpich2-1.0.7-win32-ia32.msi на все машины предполагаемого кластера. Например, в папку C:\Program Files\.
  2. Используя программу wmpiconfig.exe сконфигурировать рабочие места.
  3. Создать консольное приложение CLR в Microsoft Visual Studio
  4. Установите параметры компиляции проекта:
    1. Откройте диалоговое окно свойств проекта: Project -> <Название проекта> properties.
    2. Раскройте вкладку Configuration properties -> C/C++ -> General.
    3. Установите значение параметра Additional Include Directories: "C:\Program Files\MPICH2\Include".
    4. Раскройте вкладку Configuration properties -> Linker -> General.
    5. Установите значение параметра Additional Library Directories: "C:\Program Files\MPICH2\Lib".
    6. Раскройте вкладку Configuration properties -> Linker -> Input.
    7. Установите значение параметра Additional Dependencies: cxxd.lib mpi.lib.
  5. Скомпилируйте Вашу программу:
    1. Build -> Build <Название проекта>.
  6. Запустите Вашу программу:
    1. Откройте папку Вашего проекта в Far.
    2. Создайте на диске каталог с общим доступом (напр, D:\temp\).
    3. Скопируйте туда полученный ехе-файл (напр, sample.exe).
    4. Добавьте в папку Debug (!!!) файл (Shift + F4) с именем run.bat.
    5. Скопируйте строку ниже в run.bat:

"D:\Program Files\MPICH2\bin\mpiexec.exe" -np 3 "D:\temp\sample.exe" > out.txt



Примечание:
Аттрибут -np означает количество процессов в приложении.

    1. Сохраните изменения в run.bat (F2).
    2. Закройте run.bat (F10).
    3. Выполните run.bat (Enter).
    4. Результат выполнения программы посмотрите в файле out.txt папки Debug.

Приложение 2





Дата добавления: 2015-05-10; просмотров: 507; Опубликованный материал нарушает авторские права? | Защита персональных данных | ЗАКАЗАТЬ РАБОТУ


Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Только сон приблежает студента к концу лекции. А чужой храп его отдаляет. 8824 - | 7531 - или читать все...

Читайте также:

 

18.204.48.199 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.


Генерация страницы за: 0.002 сек.