More specifically, you have overflowed exactly to 0, thus PetscMalloc() returns without<br>an error code, as it says in the docs.<br><br>  Matt<br><br><div class="gmail_quote">On Mon, Mar 23, 2009 at 7:47 PM, Barry Smith <span dir="ltr">&lt;<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">[anlextwls097-161:~/Documents/RandD-100] barrysmith% python<br>
<br>
&gt;&gt;&gt; npixel = 256*256*5<br>
&gt;&gt;&gt; print npixel<br>
327,680<br>
&gt;&gt;&gt; print npixel*npixel<br>
107,374,182,400<br>
<br>
<br>
The problem is that your n is too big to fit into a PetscInt hence bad stuff happens.<br>
This is a fatal flaw of C, it doesn&#39;t generation exceptions for integer overflow.<br>
<br>
If you want to have sizes this big you need to config/configure.py PETSc with<br>
--with-64-bit-indices then PETSc uses 64 bit integers for PETSc and things will fit.<br>
Of course, likely you still won&#39;t have enough memory to allocate such a big dense matrix.<br><font color="#888888">
<br>
  Barry</font><div><div></div><div class="h5"><br>
<br>
<br>
On Mar 23, 2009, at 6:41 PM, David Fuentes wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
running on ubuntu 8.04.<br>
<br>
the following code should reproduce the problem.<br>
<br>
<br>
<br>
static char help[] = &quot;MatCreateSeqDense\n\n&quot;;<br>
<br>
#include &quot;petscpc.h&quot;<br>
<br>
#undef __FUNCT__<br>
#define __FUNCT__ &quot;main&quot;<br>
int main(int argc,char **args)<br>
{<br>
 Mat            mat;<br>
 PetscErrorCode ierr;<br>
 PetscInt       npixel = 256*256*5;<br>
 PetscInt       n= npixel * npixel;<br>
<br>
 PetscInitialize(&amp;argc,&amp;args,(char *)0,help);<br>
<br>
<br>
 /* Create and assemble matrix */<br>
 ierr = MatCreateSeqDense(PETSC_COMM_SELF,n,n,PETSC_NULL,&amp;mat);CHKERRQ(ierr);<br>
 ierr = MatSetValue(mat,1,1,1.0,INSERT_VALUES);CHKERRQ(ierr);<br>
 ierr = MatAssemblyBegin(mat,MAT_FINAL_ASSEMBLY);CHKERRQ(ierr);<br>
 ierr = MatAssemblyEnd(mat,MAT_FINAL_ASSEMBLY);CHKERRQ(ierr);<br>
<br>
 /* Free data structures */<br>
 ierr = MatDestroy(mat);CHKERRQ(ierr);<br>
 ierr = PetscFinalize();CHKERRQ(ierr);<br>
 return 0;<br>
}<br>
<br>
<br>
<br>
below is my error message.<br>
<br>
<br>
<br>
<br>
<br>
[0]PETSC ERROR: --------------------- Error Message ------------------------------------<br>
[0]PETSC ERROR: Argument out of range!<br>
[0]PETSC ERROR: Row too large: row 1 max -1!<br>
[0]PETSC ERROR:<br>
------------------------------------------------------------------------<br>
[0]PETSC ERROR: Petsc Release Version 3.0.0, Patch 4, Fri Mar  6<br>
14:46:08 CST 2009<br>
[0]PETSC ERROR: See docs/changes/index.html for recent updates.<br>
[0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.<br>
[0]PETSC ERROR: See docs/index.html for manual pages.<br>
[0]PETSC ERROR:<br>
------------------------------------------------------------------------<br>
[0]PETSC ERROR: ./ex4 on a intel-10. named <a href="http://setebos.ices.utexas.edu" target="_blank">setebos.ices.utexas.edu</a> by<br>
fuentes Mon Mar 23 18:39:32 2009<br>
[0]PETSC ERROR: Libraries linked from<br>
/org/groups/oden/LIBRARIES/PETSC/petsc-3.0.0-p4/intel-10.1-mpich2-1.0.7-cxx-dbg/lib<br>
[0]PETSC ERROR: Configure run at Fri Mar 20 20:39:04 2009<br>
[0]PETSC ERROR: Configure options<br>
--with-mpi-dir=/org/groups/oden/LIBRARIES/MPI/mpich2-1.0.7-intel-10.1<br>
--with-clanguage=C++ --with-shared=1<br>
--with-blas-lapack-dir=/opt/intel/mkl/<a href="http://10.0.3.020" target="_blank">10.0.3.020</a> --download-mumps=1<br>
--download-parmetis=1 --download-scalapack=1 --download-blacs=1<br>
--download-plapack=1 --download-superlu_dist=1<br>
[0]PETSC ERROR:<br>
------------------------------------------------------------------------<br>
[0]PETSC ERROR: MatSetValues_SeqDense() line 672 in<br>
src/mat/impls/dense/seq/dense.c<br>
[0]PETSC ERROR: MatSetValues() line 921 in src/mat/interface/matrix.c<br>
[0]PETSC ERROR: main() line 21 in src/ksp/pc/examples/tests/ex4.c<br>
application called MPI_Abort(MPI_COMM_WORLD, 63) - process 0[unset]:<br>
aborting job:<br>
application called MPI_Abort(MPI_COMM_WORLD, 63) - process 0<br>
<br>
<br>
<br>
<br>
<br>
<br>
df<br>
<br>
<br>
<br>
<br>
On Mon, 23 Mar 2009, Lisandro Dalcin wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
1) Which system are you running on?<br>
<br>
2) are you completely sure BOTH things happens, I mean... that malloc<br>
returns null AND the error code is zero?<br>
<br>
<br>
On Mon, Mar 23, 2009 at 7:49 PM, David Fuentes &lt;<a href="mailto:fuentesdt@gmail.com" target="_blank">fuentesdt@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
In 3.0.0-p4<br>
<br>
PetscMalloc doesn&#39;t seem to return an error code if the requested memory<br>
wasn&#39;t allocated ? Is this correct ?<br>
<br>
I&#39;m trying to allocate a dense matrix for which there was not enough memory<br>
and PetscMalloc is returning a null pointer but no errorcode to<br>
catch. which is causing seg faults later.<br>
<br>
<br>
<br>
thanks,<br>
df<br>
<br>
<br>
</blockquote>
<br>
<br>
<br>
--<br>
Lisandro Dalcín<br>
---------------<br>
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)<br>
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)<br>
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)<br>
PTLC - Güemes 3450, (3000) Santa Fe, Argentina<br>
Tel/Fax: +54-(0)342-451.1594<br>
<br>
</blockquote></blockquote>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener<br>