1.1. История разработки пакета ScaLАРАСК и его общая организация
Важнейшая роль в численных методах принадлежит решению задач линейной алгебры. Свое отражение это находит в том факте, что все производители высокопроизводительных вычислительных систем поставляют со своими системами высокооптимизированные библиотеки подпрограмм, включающие главным образом подпрограммы решения задач линейной алгебры. Так на компьютерах фирмы SUN в состав High Performance Library входят пакеты BLAS, LINPACK и LAPACK. Аналогичный состав имеет и библиотека Compaq Extended Math Library, устанавливаемая на компьютерах фирмы Compaq на базе процессоров Alpha.
С появлением многопроцессорных систем с распределенной памятью начались работы по переносу на эту платформу библиотеки LAPACK как наиболее полно отвечающей архитектуре современных процессоров (подпрограммы оптимизированы для эффективного использования кэш-памяти). В работе по переносу библиотеки LAPACK участвовали ведущие научные и суперкомпьютерные центры США.
Результатом этой работы было создание пакета подпрограмм ScaLAPACK (Scalable LAPACK) [1]. Проект оказался успешным, и пакет фактически стал стандартом в программном обеспечении многопроцессорных систем. В этом пакете почти полностью сохранены состав и структура пакета LAPACK и практически не изменились обращения к подпрограммам верхнего уровня. В основе успеха реализации этого проекта лежали два принципиально важных решения.