Слайд 2
Сравнение систем параллельного программирования
MPI, PVM и HPF
А. В.
Комолкин
Физический факультет
Санкт-Петербургского государственного университета
Слайд 3
Место высокопроизводительных вычислений
в нашей жизни
А. В. Комолкин
Физический факультет
Санкт-Петербургского
государственного университета
Слайд 4
ЭТО
МОЕ
ЛИЧНОЕ
МНЕНИЕ
А. В. Комолкин
Слайд 6
Какой сложности должна быть задача?
Слайд 7
Какой сложности должна быть задача?
≤10 минут — интерактивная
задачи
Слайд 8
Какой сложности должна быть задача?
≤10 минут — интерактивная
задачи
>10 минут — пакетный режим
Слайд 9
Какой сложности должна быть задача?
≤10 минут — интерактивная
задачи
>10 минут — пакетный режим
Слайд 10
Какой сложности должна быть задача?
≤10 минут — интерактивная
задачи
>10 минут — пакетный режим
суток, в течение которых пользователь забывает, с какими начальными данными запускается задача…
Слайд 11
Какой сложности должна быть задача?
≤10 минут — интерактивная
задачи
>10 минут — пакетный режим
суток, в течение которых пользователь забывает, с какими начальными данными запускается задача…
Задача реального времени
Слайд 12
Как решается задача на компьютере?
Слайд 13
Как решается задача на компьютере?
Постановка задачи начальником
Конкретизация условия
задачи, уточнение области применимости
Слайд 14
Как решается задача на компьютере?
Постановка задачи начальником
Конкретизация условия
задачи, уточнение области применимости
Построение физической (химической…) модели
Построение математической модели
Выбор
численных методов
Слайд 15
Как решается задача на компьютере?
Постановка задачи начальником
Конкретизация условия
задачи, уточнение области применимости
Построение физической (химической…) модели
Построение математической модели
Выбор
численных методов
Описание структур данных и построение алгоритма
Программирование
Слайд 16
Как решается задача на компьютере?
Постановка задачи начальником
Конкретизация условия
задачи, уточнение области применимости
Построение физической (химической…) модели
Построение математической модели
Выбор
численных методов
Описание структур данных и построение алгоритма
Программирование
Тестирование и отладка
Запуск на счет…
Слайд 17
Как решается задача на компьютере?
Постановка задачи начальником
Конкретизация условия
задачи, уточнение области применимости
Построение физической (химической…) модели
Построение математической модели
Выбор
численных методов
Описание структур данных и построение алгоритма
Программирование
Тестирование и отладка
Запуск на счет…
Слайд 18
Стратегия написания программ
Разделение на подзадачи
Выбор подходящего языка программирования
для каждой подзадачи
Умеет работать с выбранными структурами данных
Содержит средства
для решения поставленных задач (связь, графика, управление аппаратурой, …)
Выбор подходящей среды (среды разработчика, операционной, графической, …)
Слайд 19
Рекомендуемая литература
Н. Вирт «Алгоритмы + структуры данных =
программы»
Дал, Дейкстра, Хоор. «Структурное программирование»
Слайд 21
Сравнение систем параллельного программирования
MPI, PVM и HPF
А. В.
Комолкин
Физический факультет
Санкт-Петербургского государственного университета
Слайд 22
Основные системы
MPI — Message Passing Interface
PVM — Parallel
Virtual Machine
HPF — High Performance FORTRAN
Слайд 23
MPI
Библиотека подпрограмм обмена данными
Команда для запуска программы “mpirun”
Дополнительные
средства (параллельный ввод/вывод, параллельная графика, профилирование…)
Слайд 24
PVM
Библиотека подпрограмм обмена данными
Подсистема для запуска программ на
исполнение
Слайд 25
HPF
Язык FORTRAN-90
Комментарии-директивы транслятора
Команда для запуска программы (иногда)
Слайд 26
Краткое сравнение
MPI
PVM
Супер-ЭВМ, однородные кластеры
Одна (одинаковая) программа
Постоянное
число процессов
Не устойчив к сбоям
Больше подпрограмм обмена
Параллельный В/В
(Гетерогенные) кластеры .
Две программы (Master/slave)
Динамический запуск процессов
Устойчивость к сбоям
Меньше подпрограмм обмена
Нет параллельного В/В
Слайд 27
Свойства HPF
Один исходный текст для последовательной и параллельной
версий
Единое адресное пространство данных
Скрытый от программиста обмен данными
Излишние синхронизации
и обмены
Слайд 29
Домашнее задание
komolkin@esr.phys.spbu.ru
Слайд 30
FORTRAN
dx = dx - boxl*dnint(dx/boxl)
dnint( x )
dsign( dble(
idint( dabs( x )+0.5d0 ) ), dx )
Какое из
выражений вычисляется быстрее и почему?
Слайд 31
С
#include “math.h”
r = sin(x); e = exp(y);
#
gcc tst.c -O0 -ffast-math -lm
# gcc tst.c -O1 -ffast-math
Почему
во втором случае не требуется включение
библиотеки libm.a (libm.so) в исполняемую программу?
Слайд 32
Рекомендуемая литература
Немнюгин С., Чаунин М., Комолкин А. Эффективная
работа:
UNIX. — СПб, «Питер», 2001. 688 с.
Немнюгин С.А., Стесик
О.Л. Параллельное программирование
для многопроцессорных вычислительных систем. —
СПб, БХВ-Петербург, 2002. 400 с.