Newsgroups: comp.parallel.pvm
From: frolich@corrine.cpc.cs.ucf.edu (Ethan Frolich )
Subject: Re: Controling process/machine mapping
Organization: University of Central Florida
Date: 2 Sep 1994 04:40:01 GMT
Message-ID: <346ab1$ajc@osceola.cs.ucf.edu>

Andy Boden (andy@henry.jpl.nasa.gov) wrote:
: Okay PVM jocks,

:    I've got what HAS to be a stupid question, but I haven't been able
: to find the answer in the 5 min of looking I've done...

:    I've got a heterogenious collection of machines -- which include
: several multiprocessor Sun and SGI boxes.  My computation is set up as
: a master-slave arrangement, and I'd like to have exactly one slave for
: each processor in the machine -- meaning that I want to hang multiple
: slaves off the multiprocessor boxes.  I have been using the default
: process mapping that PVM provides, but even when I manipulate the
: speed settings in my host file that doesn't seem to get me a
: reasonable distribution of processes across the machine.

:    So the question is, what is the minimum-effort way of controling
: the mapping of PVM processes to machines?  Thanks for your time in
: advance.

: 							- A.B.

	You're right. It's probably a stupid question. :)

	If you look in the manual under pvm_spawn(), there is an argument
which can be passed to it which specifies the name of the host on which
to spawn the process. In the PVM 3.2 documentation that I've got, it says:

	int numt = pvm_spawn(  char *task, char **argv,
	                       int flag, char *where,
	                       int ntask, int *tids )

The flag variable should be set to PvmTaskHost (=1) so you can specify the
name of the host (or to PvmTaskArch (=2) if you just need a machine of a
particular architechture), and the character pointer variable 'where' should
have the name of the host you want the process(s) spawned on (PvmTaskArch 
needs 'where' to have the name of the architecture---RTFM for that info). 
The rest of the variables should be self explanatory. 

Ethan Frolich (frolich@cs.ucf.edu)

