charm AT lists.siebelschool.illinois.edu
Subject: Charm++ parallel programming system
List archive
- From: Roberto de Quadros Gomes <rqg.gomes AT gmail.com>
- To: "charm AT cs.uiuc.edu" <charm AT cs.uiuc.edu>
- Subject: [charm] Weird behaviour using MPI_Alloc_mem and MPI_Free_mem
- Date: Wed, 23 Oct 2013 20:43:32 -0200
- List-archive: <http://lists.cs.uiuc.edu/pipermail/charm/>
- List-id: CHARM parallel programming system <charm.cs.uiuc.edu>
Hi,
Last week I had a problem very similar to presented by Nicolas Bock about segmentation fault when LB was called. So, I noticed that my problem started when I started use MPI_Alloc_mem and MPI_Free_mem in AMPI codes. Always when I have a migration between these functions I receive these messages:CharmLB> GreedyLB: PE [0] step 0 finished at 2.566594 duration 0.008998 s
------------- Processor 1 Exiting: Caught Signal ------------
Signal: segmentation violation
Suggestion: Try running with '++debug', or linking with '-memory paranoid' (memory paranoid requires '+netpoll' at runtime).
------------- Processor 7 Exiting: Caught Signal ------------
Signal: segmentation violation
Suggestion: Try running with '++debug', or linking with '-memory paranoid' (memory paranoid requires '+netpoll' at runtime).
------------- Processor 6 Exiting: Caught Signal ------------
Signal: segmentation violation
Suggestion: Try running with '++debug', or linking with '-memory paranoid' (memory paranoid requires '+netpoll' at runtime).
Charmrun: error on request socket--
Socket closed before recv.
If no migrations is needed, then no problem is shown.
But, whether I back to "malloc" and "free" functions, the LB works fine. You can reproduce building with
.$ampicc mpiteste.c -o mpiteste -module GreedyLB -memory isomalloc -D_Problem
.$ampicc mpiteste.c -o mpiteste -module GreedyLB -memory isomalloc -D_Problem
and running it.
If you remove -D_Problem, it works.
#include <stdio.h> #include <stdlib.h> #include <mpi.h> #define _GAMMA 20 #define DPRINTF printf //#define DPRINTF int main( int qt_par, char *par[] ) { int size,myrank,i,j,gama; unsigned char *buff,*buff2; MPI_Init(&qt_par, &par); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); #ifdef _Problem MPI_Alloc_mem(100,MPI_INFO_NULL,&buff2); #else buff2=malloc(100); #endif for( i = 0; i < 100 ; i++ ) { #ifdef _Problem MPI_Alloc_mem(100,MPI_INFO_NULL,&buff); #else buff = malloc(100); #endif for(j = 0;j < (myrank+5)*10;j++) { memset(buff,myrank,100); } MPI_Barrier(MPI_COMM_WORLD); if(gama-- < 0 ) { gama = _GAMMA; MPI_Migrate(); } #ifdef _Problem MPI_Free_mem(buff); #else free(buff); #endif } #ifdef _Problem MPI_Free_mem(buff2); #else free(buff2); #endif MPI_Barrier(MPI_COMM_WORLD); MPI_Finalize(); return 0; }
- [charm] Weird behaviour using MPI_Alloc_mem and MPI_Free_mem, Roberto de Quadros Gomes, 10/23/2013
- Re: [charm] Weird behaviour using MPI_Alloc_mem and MPI_Free_mem, Phil Miller, 10/24/2013
- Re: [charm] Weird behaviour using MPI_Alloc_mem and MPI_Free_mem, Phil Miller, 10/25/2013
- Re: [charm] Weird behaviour using MPI_Alloc_mem and MPI_Free_mem, Roberto de Quadros Gomes, 10/25/2013
- Re: [charm] Weird behaviour using MPI_Alloc_mem and MPI_Free_mem, Roberto de Quadros Gomes, 10/25/2013
- Re: [charm] Weird behaviour using MPI_Alloc_mem and MPI_Free_mem, Roberto de Quadros Gomes, 10/25/2013
- Re: [charm] Weird behaviour using MPI_Alloc_mem and MPI_Free_mem, Phil Miller, 10/25/2013
- Re: [charm] Weird behaviour using MPI_Alloc_mem and MPI_Free_mem, Phil Miller, 10/24/2013
Archive powered by MHonArc 2.6.16.