Вперед: 5.1.2. Структура пакета ScaLАРАСК
Назад: Глава 5. Библиотеки подпрограмм для многопроцессорных вычислительных систем
К содержанию: Оглавление


5.1. Библиотека подпрограмм ScaLAPACK

5.1.1. История создания пакета ScaLАРАСК и его общая организаци

Важнейшая роль в численных методах принадлежит решению задач линейной алгебры. Свое отражение это находит в том факте, что все производители высокопроизводительных вычислительных систем поставляют со своими системами оптимизированные библиотеки подпрограмм, включающие главным образом подпрограммы для решения задач линейной алгебры. Так на компьютерах фирмы SUN в состав библиотеки High Performance Library входят пакеты BLAS, LINPACK и LAPACK. Аналогичный состав имеет и библиотека Compaq Extended Math Library, устанавливаемая на компьютерах фирмы Compaq на базе процессоров Alpha. Для систем на базе архитектуры x86 компания Intel предлагает библиотеку MKL (Math Kernel Library), также состоящую, главным образом, из подпрограмм для решения различных задач линейной алгебры.

С появлением многопроцессорных систем с распределенной памятью начались работы по переносу на эти платформы библиотеки LAPACK, как наиболее полно отвечающей архитектуре современных процессоров (подпрограммы оптимизированы для эффективного использования кэш-памяти). В работе по переносу библиотеки LAPACK участвовали ведущие научные и суперкомпьютерные центры США.

Результатом этой работы было создание пакета подпрограмм ScaLAPACK (Scalable LAPACK) [26]. Проект оказался успешным, и пакет фактически стал стандартом в программном обеспечении многопроцессорных систем. В этом пакете почти полностью сохранены состав и структура пакета LAPACK и почти не изменились обращения к подпрограммам верхнего уровня. В основе успеха реализации этого проекта лежали два принципиально важных решения.

Во-первых, по аналогии с пакетом LAPACK, в котором все элементарные векторные и матричные операции выполняются с помощью высокооптимизированных подпрограмм библиотеки BLAS (Basic Linear Algebra Subprograms), при реализации ScaLAPACK была разработана параллельная версия этой библиотеки - PBLAS, что избавило от необходимости радикальным образом переписывать подпрограммы верхнего уровня.

Во-вторых, все коммуникационные операции выполняются с исполь┐зованием подпрограмм из специально разработанной библиотеки BLACS (Basic Linear Algebra Communication Subprograms), в которой скрыты детали организации коммуникационной среды вычислительной системы и поэтому перенос пакета на различные многопроцессорные платформы требует настройки только этой библиотеки.



Вперед: 5.1.2. Структура пакета ScaLАРАСК
Назад: Глава 5. Библиотеки подпрограмм для многопроцессорных вычислительных систем
К содержанию: Оглавление