РУКОВОДСВО ПОЛЬЗОВАТЕЛЯ ПО BLAS и LAPACK

Первое издание, Август 2000
Содержание руководства может пересматриваться без предварительного уведомления.
All Rights Reserved, Copyright FUJITSU LIMITED 2000
перевод Балуева А. Н.

Оглавление

  • Предисловие
  • 1. Обзор
  • 2. Документация

    Предисловие

    В начало страницы

    В руководстве описано использование двух следующих компонент программного обеспечения: BLAS (Базисные Подпрограммы Линейной Алгебры) с поддержкой потоков (thread-save), версия V2.0 и LAPACK (Пакет Линейной Алгебры ) c поддержкой потоков, версия V2.0 Продукты представляют бесплатные реализации BLAS и LAPACK, разработанные группой проф. Jack Dongarra, Университет штата Tennessee, USA, опубликованные в WWW (URL: http://www.netlib.org/) . Руководство имеет следующую структуру.

    1 Обзор Продукты охарактеризованы с указанием отличий от бесплатных версий.

    2 Документация В руководстве не приводятся вызывающие последовательности для конкретных подпрограмм. Вместо этого читатель отсылается к общедоступной документации. В разделе описано, как и где ее можно найти.

    3 Примеры программ, использующих подпрограммы, поддерживающие потоки. В этом разделе показан пример кода, использующего подпрограммы соответствующих версий BLAS и LAPACK. Пример достаточно прост для понимания и предназначен для описания принципов вызова поточно-безопасных подпрограмм из Открытой мультипроцессорной (OpenMP) Fortran-программы. 4 Компиляция и редактирование Описываются способ компилирования и редактирования связей для пользовательских программ, содержащих обращения к описываемым продуктам.

    5 Замечания об использовании. Делаются несколько замечаний об использовании продуктов. Приложение А. Список подпрограмм. Приводится полный список подпрограмм. Для общего использования BLAS и LAPACK см. документацию, упомянутую в "2. Детальные спецификации по OpenMP Fortran см. в OpenMP Fortran Application Program Interface, Oct. 1997 1.0 (http://www.openmp.org/). Благодарности BLAS and LAPACK есть плод совместных усилий нескольких институтов и распространяются по Netlib.

    1. Обзор

    В начало страницы

    Поточно-безопасные версии BLAS и LAPACK основаны на BLAS (Базисные Линейно-Алгебраические Подпрограммы) и LAPACK (Линейно-Алгебраический Пакет). Каждая подпрограмма может вызываться из написанной на Fortran программы оператором CALL.

    1.1 Поточно-безопасная версия BLAS

    В начало страницы

    BLAS есть библиотека векторных и матричных операций. Поточно-безопасная версия BLAS основана на BLAS из Netlib. BLAS содержит 57 функций. Общее количество подпрограмм разных степеней точности составляет примерно 170. Поточно-везопасная версия BLAS имеет следующие рутины:

    Уровень 1 BLAS  :  Векторные операции
    Уровень 2 BLAS  :  Матричные и векторные операции
    Уровень 3 BLAS  :  Матричные и матричные операции
    Sparse-BLAS	:  Разреженные векторные операции
    

    Поточно-безопасная реализация BLAS содержит подпрограммы с точно теми же именами и параметрами вызова, как и базисная версия из Netlib. Отличия только в следующем:

    - поточно-безопасная версия может быть использована в окружении SMP (Symmetric Multiple Processing);

    - подрутины п-б-версии могут вызываться из OpenMP Fortran-программ;

    - п-б-версия должна компоноваться с объектной программой, выданной компилятором Fujitsu для программ OpenMP Fortran.

    Цель использования п-б-версии BLAS --- получить подпрограммы, параллельно выполняющие операции на разных множествах данных, которые независимы друг от друга, и тем самым уменьшать время, необходимое для завершения всех операций. При обычном, последовательном, вычислении пользователь должен последовательно вызывать подпрограмму для последовательно сменяемых данных. С библиотекой же п-б BLAS пользователь может давать подпрограмме за раз несколько множеств данных, используя кратные потоки, где один поток обрабатывает одно множество данных и все потоки исполняются параллельно. На этом пути пользователь может ожидать параллельное выполнение с коэффициентом параллельности, равным количеству потоков. Конечно, для такого сокращения времени необходимо иметь много центральных процессоров. Пользователь увидит пример такого кода в разделе 3. Заметим, что BLAS п-б-версия не есть параллельная библиотека, подпрограммы которой спроектированы для решения одной проблемы с помощью многих потоков, или, другими словами, с помощью многих CPU. Вместо этого, подпрограмма п-б-версии предназначается для решения независимых многих задач параллельно с помощью многих потоков, исполняемых на многих CPU. Например, п-б-подпрограмма для умножения матриц может вызываться одновременно с многих CPU, где один CPU выполняет одно матричное умножение. Подпрограммы BLAS п-б-версии могут также вызываться извне параллельной конструкции OpenMP.

    1.2 П-б-версия LAPACK

    В начало страницы

    LAPACK представляет собой библиотеку подпрограмм линейной алгебры. П-б-версия LAPACK основана на LAPACK 2.0 из Netlib. Она содержит около 300 функций. Общее количество подпрограмм разных типов точности --- около 1100. Подпрограммы относятся к следующим группам:

    *	Линейные уравнения
    *	Линейные задачи метода наименьших квадратов
    *	Собственные числа
    *	Разложения сингулярных значений
    

    Подпрограммы п-б-версии LAPACK, предназначены для вызовов из программ на OpenMP Fortran в окружении SMP. Их цель --- параллельное решение различных задач, не зависящих друг от друга, для сокращения общего времени, потребного для решения всех таких задач. LAPACK содержит подпрограммы-драйверы, вычислительные подпрограммы и вспомогательные подпрограммы. Драйверы имеют дело с общими задачами линейной алгебры, такими как системы линейных уравнений, в то время как вычислительные подпрограммы используются в качестве компонент драйверов, например, для LU-разложений матриц. Вспомогательные подпрограммы выполняют некоторые подзадачи или обычные элементарные вычисления.

    2. Документация

    В начало страницы

    Интерфейс вызова подпрограмм (имя подпрограммы, набор параметров) в описываемых продуктах не отличается от принятых в обычных прототипах. Поэтому они не приводятся в руководстве. Пользователь может ознакомитьсчя с ними по общедоступной документации, указанной ниже.

    2.1 Руководство пользователя.

    В начало страницы

    Обращайтесь к следующему руководству по описанию использования конкретных подпрограмм из описываемого программного продукта: * LAPACK Users' Guide, Second Edition (SIAM, 1995) Книга детально описывает использование LAPACK, включая спецификации, назначение, описание параметров, характеристики и точность драйверных и вычислительных рутин. В нее включены также быстрые справки по BLAS.

    2.2 Диалоговая документация

    В начало страницы

    Несколько документов по BLAS и LAPACK доступны в диалоге (on-line) из http://www.netlib.org/. Следующие имена все такие же как в August, 1999. * LAPACK Users' Guide. Следующие URL дают обзор форм вызовов подпрограмм LAPACK. Они содержат ту же информацию, которая описана в "Part 1 Guide" в книге LAPACK Users' Guide, Третье издание. Книга написана для LAPACK версии3.0, но может также использоваться для LAPACK версии 2.0, на котором базируется продукт. Различия между версиями 2.0 и 3.0 документированы в книге в "Предисловии к третьему изданию" и в разделе с заголовком "What's new in version 3.0?" http://www.netlib.org/lapack/lug/lapack_lug.html * Manual pages (i.e. "man" pages) для подпрограмм BLAS и LAPACK ( gzip tar файл). http://www.netlib.org/lapack/manpages.tgz


<<< Оглавление Страницы: 2  3 >>>