Skip to Content.
Sympa Menu

forum - Re: [abinit-forum] parallel configuration problem

forum@abinit.org

Subject: The ABINIT Users Mailing List ( CLOSED )

List archive

Re: [abinit-forum] parallel configuration problem


Chronological Thread 
  • From: Aaron <nkleof@gmail.com>
  • To: forum@abinit.org
  • Subject: Re: [abinit-forum] parallel configuration problem
  • Date: Thu, 12 Feb 2009 01:17:49 +0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=qfNgnFVRXZ48lXcbIlEreZYlSnwCCWhUoHJr9ykAA8PW1OfCxqLEh/8TZuYP8EgVGc GfPixy7LLyBGUoie6KxKfaiiKCOaM+V76URSWckXIMaB4t9une9b72qYQRdExL1UL9SC wUiysF5+Anso9Lr/vcpiItFfPcA6riC5r6rwc=

I added iccvars.sh in my .bashrc file and configure with 
./configure FC="/home/opt/intel/impi/3.1/bin64/mpiifort" CC="/home/opt/intel/impi/3.1/bin64/mpiicc" --enable-mpi=yes --disable-wannier90

This time compilation completed successfully, except that I cannot use wannier90 feature. For if --disable-wannier90 not used, errors came out as following:

Making all in wannier90
make[3]: Entering directory `/home/mfeng/abinit/abinit-5.6.4/plugins/wannier90'
make -f ../../plugins/wannier90/wannier90.mk
make[4]: Entering directory `/home/mfeng/abinit/abinit-5.6.4/plugins/wannier90'
gzip -cd /home/mfeng/.abinit/tarballs/wannier90-1.1.tar.gz | tar xf -

gzip: /home/mfeng/.abinit/tarballs/wannier90-1.1.tar.gz: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
make[4]: *** [uncompress-stamp] Error 2
make[4]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4/plugins/wannier90'
make[3]: *** [package-ready] Error 2
make[3]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4/plugins/wannier90'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4/plugins'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4'
make: *** [all] Error 2

Now I have finished the compilation and want to do some tests. But I am confused about how to run tests as description at the end of compilation says:
Keywords to use for test directory (automated sets of tests) :

tests_min      Minimal set of tests (sequential)
tests_min4     Minimal set of tests, 4 threads at once
tests_dev      Minimal set of tests for developers (with a report)

tests_acc      Test accuracy (=tests_min+tutorial/tutorespfn/bigdft/wannier90)
tests_acc4     Test accuracy, running 4 threads at once

tests_bench    Test accuracy+cpu for benchmarks (with a report)
tests_speed    Test cpu for benchmarks (quick, with a report)

tests_abinip   Tests using abinip instead of abinis (fast,v1-v...,tutorial)
                (WARNING : at present, works only on sleepy.pcpm.ucl.ac.be)

The description of more detailed testing possibilities can be obtained from
'make help_dev' or 'make dev'. In particular, note the following actions :

(1) to test abinip on many different specific platforms :
tests_paral

