Hi again,
There are some problems with the linking the libraries for parallel
execution. The system is based on ROCKS and if an MPI jobs is going to be
run on the compute nodes, all libraries should be available on the nodes.
Anyway...

As another try, I am rebuilding siesta parallel by downloading the source
codes of the dependent libraries and install them on the NFS folder which
is shared between nodes (the previous approach uses the package manager of
the head node; hence nodes are not aware of that libraries).

Please correct the following if I am wrong.

Siesta needs the following libraries for a parallel run:
  OpenMPI
  LAPACK
  BLACS
  BLAS
  SCALAPACK

I have installed OpenMPI from source and it is fine. It seems that some of
the above mentioned libraries are merged into others. For example,
according to the release note of scalapack-2.0.0:

  The BLACS is now part of ScaLAPACK, and is compiled into the
ScaLAPACK library.  It is no longer necessary to link against BLACS
libraries.

After building Scalapack, I see libscalapack.a.

Next, I downloaded LAPACK-3.6.1 and built it. The following libraries are
built

   liblapack.a
   librefblas.a
   libtmglib.a


So, I think everything that I need are present.

Now, consider the following section of arch.make of siesta

#BLAS_LIBS=-lcblas -lf77blas -latlas
BLAS_LIBS=libblas.a
LAPACK_LIBS=dc_lapack.a liblapack.a
BLACS_LIBS=
#BLACS_LIBS=-lblacsCinit -lblacsF77init -lblacs
SCALAPACK_LIBS=-lscalapack
# Tricky business ...
NETCDF_INCFLAGS= -I/usr/include
NETCDF_LIBS= -lnetcdf -lnetcdff
#NETCDF_INTERFACE=libnetcdf_f90.a
​​
LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS)
$(NETCDF_LIBS)


​As I borrowed From Robert (RCP).

I have to change those line, but I am not sure what to do. Here is my
suggestion

LAPACK_LIBS=liblapack.a librefblas.a libtmglib.a
SCALAPACK_LIBS=libscalapack.a
NETCDF_INCFLAGS= -I/usr/include
NETCDF_LIBS= -lnetcdf -lnetcdff
​LIBS=$(SCALAPACK_LIBS) $(LAPACK_LIBS) $(NETCDF_LIBS)

​
​Any idea?​


Regards,
Mahmood

Responder a