|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.su/par_prog/sv/par_syev1.htm
Дата изменения: Wed Oct 23 15:24:28 2013 Дата индексирования: Thu Feb 27 21:19:44 2014 Кодировка: Windows-1251 |
Вычисление пaраметров для подпрограмм вычисления собственных значений симметричной матрицы
Эта служебная подпрограмма вычисляет и выбирает за пользователя некоторые параметры, которые определяют условия (режимы) распараллеливания вычислений на нескольких процессах и значения которых необходимо передать целевой подпрограмме вычисления собственных значений симметричной матрицы
Литература:
http://num_anal.srcc.msu.ru/par_prog/
http://software.intel.com/en-us/articles/intel-math-kernel-library-documentation/
http://www.netlib.org/scalapack/slug/index.html
CALL PAR_SYEV1(NAME, N, NPROCS, MMIN, NB, NPROW, NPCOL)
Параметры
| NAME - | имя целевой подпрограммы, с помощью которой пользователь собирается решать свою задачу (одно из PDSYEV1, PDSYEV3, PDSYEV5); (входной параметр, тип символьный); |
| N - | порядок исходной матрицы (входной параметр, тип целый); |
| NPROCS - | число процессов, которое может выделить пользователь для решения задачи (входной параметр, тип целый); |
| MMIN - | минимальное количество локальной памяти, которое необходимо выделить на каждом из параллельных процессов для решения задачи (выходной параметр, тип целый); |
| NB - | величина блока, на которые делится исходная матрица; NB полагается равным 0, если пользователь доверяет выбор его значения этой подпрограмме (входной и выходной параметр, тип целый); |
| NPROW - | число строк в решетке процессов (выходной параметр, тип целый); |
| NPCOL - | число столбцов в решетке процессов (выходной параметр, тип целый); |
Вызываемые подпрограммы: нет
Замечания по использованию
| 1. | Подпрограмма является последовательной фортранной программой и не использует распределенную память (требуется только один процессор) | |
| 2. | Используются подпрограммы ICEIL, NUMROC ( из библиотеки ScaLAPACK_TOOLS) |
Необходимо выбрать размер блока NB, число строк и столбцов решетки процессов
(NPROW,NPCOL) и вычислить размер локальной памяти, необходимой для
вычисления собственных значений симметричной матрицы
с помощью подпрограммы PDSYEV1.
Матрица - квадратная симметричная положительно определенная порядка 7.
Выделяемое число процессов NPROCS = 4. NB = 0.
Фрагмент фортранного текста вызывающей программы
(полный текст теста можно получить в
tpr_syev1.zip)
PROGRAM TPR_SYEV1
*
INTEGER N, NPROCS, MMIN, NB, NPROW, NPCOL
CHARACTER*(*) NAME
PARAMETER ( NAME = 'PDSYEV1')
EXTERNAL PAR_SYEV1
*
N = 7
NPROCS = 4
NB=0
*
CALL PAR_SYEV1(NAME, N, NPROCS, MMIN, NB, NPROW, NPCOL)
STOP
END
Результаты:
NB = 4
NPROW = 2
NPCOL = 2
MMIN = 74