Документ взят из кэша поисковой машины. Адрес оригинального документа : http://num-anal.srcc.msu.su/par_prog/sv/par_sygv1.htm
Дата изменения: Wed Oct 23 15:29:24 2013
Дата индексирования: Thu Feb 27 21:20:01 2014
Кодировка: Windows-1251
PAR_SYGV1. Программа вычисления пaраметров для подпрограмм вычисления собственных значений в обобщенной проблеме собственных значений для вещественных симметричных матриц

Подпрограмма:  PAR_SYGV1

Назначение

Вычисление п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_SYGV1(NAME, N, NPROCS, MMIN, NB, NPROW, NPCOL)

Параметры

NAME - имя целевой подпрограммы, с помощью которой пользователь собирается решать свою задачу (одно из PDSYGV1, PDSYGV3, PDSYGV5); (входной параметр, тип символьный);
N - порядок исходных матриц (входной параметр, тип целый);
NPROCS - число процессов, которое может выделить пользователь для решения задачи (входной параметр, тип целый);
MMIN - минимальное количество локальной памяти, которое необходимо выделить на каждом из параллельных процессов для решения задачи (выходной параметр, тип целый);
NB - величина блока, на которые делятся исходные матрицы; NB полагается равным 0, если пользователь доверяет выбор его значения этой подпрограмме (входной и выходной параметр, тип целый);
NPROW - число строк в решетке процессов (выходной параметр, тип целый);
NPCOL - число столбцов в решетке процессов (выходной параметр, тип целый);

Вызываемые подпрограммы: нет

Замечания по использованию

  1.  Подпрограмма является последовательной фортранной программой и не использует распределенную память (требуется только один процессор)
  2.  Используются подпрограммы ICEIL, NUMROC ( из библиотеки ScaLAPACK_TOOLS)

Пример использования

Необходимо выбрать размер блока NB, число строк и столбцов решетки процессов (NPROW,NPCOL) и вычислить размер локальной памяти, необходимой для вычисления собственных значений в обобщенной проблеме собственных значений для вещественных симметричных матриц с помощью подпрограммы PDSYGV1.
Матрицы - квадратные симметричные порядка 5.
Выделяемое число процессов NPROCS = 4. NB = 0.

Фрагмент фортранного текста вызывающей программы
(полный текст теста можно получить в tpr_sygv1.zip)

      PROGRAM TPR_SYGV1
*
      INTEGER                 N, NPROCS, MMIN, NB, NPROW, NPCOL
      CHARACTER*(*)   NAME
      PARAMETER          ( NAME = 'PDSYGV1')
      EXTERNAL             PAR_SYGV1
*
      N = 5
      NPROCS = 4
      NB=0
*
      CALL PAR_SYGV1(NAME, N, NPROCS, MMIN, NB, NPROW, NPCOL)
      STOP
      END

Результаты:

      NB = 4
      NPROW = 2
      NPCOL = 2
      MMIN = 5604