Я хочу установить сиесту (вычислительный код) для хождения параллельно в Ubuntu 12.04. Существует arch.make файл, который часть он доволен, следующие:
.SUFFIXES:
.SUFFIXES: .f .F .o .a .f90 .F90
SIESTA_ARCH=x86_64-unknown-linux-gnu--unknown
FPP=
FPP_OUTPUT=
FC=/opt/pool/openmpi/bin/mpif90
RANLIB=ranlib
SYS=nag
SP_KIND=4
DP_KIND=8
KINDS=$(SP_KIND) $(DP_KIND)
FFLAGS=-g -O2
FPPFLAGS= -DFC_HAVE_FLUSH -DFC_HAVE_ABORT -DGRID_DP -DPHI_GRID_SP -DMPI
LDFLAGS=
ARFLAGS_EXTRA=
FCFLAGS_fixed_f=
FCFLAGS_free_f90=
FPPFLAGS_fixed_F=
FPPFLAGS_free_F90=
LIBPATH=/opt/pool/scalapack_installer-1.8.0
BLAS_LIBS=/usr/lib/libf77blas.a /usr/lib/atlas/libblas.a
LAPACK_LIBS=/usr/lib/atlas/liblapack.a
BLACS_LIBS= -L$(LIBPATH) -lblacsF77 -lblacsC -lblacs
SCALAPACK_LIBS=-lscalapack
COMP_LIBS=
NETCDF_LIBS=
NETCDF_INTERFACE=
LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(NETCDF_LIBS) -lpthread
#SIESTA needs an F90 interface to MPI
#This will give you SIESTA's own implementation
#If your compiler vendor offers an alternative, you may change
#to it here.
MPI_INTERFACE=libmpi_f90.a
MPI_INCLUDE=./include
Так, согласно этому. У меня есть некоторые вопросы:
1-, что означают следующие строки? (что происходит в них?) (для второй строки, я не знаю что означает записать BLAS_LIBS
и равняйтесь адресу.)
.SUFFIXES: .f .F .o .a .f90 .F90
BLAS_LIBS=/usr/lib/libf77blas.a /usr/lib/atlas/libblas.a
2 - что должно быть записано после знака "равно" в следующих строках?
FPP=
FPP_OUTPUT=
NETCDF_LIBS=
3 - должен выражения в правой стороне знака "равно" в следующей строке быть замененным чем-то? если да, что должно быть записано?!
LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(NETCDF_LIBS)
Я знаю некоторые основы сценариев удара и знакомый с командной строкой в Linux. Я наблюдал несколько учебных курсов о сценариях удара, но я все еще озадачен!!
Спасибо за любую справку.
A .SUFFIXES
правило в Make-файле определяет, какие неявные правила используются во время компиляции. Подробное объяснение было бы вне темы здесь, но можно считать все, что Вы хотите знать в Правилах Главы 2 в Руководящих Проектах O'Reilly с GNU, Делают, Третий Выпуск Robert Mecklenburg.
Относительно присвоений переменных такой как FPP
, FPP_OUTPUT
, NETCDF_LIBS
необходимо будет обратиться к собственной документации программного обеспечения для определения подходящих значений для них - мы могли бы предположить на основе контекста это FPP
обозначает препроцессор Фортрана (по аналогии с CPP
) но это ни в коем случае не гарантируется.
Ваш базовый вопрос, кажется, "Как я создаю сиесту вычислительное программное обеспечение химии на Ubuntu 12.04?". Вот то, что работало на меня (YMMV - зависящий, какое существующее ранее программное обеспечение установлено в Вашей системе):
Установите предпосылки - для меня они были компилятором Фортрана плюс регулярные и версии MPI библиотек BLAS и LAPACK, которые я сделал как
sudo apt-get install gfortran libatlas-dev liblapack-dev libscalapack-mpi-dev
Распакуйте программное обеспечение и изменитесь на Obj
каталог
tar xf siesta-4.1-b1.tar.gz
cd siesta-4.1-b1/Obj
Как обозначено в Obj/README
файл, выполненный предоставленный сценарий для заполнения каталога,
../Src/obj_setup.sh
Как предложено сценарием, работайте, обеспеченные настраивают сценарий для создания подходящего arch.make
файл
../Src/configure
Если Вы все еще интересуетесь ответами на свои вопросы (2) и (3) в этой точке, можно изучить созданный arch.make
файл для наблюдения автоматически настроенных значений
Создайте программное обеспечение
На данном этапе необходимо быть готовы make
, однако кажется, что настраивать шаг не вполне заботится обо всем, так как это перестало работать с сообщением
SIESTA: dc_lapack.a has been deprecated in favor of:
COMP_LIBS += libsiestaLAPACK.a
Please update your arch.make file accordingly...
Хотя Вы могли отредактировать arch.make
файл, по моему скромному мнению, более просто для такого небольшого изменения передать определение переменной make
командная строка
make "COMP_LIBS += libsiestaLAPACK.a"
Если сборка завершается успешно, можно запустить обеспеченные тесты путем изменения на Obj/Tests
каталог и выполнение make
там
cd Tests/
make
Тесты могут занять значительно больше времени, чем сборка.