[petsc-users] Memory allocation limit in IBM AIX POE
    Gong Ding 
    gdiso at ustc.edu
       
    Sun Nov 20 22:01:50 CST 2011
    
    
  
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