Let me add to Herberts answer that you really should not use openmp! Remove the reference to the threaded library all together. Then you should be fine... :)
Do you run configure every time? If so, you should ensure that your COMP_LIBS variable is empty, that variable is a substitute for systems where you don't have lapack installed. 2014-05-13 12:55 GMT+00:00 Herbert Fruchtl <herbert.fruc...@st-andrews.ac.uk >: > 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 > -- Kind regards Nick