[petsc-users] Questions on 1 billion unknowns and 64-bit-indices

Danyang Su danyang.su at gmail.com
Thu Apr 30 13:21:49 CDT 2015


Dear All,

I have run my codes successfully with up to 100 million total unknowns 
using 1000 processors on WestGrid Jasper Cluster, Canada. But when I 
scale the unknows up to 1 billion, the codes crashes with the following 
error. It's out of memory.

Error message from valgrind output

==9344== Invalid read of size 16
==9344==    at 0xADB2906: __intel_sse2_strdup (in 
/lustre/jasper/software/intel/l_ics_2013.0.028/composer\
_xe_2013.1.117/compiler/lib/intel64/libintlc.so.5)
==9344==    by 0xE6: ???
==9344==    by 0xE7: ???
==9344==    by 0x5: ???
==9344==  Address 0xb364410 is 16 bytes inside a block of size 17 alloc'd
==9344==    at 0x4A0638D: malloc (vg_replace_malloc.c:291)
==9344==    by 0x3DE7C6807C: vasprintf (in /lib64/libc-2.5.so)
==9344==    by 0x3DE7C4CBE7: asprintf (in /lib64/libc-2.5.so)
==9344==    by 0x9DC511E: opal_output_init (output.c:144)
==9344==    by 0x9DC042D: opal_init_util (opal_init.c:207)
==9344==    by 0x9CF4EBB: ompi_mpi_init (ompi_mpi_init.c:309)
==9344==    by 0x9D0D802: PMPI_Init (pinit.c:84)
==9344==    by 0x905E976: PMPI_INIT (pinit_f.c:75)
==9344==    by 0x4D5280F: petscinitialize_ (in 
/lustre/jasper/software/petsc/petsc-3.5.1/lib/libpetsc.so.\
3.5.1)
==9344==    by 0x439D05: petsc_mpi_common_mp_petsc_mpi_initialize_ (in 
/lustre/home/danyangs/benchmark/ba\
sin/min3p_thcm)
==9344==    by 0x5FDBB9: MAIN__ (in 
/lustre/home/danyangs/benchmark/basin/min3p_thcm)
==9344==    by 0x4321FB: main (in 
/lustre/home/danyangs/benchmark/basin/min3p_thcm)
==9344==

Error message from Jasper Cluster output
--32725:0:aspacem  <<< SHOW_SEGMENTS: out_of_memory (407 segments, 96 
segnames)
--32725:0:aspacem  ( 0) 
/lustre/jasper/software/valgrind/valgrind-3.9.0/lib/valgrind/memcheck-amd64-linux
--32725:0:aspacem  ( 1) /lustre/home/danyangs/benchmark/basin/min3p_thcm
--32725:0:aspacem  ( 2) /lib64/ld-2.5.so
--32725:0:aspacem  ( 3) 
/data2/PBStmp/6456165.jasper-usradm.westgrid.ca/vgdb-pipe-shared-mem-vgdb-32725-b\
y-danyangs-on-cl2n050
--32725:0:aspacem  ( 4) 
/lustre/jasper/software/valgrind/valgrind-3.9.0/lib/valgrind/vgpreload_core-amd64\
-linux.so
--32725:0:aspacem  ( 5) 
/lustre/jasper/software/valgrind/valgrind-3.9.0/lib/valgrind/vgpreload_memcheck-a\
md64-linux.so
--32725:0:aspacem  ( 6) 
/lustre/jasper/software/petsc/petsc-3.5.1/lib/libpetsc.so.3.5.1
--32725:0:aspacem  ( 7) 
/lustre/jasper/software/openmpi/openmpi-1.6.5-intel/lib/libmpi_cxx.so.1.0.2
--32725:0:aspacem  ( 8) 
/lustre/jasper/software/intel/l_ics_2013.0.028/composer_xe_2013.1.117/mkl/lib/int\
el64/libmkl_scalapack_lp64.so
--32725:0:aspacem  ( 9) 
/lustre/jasper/software/intel/l_ics_2013.0.028/composer_xe_2013.1.117/mkl/lib/int\
el64/libmkl_intel_lp64.so
--32725:0:aspacem  (10) 
/lustre/jasper/software/intel/l_ics_2013.0.028/composer_xe_2013.1.117/mkl/lib/int\
el64/libmkl_sequential.so
--32725:0:aspacem  (11) 
/lustre/jasper/software/intel/l_ics_2013.0.028/composer_xe_2013.1.117/mkl/lib/int\
el64/libmkl_core.so
--32725:0:aspacem  (12) 
/lustre/jasper/software/petsc/petsc-3.5.1/lib/libparmetis.so
--32725:0:aspacem  (13) 
/lustre/jasper/software/petsc/petsc-3.5.1/lib/libmetis.so
--32725:0:aspacem  (14) 
/lustre/jasper/software/openmpi/openmpi-1.6.5-intel/lib/openmpi/mca_paffinity_hwl\
oc.so
--32725:0:aspacem  (15) /usr/lib64/libX11.so.6.2.0
--32725:0:aspacem  (16) /lib64/libpthread-2.5.so
--32725:0:aspacem  (17) /lib64/libssl.so.0.9.8e
--32725:0:aspacem  (18) /lib64/libcrypto.so.0.9.8e
--32725:0:aspacem  (19) 
/lustre/jasper/software/openmpi/openmpi-1.6.5-intel/lib/libmpi_f90.so.1.3.0
--32725:0:aspacem  (20) 
/lustre/jasper/software/openmpi/openmpi-1.6.5-intel/lib/libmpi_f77.so.1.0.7
--32725:0:aspacem  (21) 
/lustre/jasper/software/intel/l_ics_2013.0.028/composer_xe_2013.1.117/compiler/li\
b/intel64/libimf.so

