Thanks,

I was able to compile without openmp now.
The siesta-ldau bug I found is still there though (see next mail/thread).

Giovanni
________________________________________
De : siesta-l-requ...@uam.es [siesta-l-requ...@uam.es] de la part de Herbert 
Fruchtl [herbert.fruc...@st-andrews.ac.uk]
Envoyé : mardi 13 mai 2014 14:55
À : siesta-l@uam.es
Objet : Re: [SIESTA-L] compiling Siesta in parallel with intelmpi

You need the sequential mkl. Here's my BLAS line:

BLAS_LIBS= -L/usr/local/intel/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential
-lmkl_core

   Herbert

On 13/05/14 13:42, Borghi Giovanni wrote:
> Ok below an arch.make which works, and lets siesta run in parallel,
> apparently -openmp is required, otherwise I get errors of the type (full 
> output included below the arch.make)
>
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_dispatch_fini_8'
>
> kmpc appears to be library coming with openmp.
>
> ***********************************************************************
> SIESTA_ARCH=x86_64-unknown-linux-gnu--Intel
>
> FPP=
> FPP_OUTPUT=
> FC=mpiifort
> RANLIB=ranlib
>
> SYS=nag
>
> SP_KIND=4
> DP_KIND=8
> KINDS=$(SP_KIND) $(DP_KIND)
>
> FFLAGS=-g -check all -traceback -openmp
> FPPFLAGS= -DMPI -DFC_HAVE_FLUSH -DFC_HAVE_ABORT
> LDFLAGS=-static-intel -openmp
>
> ARFLAGS_EXTRA=
>
> FCFLAGS_fixed_f=
> FCFLAGS_free_f90=
> FPPFLAGS_fixed_F=
> FPPFLAGS_free_F90=
>
> BLAS_LIBS=-lmkl_intel_lp64  -lmkl_intel_thread -lmkl_core
> LAPACK_LIBS=-lmkl_intel_lp64  -lmkl_intel_thread -lmkl_core
> BLACS_LIBS=-lmkl_blacs_lp64 -lmkl_blacs_intelmpi_lp64
> SCALAPACK_LIBS= -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64
>
> COMP_LIBS=dc_lapack.a
>
> NETCDF_LIBS=
> NETCDF_INTERFACE=
>
> LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) 
> $(NETCDF_LIBS)
>
> #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=/opt/intel/impi/4.0.3.008/intel64/lib/libmpiif.a
> MPI_INTERFACE=libmpi_f90.a
> MPI_INCLUDE=.
>
> *************************************************************************************************************
>
> siesta.o: In function `siesta':
> /home/borghi/marzari/siesta/siesta-ldau/Src/siesta.F:1: undefined reference 
> to `__kmpc_begin'
> /home/borghi/marzari/siesta/siesta-ldau/Src/siesta.F:37: undefined reference 
> to `__kmpc_end'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_ok_to_fork'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_end_single'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_ordered'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_for_static_init_8'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `omp_get_thread_num'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_barrier'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `omp_get_num_threads'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `omp_get_num_procs'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_dispatch_next_4'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_end_reduce_nowait'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_critical'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_dispatch_fini_8'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_atomic_cmplx8_add'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_atomic_float4_add'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_serialized_parallel'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_end_critical'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_dispatch_init_8'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `ompc_set_nested'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `omp_get_nested'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_dispatch_fini_4'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `omp_in_parallel'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_push_num_threads'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_reduce_nowait'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `omp_get_max_threads'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_for_static_init_4'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_end_serialized_parallel'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_flush'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_single'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_dispatch_next_8'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_atomic_float8_add'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_dispatch_init_4'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_global_thread_num'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_end_ordered'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_fork_call'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_atomic_fixed8_add'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_for_static_fini'
> /opt/intel/composer_xe_2011_sp1.6.233/mkl/lib/intel64/libmkl_intel_thread.so: 
> undefined reference to `__kmpc_atomic_cmplx4_add'
>
> ________________________________________
> De : siesta-l-requ...@uam.es [siesta-l-requ...@uam.es] de la part de Nick 
> Papior Andersen [nickpap...@gmail.com]
> Envoyé : mardi 13 mai 2014 10:57
> À : siesta-l@uam.es
> Objet : Re: [SIESTA-L] compiling Siesta in parallel with intelmpi
>
> Add -DMPI to FPPFLAGS
> and try again...
>
>
> 2014-05-13 7:48 GMT+00:00 Borghi Giovanni 
> <giovanni.bor...@epfl.ch<mailto:giovanni.bor...@epfl.ch>>:
> Dear all,
>
> I am trying to compile Siesta in parallel using intel mpi and mpiifort.
> However, when running with
>
> mpirun -np 6 siesta_rootdir/Obj/siesta
>
> The code starts in serial mode.
> Can anyone suggest me what is wrong? Does anyone have an example arch.make I 
> may
> draw inspiration from?
> I paste the main part of the arch.make below...
> Thank you very much!
> Giovanni
>
> *******************************************************************************
> SIESTA_ARCH=x86_64-unknown-linux-gnu--unknown
>
> FPP=
> FPP_OUTPUT=
> FC=mpiifort
> RANLIB=ranlib
>
> SYS=nag
>
> SP_KIND=4
> DP_KIND=8
> KINDS=$(SP_KIND) $(DP_KIND)
>
> FFLAGS= -O2 -openmp
> FPPFLAGS= -DFC_HAVE_FLUSH -DFC_HAVE_ABORT
> LDFLAGS= -static-intel -openmp
>
> ARFLAGS_EXTRA=
>
> FCFLAGS_fixed_f=
> FCFLAGS_free_f90=
> FPPFLAGS_fixed_F=
> FPPFLAGS_free_F90=
>
> BLAS_LIBS=-lmkl_intel_lp64  -lmkl_intel_thread -lmkl_core
> LAPACK_LIBS=-lmkl_intel_lp64  -lmkl_intel_thread -lmkl_core
> BLACS_LIBS=-lmkl_blacs_lp64 -lmkl_blacs_intelmpi_lp64
> SCALAPACK_LIBS= -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64
>
> COMP_LIBS=dc_lapack.a
>
> NETCDF_LIBS=
> NETCDF_INTERFACE=
>
> LIBS=$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) 
> $(NETCDF_LIBS)
>
> #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=/opt/intel/impi/4.0.3.008/intel64/lib/libmpiif.a<http://4.0.3.008/intel64/lib/libmpiif.a>
> MPI_INTERFACE=/usr/lib/openmpi/lib/libmpi_f90.a
> MPI_INCLUDE=/opt/intel/impi/4.0.3.008/intel64/include/<http://4.0.3.008/intel64/include/>
>
>
>
> --
> Kind regards Nick
>

--
Herbert Fruchtl
Senior Scientific Computing Officer
School of Chemistry, School of Mathematics and Statistics
University of St Andrews
--
The University of St Andrews is a charity registered in Scotland:
No SC013532

Responder a