Newsgroups: comp.parallel.pvm
From: sdblackb@uncc.edu (Stuart D Blackburn)
Subject: Re: PvmDataInPlace takes longer than PvmDataRaw???
Organization: University of NC at Charlotte
Date: 4 Aug 1995 18:59:35 GMT
Message-ID: <3vtqmn$qu7@news.uncc.edu>

	Despite the fact that it is usually bad form to follow up
your own post, I have some additional data from running the programs
in question on multiple workstations which follows the same trend of
executing slower using PvmDataInPlace buffering. I am not going into
the specifics of my program again, so if you are interested see my
post from yesterday.
	I ran the two programs on a virtual machine of 10 Sun Workstations.
Each slave was running by itself on a workstation, except for the one 
which the master was also running. I used the same 10 machines which no 
one else was using at the time. 
	For a 20x10x10 matrix, it took the twice as long for to use 
PvmDataInPlace. The messages would have included 2 integers
and 264 floating point numbers of a 22X12 array for a total of 1064 Bytes. 
The slaves sent this message to 2 other slaves every iteration. (Between 76 
and 105 iterations depending on the particular slave.) I ran each version
4 times, with output +/- 1 second to the particular instance below: 

PVM Version 3.2 output  
	* 20x10x10 matrix with 0.01 tolerance
	* Using PvmDataInPlace encoding

Slave 1 finished 76 iterations in 5.3855 seconds
Slave 10 finished 76 iterations in 5.4596 seconds
Slave 2 finished 88 iterations in 6.1006 seconds
Slave 9 finished 88 iterations in 6.2379 seconds
Slave 3 finished 96 iterations in 6.6903 seconds
Slave 8 finished 96 iterations in 6.7334 seconds
Slave 4 finished 102 iterations in 7.0824 seconds
Slave 7 finished 102 iterations in 7.1758 seconds
Slave 5 finished 105 iterations in 7.2859 seconds
Slave 6 finished 105 iterations in 7.3018 seconds


FINAL RESULTS: 
		105 Iterations
		Total Time of Slave Execution  65.4532 seconds
		Elapsed Time  7.3032 seconds
==============================================================
PVM Version 3.1 output  
	* 20x10x10 matrix with 0.01 tolerance
	* Using PvmDataRaw encoding

Slave 10 finished 76 iterations in 2.5236 seconds
Slave 1 finished 76 iterations in 2.5458 seconds
Slave 9 finished 88 iterations in 2.9235 seconds
Slave 2 finished 88 iterations in 2.9271 seconds
Slave 8 finished 96 iterations in 3.0527 seconds
Slave 3 finished 96 iterations in 3.0826 seconds
Slave 4 finished 102 iterations in 3.1533 seconds
Slave 7 finished 102 iterations in 3.1839 seconds
Slave 5 finished 105 iterations in 3.2154 seconds
Slave 6 finished 105 iterations in 3.2190 seconds


FINAL RESULTS: 
		105 Iterations
		Total Time of Slave Execution  29.8269 seconds
		Elapsed Time  3.2202 seconds
==============================================================

	For a 20x15x10 matrix, it again took approximatly twice as long 
to use PvmDataInPlace. The messages would have included 2 integers
and 374 floating point numbers of a 22X17 array for a total of 1504 Bytes. 
The slaves sent this message to 2 other slaves every iteration. (Between 207 
and 239 iterations depending on the particular slave.) I ran each version
4 times, with output +/- 1 second to the particular instance below: 

PVM Version 3.2 output  
	* 20x15x10 matrix with 0.001 tolerance
	* Using PvmDataInPlace encoding

Slave 1 finished 207 iterations in 14.1820 seconds
Slave 10 finished 207 iterations in 14.4536 seconds
Slave 2 finished 220 iterations in 15.0842 seconds
Slave 9 finished 220 iterations in 15.1857 seconds
Slave 3 finished 229 iterations in 15.6213 seconds
Slave 8 finished 229 iterations in 15.6289 seconds
Slave 4 finished 235 iterations in 15.9187 seconds
Slave 7 finished 235 iterations in 15.9876 seconds
Slave 6 finished 239 iterations in 16.1883 seconds
Slave 5 finished 239 iterations in 16.2475 seconds
FINAL RESULTS: 
		239 Iterations
		Total Time of Slave Execution  154.4978 seconds
		Elapsed Time  16.2490 seconds
===============================================================
PVM Version 3.1 output  
	* 20x15x10 matrix with 0.001 tolerance
	* Using PvmDataRaw encoding

Slave 1 finished 207 iterations in 8.0802 seconds
Slave 10 finished 207 iterations in 8.1776 seconds
Slave 9 finished 220 iterations in 8.5666 seconds
Slave 2 finished 220 iterations in 8.6646 seconds
Slave 8 finished 229 iterations in 8.8616 seconds
Slave 3 finished 229 iterations in 8.9364 seconds
Slave 7 finished 235 iterations in 9.0253 seconds
Slave 4 finished 235 iterations in 9.0412 seconds
Slave 6 finished 239 iterations in 9.1095 seconds
Slave 5 finished 239 iterations in 9.1375 seconds

FINAL RESULTS: 
		239 Iterations
		Total Time of Slave Execution  87.6005 seconds
		Elapsed Time  9.1389 seconds
==============================================================

	Does anyone have a guess as to why this would be the
case? It seems that using PvmDataInPlace where possible would
save time under most any circumstances, so I am a bit confused
about this result.

Stuart Blackburn