The PETSc configuration is as below

================================================================================
Starting Configure Run at Tue Dec 16 10:42:20 2014
Configure Options: --configModules=PETSc.Configure 
--optionsModule=PETSc.compilerOptions --prefix=/global\
/software/petsc/petsc-3.5.1 --with-shared-libraries 
--with-mpirun=mpiexec --with-vendor-compiler=intel --\
with-blas-lapack-lib=-mkl=sequential --with-cc=mpicc --with-cxx=mpiCC 
--with-fc=mpif90 --COPTFLAGS=-O2 --\
CXXOPTFLAGS=-O2 --FOPTFLAGS=-O2 --with-debugging=no --with-blacs=yes 
--with-blacs-include=/lustre/jasper/\
software/intel/l_ics_2013.0.028/composer_xe_2013.1.117/mkl/include 
--with-blacs-lib=/lustre/jasper/softwa\
re/intel/l_ics_2013.0.028/composer_xe_2013.1.117/mkl/lib/intel64/libmkl_blacs_openmpi_lp64.a 
--with-scala\
pack=yes 
--with-scalapack-include=/lustre/jasper/software/intel/l_ics_2013.0.028/composer_xe_2013.1.117/m\
kl/include 
--with-scalapack-lib="-L/lustre/jasper/software/intel/l_ics_2013.0.028/composer_xe_2013.1.117/\
mkl/lib/intel64/ -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64" 
--download-metis=metis-5.0.2-p3.tar.gz --\
download-parmetis=yes --download-superlu_dist=yes --download-hypre=yes
Working directory: /lustre/jasper/software-build/petsc/petsc-3.5.1
Machine platform:
('Linux', 'jasper.westgrid.ca', '2.6.18-274.el5', '#1 SMP Fri Jul 22 
04:43:29 EDT 2011', 'x86_64', 'x86_6\
4')
Python version:
2.4.3 (#1, Sep 21 2011, 19:55:41)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)]
================================================================================

My case does not hold the conditions of 64-bit-indices as below.
By default the type that PETSc uses to index into arrays and keep sizes 
of arrays is a PetscInt defined to be a 32 bit int. If your problem

  * involves more than 2^31 - 1 unknowns (around 2 billion) OR
  * your matrix might contain more than 2^31 - 1 nonzeros on a single
    process

then you need to use this option. Otherwise you will get strange crashes.

Do you guys have suggestions on this?

Thanks and regards,

Danyang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150430/0ec14c3b/attachment.html>


More information about the petsc-users mailing list