что должно быть сделано с этими строками в следующем arch.make файле?

Я хочу установить сиесту (вычислительный код) для хождения параллельно в 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. Я наблюдал несколько учебных курсов о сценариях удара, но я все еще озадачен!!

Спасибо за любую справку.

0
задан 29 September 2016 в 22:03

1 ответ

A .SUFFIXES правило в Make-файле определяет, какие неявные правила используются во время компиляции. Подробное объяснение было бы вне темы здесь, но можно считать все, что Вы хотите знать в Правилах Главы 2 в Руководящих Проектах O'Reilly с GNU, Делают, Третий Выпуск Robert Mecklenburg.

Относительно присвоений переменных такой как FPP, FPP_OUTPUT, NETCDF_LIBS необходимо будет обратиться к собственной документации программного обеспечения для определения подходящих значений для них - мы могли бы предположить на основе контекста это FPP обозначает препроцессор Фортрана (по аналогии с CPP) но это ни в коем случае не гарантируется.


Ваш базовый вопрос, кажется, "Как я создаю сиесту вычислительное программное обеспечение химии на Ubuntu 12.04?". Вот то, что работало на меня (YMMV - зависящий, какое существующее ранее программное обеспечение установлено в Вашей системе):

  1. Установите предпосылки - для меня они были компилятором Фортрана плюс регулярные и версии MPI библиотек BLAS и LAPACK, которые я сделал как

    sudo apt-get install gfortran libatlas-dev liblapack-dev libscalapack-mpi-dev
    
  2. Распакуйте программное обеспечение и изменитесь на Obj каталог

    tar xf siesta-4.1-b1.tar.gz
    cd siesta-4.1-b1/Obj
    
  3. Как обозначено в Obj/README файл, выполненный предоставленный сценарий для заполнения каталога,

    ../Src/obj_setup.sh
    
  4. Как предложено сценарием, работайте, обеспеченные настраивают сценарий для создания подходящего arch.make файл

    ../Src/configure
    

    Если Вы все еще интересуетесь ответами на свои вопросы (2) и (3) в этой точке, можно изучить созданный arch.make файл для наблюдения автоматически настроенных значений

  5. Создайте программное обеспечение

    На данном этапе необходимо быть готовы 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"
    
  6. Если сборка завершается успешно, можно запустить обеспеченные тесты путем изменения на Obj/Tests каталог и выполнение make там

    cd Tests/
    make
    

Тесты могут занять значительно больше времени, чем сборка.

2
ответ дан 28 September 2019 в 12:21

Другие вопросы по тегам:

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