Newsgroups: comp.parallel.pvm
From: ferrari@mathcs.emory.edu (Adam Ferrari)
Subject: Direct Routing Lockup
Organization: Emory University, Dept of Math and CS
Date: 19 Jul 1994 21:56:26 GMT
Message-ID: <30hi6a$9f3@emory.mathcs.emory.edu>


Hi,

	I'm working with PVM 3.3.3 and having some trouble with the direct
routing policy (TCP) activated by a call to

		pvm_setopt(PvmRoute,3);

My trouble comes when two tasks attempt a head-to-head send and become 
deadlocked in the TCP connect phase.  I suspected that the following
code segment at application startup time would solve my problem:


		/* Select direct routing */
		pvm_setopt(PvmRoute,3);
		
		/* Make sure all other tasks have done the same */
		my_barrier(tids,ntids,me,SETOPT_BARRIER);

		/* Do a complete set of dummy sends to make sure    */
		/* connection phase is done before real work starts */
		for(i=0;i<me;i++)
			pvm_recv(tids[i],SETOPT_SYNC);
		if(me<(ntids-1)) {
			pvm_initsend(PvmDataDefault);
			pvm_mcast(&tids[me+1],ntids-me-1,SETOPT_SYNC);
		}

This code is executed without any problems, but it doesn't prevent the later
connection lockups.  Has anyone experienced this problem?  If so, is the only
solution to prevent head to head direct sends?  If so, this would be a shame.


_____________________________________________________________________________

Adam Ferrari
Emory University, Atlanta, GA 
Internet:  ferrari@mathcs.emory.edu		BITNET: ferrari@emory.bitnet
UUCP: {rutgers,gatech}!emory!ferrari	
_____________________________________________________________________________



