[CIG-MC] [Fwd: CitcomCU MPI problem, perhaps]

Thorsten Becker thorstinski at gmail.com
Wed Aug 18 15:19:08 PDT 2010


Ah, with apologies, I'll just answer half of my question myself.  In
the previous case, the ratio between processors was not the same as the
ratio between the mgunits, which now occurs to me I knew was not a good
idea with CitcomCU.

Using 

nprocx=8 nprocz=2 nprocy=2

or

nprocx=4 nprocz=1 nprocy=1

Everything works just honky dory. I still wonder why it would work once,
and then fail, but oh well. Sorry about that. 

Cheers


Thorsten




-------- Forwarded Message --------
From: Thorsten Becker <thorstinski at gmail.com>
To: Eh Tan <tan2 at geodynamics.org>, cig-mc at geodynamics.org
Cc: Lisa Alpert <lisaalpert4 at gmail.com>
Subject: CitcomCU MPI problem, perhaps
Date: Wed, 18 Aug 2010 15:11:23 -0700

Hi Eh,

Using the CIG SVN version of CitcomCU, we are experiencing some strange
problems that may be related to MPI calls. The attached model works
fine in lower resolution, as commented out in the input file. If we use
the higher  

levels=6 nx=1,257 nz=1,65 ny=1,65

resolution, the code works fine, too, until after the first time step.
After processing the initial velocities (by call to output), the code
hangs in the second assemble_forces step (upon reentry into the
solver). In particular, it seems to now like the exchange_id_d20 part
that I've given below. No error messages are produced, nor any core
dumps, but the code just hangs, presumably because because of some
wrong call to MPI. 

Do you see any simple solution to this, either by us fixing our input
file (sorry...), or by looking at the source code? 

Thanks much in advance!

Cheers

T

>>> part of exchange_id_d20 that causes the trouble



	idb = 0;
		for(k = 1; k <= 2; k++)
			if(E->parallel.NUM_PASS[levmax].bound[i][k])
			{
				for(j = 1; j <= E->parallel.NUM_NEQ[lev].pass[i][k]; j++)
					S[k][j - 1] = U[E->parallel.EXCHANGE_ID[lev][j].pass[i][k]];

				target_proc = E->parallel.PROCESSOR[lev].pass[i][k];
				if(target_proc != E->parallel.me)
				{
					idb++;
					MPI_Isend(S[k], E->parallel.NUM_NEQ[lev].pass[i][k], MPI_DOUBLE,
target_proc, 1, MPI_COMM_WORLD, &request[idb - 1]);
				}
			}					/* for k */
		

<<<


-- 
Thorsten W Becker           -       Department of Earth Sciences
University of Southern California,   3651 Trousdale Pkwy, MC0740
Los Angeles CA 90089-0740   -        geodynamics.usc.edu/~becker

-- 
Thorsten W Becker           -       Department of Earth Sciences
University of Southern California,   3651 Trousdale Pkwy, MC0740
Los Angeles CA 90089-0740   -        geodynamics.usc.edu/~becker



More information about the CIG-MC mailing list