The problem is not in PETSc.    Run in the debugger  and see exactly where 
this memcpy() overlap happens and if it can be fixed.

  Barry


On Dec 13, 2010, at 4:30 AM, Max Ng wrote:

> Hi,
> 
> I am having a similar problem and I'm using PETSc 3.1-p6. I wish to use 
> SPOOLES because I need to build on Windows with VC++ (and without a Fortran 
> compiler). And in my tests somehow SPOOLES performs better than SuperLU.
> 
> My program runs correctly in mpiexec -n 1. When I try mpiexec -n 2, I got 
> this error:
> 
> Assertion failed in file helper_fns.c at line 337: 0
> memcpy argument memory ranges overlap, dst_=0x972ef84 src_=0x972ef84 len_=4
> 
> internal ABORT - process 1
> Assertion failed in file helper_fns.c at line 337: 0
> memcpy argument memory ranges overlap, dst_=0x90c4018 src_=0x90c4018 len_=4
> 
> internal ABORT - process 0
> rank 1 in job 113  vm1_57881   caused collective abort of all ranks
>   exit status of rank 1: killed by signal 9 
> 
> Here is the source code:
> 
>             // N = 40000, n = 20000, nnz = 9
>             //
>             MatCreate(comm, &mat);
>             MatSetType(mat, MATAIJ);
>             MatSetSizes(mat, n, n, N, N);
>             MatSeqAIJSetPreallocation(mat, nnz, PETSC_NULL);
>             MatMPIAIJSetPreallocation(mat, nnz, PETSC_NULL, nnz, PETSC_NULL);
> 
>             // some code to fill the matrix values
>             // ...
> 
>             KSPCreate(comm, &ksp);
>             KSPSetOperators(ksp, mat, mat, DIFFERENT_NONZERO_PATTERN);
>             KSPSetType(ksp, KSPPREONLY);
> 
>             KSPGetPC(ksp, &pc);
>             PCSetType(pc, PCLU);
>             PCFactorSetMatSolverPackage(pc, MAT_SOLVER_SPOOLES);
> 
>             KSPSetUp(ksp);
> 
> It crashes at the KSPSetUp() statement.
> 
> Do you have any ideas? Thanks in advance!
> 
> Max Ng
> 
> On Dec 3, 2010, at 4:19 PM, Xiangdong Liang wrote:
> 
>> > Hi everyone,
>> > 
>> > I am wondering how I can run the direct solver in parallel. I can run
>> > my program in a single processor with direct linear solver by
>> > 
>> > ./foo.out  -ksp_type preonly -pc_type lu -pc_factor_mat_solver_package 
>> > spooles
>> > 
>> > However, when I try to run it with mpi:
>> > 
>> > mpirun.openmpi -np 2 ./foo.out -ksp_type preonly -pc_type lu
>> > -pc_factor_mat_solver_package spooles
>> > 
>> > I got error like this:
>> > 
>> > [0]PETSC ERROR: --------------------- Error Message
>> > ------------------------------------
>> > [0]PETSC ERROR: No support for this operation for this object type!
>> > [0]PETSC ERROR: Matrix type mpiaij  symbolic LU!
>> > 
>> > [0]PETSC ERROR: Libraries linked from
>> > /home/hazelsct/petsc-2.3.3/lib/linux-gnu-c-opt
>> > [0]PETSC ERROR: Configure run at Mon Jun 30 14:37:52 2008
>> > [0]PETSC ERROR: Configure options --with-shared --with-dynamic
>> > --with-debugging=0 --useThreads 0 --with-mpi-dir=/usr/lib/openmpi
>> > --with-mpi-shared=1 --with-blas-lib=-lblas --with-lapack-lib=-llapack
>> > --with-umfpack=1 --with-umfpack-include=/usr/include/suitesparse
>> > --with-umfpack-lib="[/usr/lib/libumfpack.so,/usr/lib/libamd.so]"
>> > --with-superlu=1 --with-superlu-include=/usr/include/superlu
>> > --with-superlu-lib=/usr/lib/libsuperlu.so --with-spooles=1
>> > --with-spooles-include=/usr/include/spooles
>> > --with-spooles-lib=/usr/lib/libspooles.so --with-hypre=1
>> > --with-hypre-dir=/usr --with-babel=1 --with-babel-dir=/usr
>> > [0]PETSC ERROR:
>> > ------------------------------------------------------------------------
>> > [0]PETSC ERROR: MatLUFactorSymbolic() line 2174 in 
>> > src/mat/interface/matrix.c
>> > [0]PETSC ERROR: PCSetUp_LU() line 257 in src/ksp/pc/impls/factor/lu/lu.c
>> > -------------------------------------------------------
>> > 
>> > Would you like to tell me where I am doing wrong? I appreciate your help.
>> > 
>> > Xiangdong
> 

Reply via email to