The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование в Linux" / Оглавление документа
next up previous contents
Next: Использование -log_mpe вместе с Up: Основная информация профилирования Previous: Интерпретация вывода -log summary   Contents

Интерпретация вывода -log summary: Параллельная производительность

Здесь обсуждается информация о производительности параллельных программ, приведенная в двух примерах ниже, которая представляет собой комбинированный вывод, сгенерированный с помощью опции -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 $^{\textrm{-6}}$ * (сумма 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] ...



2004-06-22



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру