Эффективность выполнения DVM-программ (март 2002 года)

Эффективность выполнения программ всегда являлась очень важным фактором, определявшим в значительной степени успех и распространение языков программирования, предназначенных для создания вычислительных программ.

Для DVM-программ вопрос эффективности выполнения носит принципиальный характер, поскольку эти программы должны при запуске динамически (без перекомпиляции) настраиваться на количество и производительность выделенных для их выполнения процессоров. Для оценки эффективности выполнения DVM-программ были разработаны соответствующие версии тестов NAS (NPB 2.3).

Эти тесты хорошо отражают характер вычислительных задач различных классов, за исключением задач с нерегулярными сетками. Ниже дается краткая характеристика тестов, и приводятся их размеры в строках для трех версий каждой программы – последовательной версии, MPI-версии и DVM-версии.

Тест

Характеристика теста

SEQ

MPI

DVM

MPI/
SEQ

DVM/SEQ

BT

3D Навье-Стокс,  метод переменных направлений

3929

5744

3991

1.46

1.02

CG

Оценка наибольшего собственного значения симметричной разреженной матрицы

1108

1793

1118

1.62

1.01

EP

Генерация пар случайных чисел Гаусса

 641

 670

 649

1.04

1.01

FT

Быстрое преобразование Фурье, 3D спектральный метод

1500

2352

1605

1.57

1.07

IS

Параллельная сортировка

 925

1218

1067

1.32

1.17

LU

3D Навье-Стокс, метод верхней релаксации

4189

5497

4269

1.31

1.02

MG

3D уравнение Пуассона, метод Multigrid

1898

2857

2131

1.50

1.12

SP

3D Навье-Стокс, Beam-Warning approximate factorization

3361

5020

3630

1.49

1.08

S

. 17551  25151 18460 1.43 1.05

SEQ – поcледовательная программа
MPI – параллельная программа с использованием
Fortran77+MPI или Си(IS)+MPI
DVM – параллельная программа на языке Fortran-DVM или C-DVM (IS)

Ниже для каждого теста приведены отношения времени выполнения его MPI-версии к времени выполнения DVM-версии на ЭВМ МВС-1000М.

Замечание. В таблице отсутствуют результаты сравнения для тестов IS и MG на 512-ти процессорах, поскольку не удалось пропустить MPI-версии этих тестов.

Конечно, сравнение на тестах NPB 2.3 не вполне правомерно – они написаны на очень высоком профессиональном уровне и являются объектом пристального внимания многих специалистов. При разработке реальных параллельных программ, как правило, достижение высокой эффективности требует многократных изменений программы для поиска наилучшей схемы ее распараллеливания. Успешность такого поиска определяется простотой модификации программы. Кроме того, прикладному программисту трудно реализовать многие часто используемые приемы распараллеливания так же эффективно, как они реализуются системами программирования. Поэтому на реальных программах MPI-подход очень часто проигрывает по эффективности DVM-подходу.

< Данные об эффективности выполнения тестов NAS (июль 2001 года)>