(2) to test only the features as bigdft, gw, paw, or tddft :
tests_bigdft
tests_gw     (all GW tests, except tutorial#gw_1 and gw_9, that are very long)
tests_paw
tests_tddft

I cannot find any executable command or script in /tests directory. Any of above key returns "-bash: tests_speed: command not found
" or similar.

Thanks a lot to Alain and Yann. It is with your help that I can finish installation.

Best regards,

Aaron



2009/2/11 Aaron <nkleof@gmail.com>
Hello Alain,

Maybe the fact that /home/opt/intel/impi/3.1//bin/mpicc is called comes from a mess in my setup.  I have compiled and installed abinit-5.4.4p serial version in cluster, and I did not do any clean job before compiling abinit-5.6.4 parallel version. I just created a new directory named abinit-5.6.4 and do all parallel compilation in it. Could the previous installation affect the new compilation?

PATH environment variable is like this after cleaning from pgi and pathscale links:

/home/opt/intel/impi/3.1/bin64:/home/opt/intel//fce/10.1.015/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/mfeng/bin:/home/opt/bin:/sbin:/usr/sbin:/home/opt/vasp/bin:/home/opt/crystal98/utils:/home/opt/tetr_lev00/bin:/home/opt/wien2k:/home/opt/wien2k/SRC_structeditor/bin:/home/mfeng/abinit/abinit-5.4.4p/tmp/src/main

and LD_LIBRARY_PATH:

/home/opt/intel/impi/3.1/lib64:/home/opt/intel/mkl/10.0.3.020/lib/em64t:/home/opt/intel//fce/10.1.015/lib

"which mpicc" returns:    /home/opt/intel/impi/3.1/bin64/mpicc
"which mpif90" returns:    /home/opt/intel/impi/3.1/bin64/mpif90
"mpicc --showme" returns:    
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
"mpif90 --showme" returns:
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/libgfortranbegin.a(fmain.o): In function `main':
(.text+0xa): undefined reference to `MAIN__'
collect2: ld returned 1 exit status

"mpicc -v" returns:
mpigcc for the Intel(R) MPI Library 3.1 for Linux
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --enable-plugin --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20070925 (Red Hat 4.1.2-33)
 /usr/libexec/gcc/x86_64-redhat-linux/4.1.2/collect2 --eh-frame-hdr --build-id -m elf_i386 --hash-style=gnu -dynamic-linker /lib/ld-linux.so.2 crt1.o crti.o /usr/lib/gcc/x86_64-redhat-linux/4.1.2/32/crtbegin.o -L/home/opt/intel/impi/3.1/lib -L/home/opt/intel/mkl/10.0.3.020/lib/em64t -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/32 -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/32 -L/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib -L/lib/../lib -L/usr/lib/../lib -rpath /home/opt/intel/impi/3.1/lib -rpath /opt/intel/mpi-rt/3.1 -lmpi -lmpigf -lmpigi -lrt -lpthread -ldl -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-redhat-linux/4.1.2/32/crtend.o crtn.o
/usr/bin/ld: crt1.o: No such file: No such file or directory

Can I tell my system administrator that MPI in cluster was built with gcc?
I have compiled and run the parallel C code you gave me. It completed successfully and showed correct result. Then I tried many configure settings as following:
 ./configure FC="/home/opt/intel/impi/3.1/bin64/mpif90" CC="/home/opt/intel/impi/3.1/bin64/mpicc" --enable-mpi=yes
Configuration could completed using above setting, but errors came out when "make":

cd blas && make FC="/home/opt/intel/impi/3.1/bin64/mpif90" FCFLAGS="  -g -O3 -fschedule-insns2 -malign-double -march=nocona -mmmx -msse -msse2 -msse3 -mfpmath=sse" AR="ar" ARFLAGS="rv" RANLIB="ranlib"
make[5]: Entering directory `/home/mfeng/abinit/abinit-5.6.4/prereqs/linalg/blas'
/home/opt/intel/impi/3.1/bin64/mpif90 -g -O3 -fschedule-insns2 -malign-double -march=nocona -mmmx -msse -msse2 -msse3 -mfpmath=sse -c caxpy.f
caxpy.f:0: error: -malign-double makes no sense in the 64bit mode
make[5]: *** [caxpy.o] Error 1
make[5]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4/prereqs/linalg/blas'
make[4]: *** [build-stamp] Error 2
make[4]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4/prereqs/linalg'
make[3]: *** [package-ready] Error 2
make[3]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4/prereqs/linalg'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4/prereqs'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4'
make: *** [all] Error 2

 ./configure FC="/home/opt/intel/impi/3.1/bin64/mpif90" CC="/home/opt/intel/impi/3.1/bin64/mpiicc" --enable-mpi=yes
Configuration goes wrong as before. It says "c compiler cannot create executables"

 ./configure FC="/home/opt/intel/impi/3.1/bin64/mpiifort" --enable-mpi=yes --disable-netcdf
Configuration completed but errors came out when make went here:

......
Making all in netcdf
make[3]: Entering directory `/home/mfeng/abinit/abinit-5.6.4/plugins/netcdf'
make -f ../../plugins/netcdf/netcdf.mk
make[4]: Entering directory `/home/mfeng/abinit/abinit-5.6.4/plugins/netcdf'
gzip -cd /home/mfeng/.abinit/tarballs/netcdf-3.6.3.tar.gz | tar xf -
touch uncompress-stamp
netcdf-3.6.3 has been uncompressed.
mkdir tmp
cd netcdf-3.6.3 && \
         CPP="gcc -E" \
         CPPFLAGS="-DpgiFortran" \
         CC="gcc" \
         CFLAGS="-g -O3 -fschedule-insns2 -malign-double -march=nocona -mmmx -msse -msse2 -msse3 -mfpmath=sse " \
         CXX="g++" \
         CXXFLAGS="-g -O3 -fschedule-insns2 -malign-double -march=nocona -mmmx -msse -msse2 -msse3 -mfpmath=sse " \
         F77="/home/opt/intel/impi/3.1/bin64/mpiifort" \
         FFLAGS=" -extend_source -vec-report0 -g -O3 -arch pn4 -tune pn4 -xT -ip -no-prec-div" \
         F90="/home/opt/intel/impi/3.1/bin64/mpiifort" \
         F90FLAGS=" -extend_source -vec-report0 -g -O3 -arch pn4 -tune pn4 -xT -ip -no-prec-div" \
         FC="/home/opt/intel/impi/3.1/bin64/mpiifort" \
         FCFLAGS=" -extend_source -vec-report0 -g -O3 -arch pn4 -tune pn4 -xT -ip -no-prec-div" \
         ./configure \
          --prefix=/home/mfeng/abinit/abinit-5.6.4/plugins/netcdf/tmp \
          --disable-cxx
configure: netCDF 3.6.3
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
configure: checking user options
checking whether CXX is set to ''... no
checking whether FC is set to ''... no
checking whether F90 is set to ''... no
checking whether this is a netCDF-4.x build... no
checking whether netCDF extra tests should be run (developers only)... no
checking whether documentation is to be installed... no
checking whether Fortran compiler(s) should be tested during configure... yes
checking whether configure should try to set compiler flags... yes
checking whether FFIO will be used... no
checking whether to skip C++, F77, or F90 APIs if compiler is broken... yes
checking whether only the C library is desired... no
checking whether examples should be built... yes
checking whether F77 API is desired... yes
checking whether F90 API is desired... yes
checking whether fortran type sizes should be checked... yes
checking whether C API is desired... yes
checking where to get netCDF C-only library for separate fortran libraries...
checking whether CXX API is desired... no
checking whether v2 netCDF API should be built... yes
checking whether the ncgen/ncdump should be built... yes
checking whether large file (> 2GB) tests should be run... no
checking whether benchmaks should be run (experimental)... no
checking whether extreme numbers should be used in tests... yes
checking where to put large temp files if large file tests are run... .
checking whether a win32 DLL is desired... no
checking whether separate fortran libs are desired... no
configure: finding C compiler
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.
make[4]: *** [configure-stamp] Error 77
make[4]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4/plugins/netcdf'
make[3]: *** [package-ready] Error 2
make[3]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4/plugins/netcdf'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4/plugins'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mfeng/abinit/abinit-5.6.4'
make: *** [all] Error 2

I am curious about why --disable-netcdf has no effect on configuration and make. Now I am continue trying to fix this problem.

Thank you for your suggestion. And thanks to Yann too. I hope you can give me more advices about make process.

Best regards,

Aaron

2009/2/11 Alain Jacques <ajs.jacques@gmail.com>

Hello Aaron,

There are 2 things that are strange in your config ... I don't see why abinit configure looks for /home/opt/intel/impi/3.1//bin/mpicc - I assume the right 64bit mpicc resides in /home/opt/intel/impi/3.1/bin64/mpicc (?). And the config test fails because mpicc (/home/opt/intel/impi/3.1/bin/mpicc ... a 32bit compiler) invokes gcc-4.1.2 32bit (32bit is okay but it should be the 32 bit Intel compiler) - and fails to find the /usr/lib/crt1.o lib (that should be there even on a 64bit system). So I wondering if the fact that /home/opt/intel/impi/3.1//bin/mpicc is called comes from a bug in abinit configure or a mess in your setup. So let's do a few tests (maybe after cleaning your PATH and LD_LIBRARY_PATH from pgi and pathscale links that you don't need for the moment - mixing compilers paths and libs is really asking for troubles...)

* what's the output of "echo $PATH", "echo $LD_LIBRARY_PATH", "which mpicc",  "mpicc -showme", "which mpif90" and "mpif90 -showme"

* just for the fun, try a "/home/opt/intel/impi/3.1/bin/mpicc -v"; if the output mentions gcc-4.1.2 then you can tell your system administrator that mpi has been built with gcc.

* try to compile a tiny parallel C code ... save the following lines in testparc.c:

#include <stdio.h>
#include <mpi.h>

int main(int argc, char *argv[]) {
  int numprocs, rank, namelen;
  char processor_name[MPI_MAX_PROCESSOR_NAME];

  MPI_Init(&argc, &argv);
  MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
  MPI_Get_processor_name(processor_name, &namelen);

  printf("Process %d on %s out of %d\n", rank, processor_name, numprocs);

  MPI_Finalize();
}


Compile it with "mpicc testparc.c". Run it with "mpirun -np 2 ./a.out". Do you see the following output (xxx will be the name of your sytem):
Process 1 on xxx out of 2
Process 0 on xxx out of 2
And a "file ./a.out" should say ./a.out: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped ... right?

* if the testparc.c runs okay, do you still have the ...

configure:8505: checking for C compiler default output file name
configure:8532: /home/opt/intel/impi/3.1//bin/mpicc    conftest.c  >&5
/usr/bin/ld: crt1.o: No such file: No such file or directory
... when running abinit configure?

Cheers,

Alain


Aaron wrote:
hi,

Thank you for your advice. I have contacted with my system administrator and he confirmed that mpi installation does not depend on 32-bit version gcc. I cannot tell it does or not, so just let it be. I have been trying a lot of settings, including using FC=ifort CC=icc CXX=icpc and -I to set library path and -L to set path, but the same error kept showing up. 

checking for style of include used by make... GNU
checking for gcc... /home/opt/intel/impi/3.1//bin/mpicc
checking for C compiler default output file name...
configure: error: C compiler cannot create executables
See `config.log' for more details.

If I disable --enable-mpi option, configuration will complete successfully. Description about abinit-5.6.4 on www.abinit.org said if the LD_LIBRARY_PATH and PATH environment variables are not properly set up, the configure script of parallel build will abort with "configure: error: cannot run C compiled programs."  Could my problem be related to this?

LD_LIBRARY_PATH and PATH environment variables in my system are set as following:

PATH=/home/opt/intel/fce/10.1.015/bin/:/home/opt/intel/cce/10.1.015/bin/:/home/opt/pgi/linux86-64/7.0/bin:/home/opt/intel/impi/3.1/bin64:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/mfeng/bin:/home/opt/bin:/sbin:/usr/sbin:/home/opt/vasp/bin:/home/opt/crystal98/utils:/home/opt/tetr_lev00/bin:/home/opt/wien2k:/home/opt/wien2k/SRC_structeditor/bin:/home/opt/pathscale/bin:/home/mfeng/abinit/abinit-5.4.4p/tmp/src/main/

LD_LIBRARY_PATH=/home/opt/intel/fce/10.1.015/lib/:/home/opt/intel/cce/10.1.015/lib/:/home/opt/acml/4.0.0/pathscale64/lib:/home/opt/pathscale/lib/3.0:/home/opt/pathscale/lib/3.0/32:/home/opt/intel/impi/3.1/lib64:/home/opt/intel/mkl/10.0.3.020/lib/em64t

And mpi path is:   /home/opt/intel/impi/3.1/

I hope someone give me some suggestions.  Any advice is welcome. Thanks in advance.

Best regards,

Aaron

...








Archive powered by MHonArc 2.6.15.

Top of Page