Уровень реализации

Lanczos, C++, MPI, 3

Материал из Алговики
Перейти к навигации Перейти к поиску


1 Ссылки

Исследовалась реализация на языке C++ с использованием MPI.

2 Локальность данных и вычислений

2.1 Локальность реализации алгоритма

2.1.1 Структура обращений в память и качественная оценка локальности

2.1.2 Количественная оценка локальности

3 Масштабируемость алгоритма и его реализации

3.1 Масштабируемость алгоритма

3.2 Масштабируемость реализации алгоритма

Исследование проводилось на суперкомпьютере "Ломоносов". Компилятор GCC 5.2.1; версия MPI 1.8.4.

Для компиляции и запуска использовались следующие команды:

$ mpic++ -std=c++0x -O2 <CPP_FILE> -lm -static-libstdc++ -o <EXE_FILE>
$ mpirun -np <N_PROCESSORS> <EXE_FILE>
  • Число процессоров: 2, 4, 8, 16, 32, 64, 128.
  • Размерность матрицы [math]N[/math] от 5 000 до 50 000, шаг 5 000.
  • Количество итераций алгоритма Ланцоша для всех экспериментов 200.

Результаты:

Время выполнения алгоритма
2 4 8 16 32 48 64 96 128
5000 1,5243 1,0951 0,9334 0,6631 0,7456 0,7038 0,7989 0,9985 0,985
10 000 5,667 4,2625 2,7502 3,6762 3,4435 3,6192 3,5194 3,8486 3,2956
15 000 12,5207 6,5995 7,2897 8,5086 8,539 9,0018 8,9427 15,0132 7,7088
20 000 23,8143 15,851 10,6313 13,7241 12,8051 14,3183 13,2946 14,0864 13,7499
25 000 37,5419 17,9436 15,5451 18,3944 19,6076 18,5444 19,1347 21,8366 21,4454
30 000 55,014 26,2702 22,3943 26,4935 25,5618 29,6784 28,0853 27,8872 31,2415
35 000 71,3969 37,4811 30,2274 34,0041 38,1028 38,4912 38,0174 37,1407 40,4463
40 000 100,326 47,4248 40,2295 44,0332 50,0015 52,9428 46,2961 51,4372 49,7504
45 000 142,93 66,4829 52,1382 55,4683 62,3042 65,0885 60,0512 57,8891 64,3764

Ниже приведен график зависимости времени выполнения программы от числа процессоров и размера исходной матрицы.

Рисунок 1. Время работы программы в зависимости от количества процессоров и размера матрицы.
[math]Procs[/math] — количество процессоров,
[math]Size[/math] — размерность матрицы [math]N[/math],
[math]Time[/math] — время работы алгоритма в сек.

4 Динамические характеристики и эффективность реализации алгоритма

5 Результаты прогонов