2011-01-07 5 views
2

Я пытаюсь написать простой дифференциальный решатель уравнений в mpi и fortran. Я полагал, что могу хорошо ознакомиться с использованием процедур ATLAS/LAPACK/BLAS, поскольку они кажутся весьма полезными для любого будущего численного моделирования, которое я могу сделать. Я установил ATLAS через macports. Я использую gcc 4.4 (также установленный через macports.)Использование ATLAS/Lapack из macports в типичной fortran-программе

Я в основном самоучка и никогда не использовал ATLAS, BLAS, LAPACK или любую «библиотеку» сознательно (я использовал «include» или их эквиваленты в C++ Java и Perl, но без полного понимания того, как они работают.)

Я просто хотел бы написать код, который решает Ax = b в fortran с помощью ATLAS. Я искал образец кода, но, похоже, он требует «pgi». После долгих поисковых запросов я до сих пор не знаю, что такое «pgi» или что он делает. Ввод «добавить pgi» в терминал просто сказал мне, что «add: command not found»

Я использую mac 10.5.8 в случае, если это имеет прямую актуальность.

Надеюсь, это разумное место, чтобы задать этот вопрос.

+3

MPI - это библиотека для параллельных вычислений. Учитывая уровень опыта, который вы описали как имеющийся, я бы предложил вам избежать этого на данный момент. PGI - это компилятор fortran, я бы предложил использовать gfortran - кажется, что это часть macports gcc. Я бы посоветовал вам попробовать некоторые примеры ярлыков, например http://www.nag.co.uk/lapack-ex/lapack-ex.html – DaveP

ответ

0

Один аспект: обязательно включите библиотеки при подключении. Это можно сделать с помощью команды компиляции с параметром «-l», чтобы назвать библиотеку. Если библиотека находится в необычном каталоге, вам также может понадобиться опция -L, чтобы сообщить компоновщику, где его найти. Если вы используете библиотеки macports gfortran и macports, вам, вероятно, не понадобится опция -L. Библиотеки Macports будут в/opt/local/lib, поэтому, если вам нужна опция: «-L/opt/local/lib». Когда вы указываете имя библиотеки с параметром «-l», соглашение заключается в том, что вы оставляете «lib» и тип файла, поэтому «-latlas».

Возможно, вам понадобится инструкция «use» в исходном коде Fortran для некоторых библиотек.

Как новичок в параллельном программировании, вы, вероятно, найдете OpenMP проще, чем MPI. Я предлагаю попробовать вещи поэтапно - сначала выполните свою последовательную программу, затем подумайте о параллельном программировании.

Есть несколько примеров использования лапака по адресу http://people.sc.fsu.edu/~jburkardt/f_src/lapack/lapack.html. У Джона Буркардта могут быть другие примеры использования.

 Смежные вопросы

  • Нет связанных вопросов^_^