[petsc-users] Memory allocation limit in IBM AIX POE
Satish Balay
balay at mcs.anl.gov
Sun Nov 20 22:55:48 CST 2011
perhaps not related - but on older IBM machines we used to defualt to
using a compiler option -bmaxdata:0x70000000
Without this - the memory allocatable was much lower than the system
ram. I guess you can give this a try..
Satish
On Mon, 21 Nov 2011, Gong Ding wrote:
> Hi,
> This problem has nothing to do with petsc.
> However, I hope some one knows POE of AIX in this mailing list.
>
> We now have a small cluster of PPC6.
> The system is AIX6.1, with xlc and POE.
> I found that when compiled with POE(compiled by mpCC_r, call MPI_Init at the beginning of main function, see below),
> any memory allocation exceeds about 4M will crash.
>
> The testing code is really simple:
>
> #define HAVE_MPI
>
> #ifdef HAVE_MPI
> #include "mpi.h"
> #endif
>
> #include <iostream>
> #include <vector>
>
> struct ST
> {
> int i;
> int j;
> int k;
> double v;
> };
>
>
> int main(int argc, char **argv)
> {
> #ifdef HAVE_MPI
> MPI_Init(&argc, &argv);
> #endif
>
> std::vector<ST> array;
> for(size_t i=0; i<300000; i++)
> {
> ST st;
> array.push_back(st);
> }
>
> #ifdef HAVE_MPI
> MPI_Finalize();
> #endif
>
> return 0;
> }
>
> And the makefile:
> ALL: crash_mpi
>
> crash_mpi: crash_mpi.o
> mpCC_r -q64 -brtl -o crash_mpi crash_mpi.o
>
> crash_mpi.o : crash_mpi.cc
> mpCC_r -q64 -qansialias -qrtti=all -c crash_mpi.cc
>
> The code tries to push 300K structure ST into a vector.
> Total memory request is about 6M.
> This code will always crash.
> However, push 200K ST into vector works well.
>
> It seems POE has some memory limitation here.
> Does anyone know how to cancle this limitation?
>
> Thanks
>
> Gong Ding
>
>
>
>
More information about the petsc-users
mailing list