| |
Здесь обсуждается информация о производительности параллельных программ, приведенная в двух примерах ниже, которая представляет собой комбинированный вывод, сгенерированный с помощью опции -log_summary. Программой, которая генерирует эти данные, является ${PETSC_DIR}/src/sles/examples/ex21.c. Данный код загружает матрицу и правосторонний вектор из двоичного файла, а затем решает полученную линейную систему; далее программа повторяет этот процесс для второй линейной системы:
mpirun ex21 -f0 medium -f1 arco6 -ksp_gmres_unmodifiedgramschmidt \ -log_summary -mat_mpibaij -matload_block_size 3 -pc_type \ bjacobi -options_left Number of iterations = 19 Residual norm = 7.7643e-05 Number of iterations = 55 Residual norm = 6.3633e-01 --------------- Информация о производительности PETSc:------------- ex21 on a rs6000 named p039 with 4 processors, by mcinnes Wed Jul 24 16:30:22 1996 Max Min Avg Total Time (sec): 3.289e+01 1.0 3.288e+01 Objects: 1.130e+02 1.0 1.130e+02 Flops: 2.195e+08 1.0 2.187e+08 8.749e+08 Flops/sec: 6.673e+06 1.0 2.660e+07 MPI Messages: 2.205e+02 1.4 1.928e+02 7.710e+02 MPI Message Lengths: 7.862e+06 2.5 5.098e+06 2.039e+07 MPI Reductions: 1.850e+02 1.0 Summary of Stages:-Time--Flops--Messages--Message-lengths-Reductions Avg %Total Avg %Total counts %Total avg %Total counts %Total 0: Load System 0: 1.191e+00 3.6% 3.980e+06 0.5% 3.80e+01 4.9% 6.102e+04 0.3% 1.80e+01 9.7% 1: SLESSetup 0: 6.328e-01 2.5% 1.479e+04 0.0% 0.00e+00 0.0% 0.000e+00 0.0% 0.00e+00 0.0% 2: SLESSolve 0: 2.269e-01 0.9% 1.340e+06 0.0% 1.52e+02 19.7% 9.405e+03 0.0% 3.90e+01 21.1% 3: Load System 1: 2.680e+01 107.3% 0.000e+00 0.0% 2.10e+01 2.7% 1.799e+07 88.2% 1.60e+01 8.6% 4: SLESSetup 1: 1.867e-01 0.7% 1.088e+08 2.3% 0.00e+00 0.0% 0.000e+00 0.0% 0.00e+00 0.0% 5: SLESSolve 1: 3.831e+00 15.3% 2.217e+08 97.1% 5.60e+02 72.6% 2.333e+06 11.4% 1.12e+02 60.5% -------------------------------------------------------------------- .... [Информация различных фаз, см. часть II ниже] ... -------------------------------------------------------------------- Использование памяти указано в байтах: Object Type Creations Destructions Memory Descendants' Mem. Viewer 5 5 0 0 Index set 10 10 127076 0 Vector 76 76 9152040 0 Vector Scatter 2 2 106220 0 Matrix 8 8 9611488 5.59773e+06 Krylov Solver 4 4 33960 7.5966e+06 Preconditioner 4 4 16 9.49114e+06 SLES 4 4 0 1.71217e+07
Этот результат получен на четырехпроцессорном IBM SP с использованием рестартуемого GMRES и блочного предобработчика Якоби, в котором каждый блок решается через ILU. Он представляет общие результаты оценки производительности, включая время, операции с плавающей точкой, скорости вычислений, и активность обмена сообщениями (например, количество и размер посланных сообщений и коллективных операций). Приведены и результаты для различных пользовательских стадий мониторинга. Информация о различных фазах вычислений следует ниже. Наконец, представлена информация об использовании памяти, создании и удалении объектов. Также уделяется внимание итогам различных фаз вычисления, приведенным во втором примере. Итог для каждой фазы представляет максимальное время и скорость операций с плавающей точкой для всех процессоров, а также соотношение максимального и минимального времени и скоростей для всех процессоров. Отношение приближенно равное 1 указывает, что вычисления в данной фазе хорошо сбалансированы между процессорами; если отношение увеличивается, баланс становится хуже. Также для каждой фазы в последней колонке таблицы приведена максимальная скорость вычислений (в единицах MFlops/sec).
Total Mflop/sec = 10 * (сумма flops по всем процессорам) / (максимальное время для всех процессоров)
Общие скорости вычислений < 1 MFlop в данном столбце таблицы результатов показаны как 0. Дополнительная статистика для каждой фазы включает общее количество посланных сообщений, среднюю длину сообщения и количество общих редукций. Итоги по производительности для высокоуровневых процедур PETSc включают статистику для низших уровней, из которых они состоят. Например, коммуникации внутри произведения матрица-вектор MatMult () состоят из операций рассылки вектора, выполняемых процедурами VecScatterBegin () и VecScatterEnd(). Окончательные приведенные данные представляют собой проценты различной статистики (время (%T), flops/sec (%F), сообщения(%M), средняя длина сообщения (%L) и редукции (%R)) для каждого события, относящегося ко всем вычислениям и к любым пользовательским этапам. Эта статистика может оказать помощь в оптимизации производительности, поскольку указывает секции кода, которые могут быть подвержены различным методам настройки. Следующая глава дает советы по достижению хорошей производительности кодов PETSc:
mpirun ex21 -f0 medium -f1 arco6 -ksp_gmres_unmodifiedgramschmidt \ -log_summary -mat_mpibaij -matload_block_size 3 -pc_type \ bjacobi -options_left -------------Информация о производительности PETSc:-------------- .... [Общие итоги, см. часть I] ... Информация о фазе: Count: сколько раз фаза выполнялась Time and Flops/sec: Max - максимально для всех прцессоров Ratio - отношение максимума к минимуму для всех процессоров Mess: количество посланных сообщений Avg. len: средняя длина сообщения Reduct: количество глобальных редукций Global: полное вычисление Stage: необязательные пользовательские этапы вычислений. Установите этапы через PLogStagePush() и PLogStagePop(). %T - процент времени в фазе %F - процент операций flops в фазе %M - процент сообщений в фазе %L - процент длины сообщений в фазе %R - процент редукций в фазе Total Mflop/s: 10^6 * (sum of flops over all processors) / (max time over all processors) ------------------------------------------------------------------ Phase Count Time (sec) Flops/sec -Global--Stage--Total Max Ratio Max Ratio Mess Avg len Reduct %T %F %M %L %R %T %F %M %L %R Mflop/s ------------------------------------------------------------------ ... ---Event Stage 4: SLESSetUp 1 MatGetReordering 1 3.491e-03 1.0 0.0e+00 0.0 0.0e+00 0.0e+00 0.0e+00 0 0 0 0 0 2 0 0 0 0 0 MatILUFctrSymbol 1 6.970e-03 1.2 0.0e+00 0.0 0.0e+00 0.0e+00 0.0e+00 0 0 0 0 0 3 0 0 0 0 0 MatLUFactorNumer 1 1.829e-01 1.1 3.2e+07 1.1 0.0e+00 0.0e+00 0.0e+00 1 2 0 0 0 90 99 0 0 0 110 SLESSetUp 2 1.989e-01 1.1 2.9e+07 1.1 0.0e+00 0.0e+00 0.0e+00 1 2 0 0 0 99 99 0 0 0 102 PCSetUp 2 1.952e-01 1.1 2.9e+07 1.1 0.0e+00 0.0e+00 0.0e+00 1 2 0 0 0 97 99 0 0 0 104 PCSetUpOnBlocks 1 1.930e-01 1.1 3.0e+07 1.1 0.0e+00 0.0e+00 0.0e+00 1 2 0 0 0 96 99 0 0 0 105 -----Event Stage 5: SLESSolve 1 MatMult 56 1.199e+00 1.1 5.3e+07 1.0 1.1e+03 4.2e+03 0.0e+00 5 28 99 23 0 30 28 99 99 0 201 MatSolve 57 1.263e+00 1.0 4.7e+07 1.0 0.0e+00 0.0e+00 0.0e+00 5 27 0 0 0 33 28 0 0 0 187 VecNorm 57 1.528e-01 1.3 2.7e+07 1.3 0.0e+00 0.0e+00 2.3e+02 1 1 0 0 31 3 1 0 0 51 81 VecScale 57 3.347e-02 1.0 4.7e+07 1.0 0.0e+00 0.0e+00 0.0e+00 0 1 0 0 0 1 1 0 0 0 184 VecCopy 2 1.703e-03 1.1 0.0e+00 0.0 0.0e+00 0.0e+00 0.0e+00 0 0 0 0 0 0 0 0 0 0 0 VecSet 3 2.098e-03 1.0 0.0e+00 0.0 0.0e+00 0.0e+00 0.0e+00 0 0 0 0 0 0 0 0 0 0 0 VecAXPY 3 3.247e-03 1.1 5.4e+07 1.1 0.0e+00 0.0e+00 0.0e+00 0 0 0 0 0 0 0 0 0 0 200 VecMDot 55 5.216e-01 1.2 9.8e+07 1.2 0.0e+00 0.0e+00 2.2e+02 2 20 0 0 30 12 20 0 0 49 327 VecMAXPY 57 6.997e-01 1.1 6.9e+07 1.1 0.0e+00 0.0e+00 0.0e+00 3 21 0 0 0 18 21 0 0 0 261 VecScatterBegin 56 4.534e-02 1.8 0.0e+00 0.0 1.1e+03 4.2e+03 0.0e+00 0 0 99 23 0 1 0 99 99 0 0 VecScatterEnd 56 2.095e-01 1.2 0.0e+00 0.0 0.0e+00 0.0e+00 0.0e+00 1 0 0 0 0 5 0 0 0 0 0 SLESSolve 1 3.832e+00 1.0 5.6e+07 1.0 1.1e+03 4.2e+03 4.5e+02 15 97 99 23 61 99 99 99 99 99 222 KSPGMRESOrthog 55 1.177e+00 1.1 7.9e+07 1.1 0.0e+00 0.0e+00 2.2e+02 4 39 0 0 30 29 40 0 0 49 290 PCSetUpOnBlocks 1 1.180e-05 1.1 0.0e+00 0.0 0.0e+00 0.0e+00 0.0e+00 0 0 0 0 0 0 0 0 0 0 0 PCApply 57 1.267e+00 1.0 4.7e+07 1.0 0.0e+00 0.0e+00 0.0e+00 5 27 0 0 0 33 28 0 0 0 186 ------------------------------------------------------------------- .... [Завершение общих итогов, см. часть I] ...
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |