[mpich-discuss] mpich-discuss Digest, Vol 20, Issue 16
    Jayesh Krishna 
    jayesh at mcs.anl.gov
       
    Wed May 12 08:48:26 CDT 2010
    
    
  
 Typo - read as -  Looks like you are allocating memory for *profit1* and receiving data into *profit*.
-Jayesh
----- Original Message -----
From: "Jayesh Krishna" <jayesh at mcs.anl.gov>
To: mpich-discuss at mcs.anl.gov
Cc: keanesankar at gmail.com
Sent: Wednesday, May 12, 2010 8:45:19 AM GMT -06:00 US/Canada Central
Subject: Re: [mpich-discuss] mpich-discuss Digest, Vol 20, Issue 16
Hi,
 Did you intend to receive the *profits* to *profit* array or the *profit1* array ?
>> profit1 = malloc (n/nprocs * sizeof(double)); 
>> MPI_Recv(profit,n/nprocs,MPI_DOUBLE,0,tag,MPI_COMM_WORLD,&status); 
 Looks like you are allocation memory for *profit1* and receiving data into *profit*.
Regards,
Jayesh
----- Original Message -----
From: "sankar s" <keanesankar at gmail.com>
To: mpich-discuss at mcs.anl.gov
Sent: Wednesday, May 12, 2010 1:55:27 AM GMT -06:00 US/Canada Central
Subject: Re: [mpich-discuss] mpich-discuss Digest, Vol 20, Issue 16
Hi, 
Thank you for immediate reply. 
Now I used malloc for creating space for pointer profit and also used MPI_Recv instead of MPI_Irecv.Now its not giving any error. 
But instead of passing profit1 (MPI_DOUBLE), its passing only zeros. pls don't mind for asking some easy questions like this. am very new to this. 
/*CODE*/ 
int main(int argc, char*argv[]){ 
double *simulateRuns(int, int, int, int); 
double simulateOneRun(int,int,int); 
void stat(double *,int); 
int nprocs; /* number of processes */ 
int rank,tag=1,i; /* the unique identification of this process */ 
long int before,after; 
double * profit1,* profit2,* profit; 
int n=10,m=20000,s=80,S=200; 
MPI_Status status; 
before=GetTickCount(); 
MPI_Init (&argc, &argv); 
MPI_Comm_rank (MPI_COMM_WORLD, &rank); 
MPI_Comm_size (MPI_COMM_WORLD, &nprocs); 
printf("rank=%d nproc=%d\n",rank,nprocs); 
if (rank==0){ 
profit1=simulateRuns(n/nprocs,m,s,S); 
stat(profit1,n/2); 
MPI_Send(profit1,n/nprocs,MPI_DOUBLE,1,tag,MPI_COMM_WORLD); 
} 
if(rank==1){ 
profit2=simulateRuns(n/nprocs,m,s,S); 
stat(profit2,n/2); 
profit1 = malloc (n/nprocs * sizeof(double)); 
MPI_Recv(profit,n/nprocs,MPI_DOUBLE,0,tag,MPI_COMM_WORLD,&status); 
stat(profit,n/2); 
} 
MPI_Finalize (); 
after=GetTickCount(); 
printf("time elapsed=%ld\n",(after-before)); 
} 
/*OUTPUT*/ 
C:\Users\Sankar\My Documents\visual studio 2008\Projects\Inventorympi\Debug>mpie 
xec -n 2 Inventorympi.exe 
rank=1 nproc=2 
65.145380 
64.170140 
64.402515 
65.238190 
64.651180 
stats on profit 
num.obs min max average std.dev 
5 64.170140 65.238190 64.721481 0.231481 
0.000000 
0.000000 
0.000000 
0.000000 
0.000000 
stats on profit 
num.obs min max average std.dev 
5 0.000000 0.000000 0.000000 0.000000 
time elapsed=266 
rank=0 nproc=2 
65.145380 
64.170140 
64.402515 
65.238190 
64.651180 
stats on profit 
num.obs min max average std.dev 
5 64.170140 65.238190 64.721481 0.231481 
time elapsed=188 
Thank you 
_______________________________________________
mpich-discuss mailing list
mpich-discuss at mcs.anl.gov
https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
_______________________________________________
mpich-discuss mailing list
mpich-discuss at mcs.anl.gov
https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
    
    
More information about the mpich-discuss
mailing list