[CPMD-list] Intel compiler 10 seg fault resolution on quadcore Xeon.

Axel Kohlmeyer akohlmey at cmm.chem.upenn.edu
Tue Oct 16 02:09:03 CET 2007


On Sun, 14 Oct 2007, Joseph Hargitai wrote:

joseph,


JH> It appears that using version 10 of Intel, on quadcore 2.33Ghz 
JH> machines the -xT flag causes the seg-fault. The interconnect is 
JH> Infinband.

that is not overly surprising. the vectorization optimizations of
the intel compiler have been getting increasingly aggressive over
time and thus they have an increased risk of miscompiling the code.

it would be interesting to see where you get the segfault. e.g.
by enabling core dumps and then doing a stack trace on the coredump.
some of the output subroutines and particularly the memory allocation
and deallocation wrappers are frequently miscompiled by compilers
of different vendors. sometimes, those files have to be compiled
manually. i better not comment on vector machines, where significant
"manual postprocessing" of the makefile can be required thanks to
not overly cooperative compilers.

JH> Using Atlas from the CPMD site and the following conf file works. (it also works with 
JH>   CC='/usr/mpi/intel/mvapich-0.9.9/bin/mpicc'. 
JH> 
JH> Optimization level -O2 also works, but there is no increase at all in speed. This is stripped to minimal optimization:
JH> 
JH> 
JH> IRAT=2
JH>      CFLAGS=''
JH>      CPP='/lib/cpp -P -C -traditional'
JH>      CPPFLAGS='-D__Linux -D__PGI -DFFT_DEFAULT -DPOINTER8 -DLINUX_IFC \
JH>         -DPARALLEL'

you should also add the -DMYRINET define here. most infiniband 
implementations not support calling SYSTEM() except for very, 
very new kernel/driver combos. -DMYRINET will use alternate
methods to achieve what otherwise is done with composing a
small shell command in a string and then doing a CALL SYSTEM(string).

JH>      FFLAGS='-pc64 -unroll'
JH>      LFLAGS=' -L. -latlas_x86_64'

hmmmm... since you are on an intel quad-core, it might be worth
trying out the intel MKL instead. that could be a bit faster...

JH>      FFLAGS_GROMOS='-Dgood_luck $(FFLAGS)'
JH>        FC='/usr/mpi/intel/mvapich-0.9.9/bin/mpif77 -c'
JH>        CC='/usr/mpi/gcc/mvapich-0.9.9/bin/mpicc'
JH>        LD='/usr/mpi/intel/mvapich-0.9.9/bin/mpif77'
JH> 
JH> 

JH> as far as the results for various node/cpu combinations: (8 cores 
JH> per node)
JH> 
JH> 
JH> 5 nodes, 8 cpus, for 40 cpu total 
JH> 
JH>   ELAPSED TIME :    0 HOURS 20 MINUTES 51.31 SECONDS     
JH>  
JH> 
JH> reverse:
JH> 
JH> 8 nodes 5 cpus, for 40 cpu total
JH> 
JH>  CPU TIME :    0 HOURS 14 MINUTES 26.52 SECONDS     


not very surprising. it would actually be very interesting
to compare 8 nodes with 4PE vs 4 nodes with 8PE. since in 
the case of 4PE/node each of the MPI threads has twice the
cache and CPMD will benefit from it. with 5PE/node two of
them have to share the cache, and they should slow down all
of it. with 8PE/node you have a lot of memory contention
and collisions at the communication.


cheers,
    axel.

JH>    
JH> 
JH> 
JH> 8 nodes 6 cpus  for 48 cpu total
JH> 
JH>      CPU TIME :    0 HOURS 10 MINUTES  5.86 SECONDS     
JH>   
JH> 
JH> 
JH> 6 nodes 8 cpus - 48 cpu total
JH> 
JH>    CPU TIME :    0 HOURS 13 MINUTES 40.81 SECONDS     
JH>    ELAPSED TIME :    0 HOURS 14 MINUTES 18.46 SECONDS     
JH> 
JH> 
JH> 
JH> 6 nodes  7 cpus -  42 cpu total  
JH>  CPU TIME :    0 HOURS 14 MINUTES 31.68 SECONDS     
JH>  
JH> 
JH> 1 node 8 cpus - 8 cpu total -  
JH> 
JH>  CPU TIME :    1 HOURS 31 MINUTES 55.62 SECONDS     
JH>   
JH> 
JH> 2 nodes 8 cpus - 16 cpu total
JH> 
JH>        CPU TIME :    0 HOURS 44 MINUTES 42.87 SECONDS    
JH>   
JH> j
JH> _______________________________________________
JH> CPMD-list mailing list
JH> CPMD-list at cpmd.org
JH> http://cpmd.org/mailman/listinfo/cpmd-list
JH> 

-- 
=======================================================================
Axel Kohlmeyer   akohlmey at cmm.chem.upenn.edu   http://www.cmm.upenn.edu
   Center for Molecular Modeling   --   University of Pennsylvania
Department of Chemistry, 231 S.34th Street, Philadelphia, PA 19104-6323
tel: 1-215-898-1582,  fax: 1-215-573-6233,  office-tel: 1-215-898-5425
=======================================================================
If you make something idiot-proof, the universe creates a better idiot.


More information about the CPMD-list mailing list