Hi Jeff I used the configure option: --enable-ptmalloc2-opt-sbrk
To solve a segmentation fault in memory allocation with openmpi.1.2.x and PGI 7.1-4 and 7.2. I have a simple source code (Callocrash.c) as example of this (see belowe). Could you test this code on a node with 8 Gbyte of RAM and RedHat enterprise 4+ openmpi 1.2.x, PGI 7.1-4. I compiled it with: pgcc -o Callocrash Callocreash.c (it's ok) gnu4 -o Callocrash Callocreash.c (it's ok) mpicc -o Callocrash Callocreash.c (Segmentation fault in sysMALLOC when it has to allocate 622947588 bytes) However thanks in advance greetings Callocrash.c #include <stdio.h> #include <stdlib.h> int main( int argc, char *argv[]) { /* * memory allocations simulation for ~50M nonzeros: * nd=180 md=350 mdy=420 * * if this program crashes, there is a compiler problem */ printf("memory allocations simulation for ~50M nonzeros: nd=180 md=350 mdy=420\n"); printf("if this program crashes, there check your compiler/environment configuration\n"); printf("sizeof(int) %d\n",sizeof(int)); printf("sizeof(int*) %d\n",sizeof(int*)); printf("sizeof(size_t) %d\n",sizeof(size_t)); if( sizeof(size_t)<8 || sizeof(int*)<8 ) { printf("please compile this program for a 64 bit environment!\n"); return -1; } int *p; printf("allocation 1/4..\n"); p = calloc(47109185,16); if(!p)printf("..failed.\n"); printf("allocation 2/4..\n"); p = calloc(47109185,4); if(!p)printf("..failed.\n"); printf("allocation 3/4..\n"); p = calloc(47109185,4); if(!p)printf("..failed.\n"); printf("allocation 4/4..\n"); p = calloc(622947588,16); if(!p)printf("..failed.\n"); if(!p) return -1; printf("allocations test passed (no crash)\n"); return 0; } On 15/10/08 19:42, "Jeff Squyres" <jsquy...@cisco.com> wrote: > On Oct 15, 2008, at 9:35 AM, Francesco Iannone wrote: > >> I have a cluster of 16 nodes DualCPU DualCore AMD RAM 16 GB with >> InfiniBand >> CISCO HCA and switch InfiniBand. >> It uses Linux RH Enterprise 4 64 bit , OpenMPI 1.2.7, PGI 7.1-4 and >> openib-1.2-7. >> >> Hence it means that the option ‹disable-ptmalloc2 is catastrophic in >> the >> above configuration. > > Actually, I notice that in your original message, you said "--disable- > ptmalloc2-opt-sbrk", but here you said "--disable-ptmalloc2". The > former is: > > Only trigger callbacks when sbrk is used > for small > allocations, rather than every call to > malloc/free. > (default: enabled) > > So it should be fine to disable; it shouldn't affect overall MPI > performance too much. > > The latter disables ptmalloc2 entirely (and you'll likely get lower > benchmark bandwidth for large messages). > > I'm unaware of either of these options leading to problems with the > PGI compiler suite; I have tested OMPI v1.2.x with several versions of > the PGI compiler without problem (although my latest version is PGI > 7.1-4). Dr. Francesco Iannone Associazione EURATOM-ENEA sulla Fusione C.R. ENEA Frascati Via E. Fermi 45 00044 Frascati (Roma) Italy phone 00-39-06-9400-5124 fax 00-39-06-9400-5524 mailto:francesco.iann...@frascati.enea.it http://www.afs.enea.it/iannone