Вопрос по sparse-matrix, fortran, blas, fortran90, fortran95 – Фортран 90/95 библиотека для разреженных матриц?

14

Я ищу библиотеку для работы с разреженными матрицами в Фортране 90/95. Мне нужны только очень простые операции, такие как умножение матрицы на вектор. Что вы предлагаете мне использовать?

Я искал вокруг и расширение (?) Для BLAS называется "редкий блас ", документировано в главе 3 спецификации технического форума взрыва:

http://www.netlib.org/blas/blast-forum/,

кажется идеальным. Согласно этому документу, должен быть интерфейс Fortran 95 к библиотеке. Тем не менее, я нея не смог найти фактическую реализацию этой спецификации в любом месте, которое мне удалось скачать. У меня создается впечатление, что спецификация Fortran 95 разреженного бласта недействительно реализовано где-нибудь? В любом случае, не с открытым исходным кодом.

Я также нашел библиотеку под названием sparsekit:

http://people.sc.fsu.edu/~jburkardt/f_src/sparsekit/sparsekit.html

У кого-нибудь есть опыт работы с одним из этих двух или с любой другой библиотекой разреженных матриц для Фортрана 90/95? Я хотел бы получить совет о том, какой из них использовать, а также где его получить (в случае sparsekit исходный код доступен по ссылке выше). Есть что-нибудь подобноестандарт» для разреженных матриц, как BLAS для плотных?

Ура,

Arne

Ах, может быть. Я только поспешно посмотрел в прошлый раз. Rook
На самом деле я думаю, что интерфейс F90 для разреженного BLAS находится именно на той странице, на которую вы ссылаетесь. Просто скачайте пакет сценариев оболочки:http://www.netlib.org/toms/818 и запустить его через / bin / sh. Файлы * .f90 будут созданы. Дайте мне знать, если у вас нет доступной оболочки Bourne (например, если вы работаете под Windows). alexurba
F95, будучи незначительным пересмотром языка, часто идет под F90. Это'Прошло много времени с тех пор, как ямы сделали что-нибудь с большими матрицами, но это, кажется,people.sc.fsu.edu/~jburkardt/f_src/blas2/blas2.html версия F90. Rook
Спасибо, Идигас, но я нене думаю, чтосидеть. Мне кажется, что тыре ссылки на это библиотека BLAS, и это "редкий блас " не является частью этого. Например, должна быть подпрограмма (согласно спецификации) под названием «duscr_begin» (или возможно "blas_duscr_begin»), который вы используете для инициализации разреженной матрицы, которую я не имеюне найдено нигде в библиотеке BLAS. Я даже скачал все файлы сnetlib.org/sparse-blas/index.htmlи сделалgrep -i duscr_begin * .f " без удачи. Я нашел это очень запутанным. arne

Ваш Ответ

1   ответ
13

Хорошо ячастично отвечу на мои вопросы:

Где найти полную реализацию f95 Sparse BLAS, предоставил @alexurba выше:

http://www.netlib.org/toms/818

Вот и все! Этот скрипт создает весь исходный код в папке, в которой вы его запускаете (я никогда раньше не видел программного обеспечения, предоставленного таким образом).

Чтобы заставить скрипт INSTALL работать, мне нужно было внести некоторые изменения: в инструкциях по установке вам нужно отредактировать скрипт INSTALL и выбрать подходящий "арка», Вы можете выбрать: AIX, ALPHA, CRAY, HP, NAG, SGI и SUN. Ничто из этого не показалось мне подходящим, так как я использую linux, и единственный компилятор фортрана, который у меня есть на этом компьютере, - это gfortran. Я не'Я не совсем понимаю цель этой опции, но я работал следующим образом:

1) В УСТАНОВКЕ составь новуюарка» Я вызвал GNU, установив переменную SB_ARCH = 'GNU», 2) В ПРОГРАММНОМ ОБЕСПЕЧЕНИИ / Makefile измените FC = f90 на FC = gfortran, 3) В TESTER / скопируйте файл Makefile.NAG в Makefile.GNU, измените FC = f90 на FC = gfortran и измените все вхождения слова 'NAG» кGNU», (Вы'Возможно, вы также захотите изменить опцию FFLAGS в Makefiles.)

После этого я запустил INSTALL, а затем TESTER / test_all, и тесты выплюнули "0,000 ...» как ошибки, которые я предполагаю, чтобы означать, что все работает.

Должен сказать, что мне было трудно найти этот исходный код. К счастью, эта тема очень популярна в Google при поискеФортран 90 разреженных матричных библиотек " сейчас.

Мое окончательное решение: по иронии судьбы, после того, как я наконец нашел полную реализацию Sparse BLAS, я решил, что для моей проблемы лучше использовать более прямой подход, так как всеВозможно, понадобится умножение матрицы на вектор: выясните, какое представление разреженной матрицы использовать (сжатая разреженная строка (CSR) кажется подходящей для моей задачи), найдите соответствующую процедуру умножения матрицы на вектор из исходного кода Sparse BLAS, см. как он хочет, чтобы его ввод, и просто использовать это непосредственно в моем коде.

Я нахожусь в точке, гдеи тесты выплюнули0,000 ...» как ошибки, которые я предполагаю, чтобы означать, что все работает, Теперь, как использовать эту библиотеку (или библиотеки?), Где они мне нужны? Какие файлы я должен скопировать в каталог, содержащий мои собственные программы? Enrico Maria De Angelis

Похожие вопросы