Newsgroups: comp.parallel.pvm
From: "Cameron G. MacKinnon" <mackin@interlog.com>
Reply-To: mackin@interlog.com
Subject: Re: Data loss in pvm_send/recv, or pvm_pk*/upk*
Organization: Abaxial Financial Systems Ltd.
Date: Wed, 9 Oct 1996 20:48:52 GMT
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <325C0FB4.7DB8@interlog.com>

Been there, done that! If you want to see source code for raytracers
that work using the farmer/worker model using pvm, Andreas Dilger has a
patch for POV-Ray 2.2 that does exactly that. See:
	http://www-mddsp.enel.ucalgary.ca/People/adilger/povray/pvmpov.html

I've modified things (ALPHA code!) to work with POV-Ray 3.0, see:
	http://www.interlog.com/~mackin/pvmpov3/
Most of our PVM specific packing and unpacking code is in pvm.c

I had some problems with pvm_pk/pvm_upk when I tried to stride through
an array of structures. Don't do this. You can stride through an array,
but not a structure or an array of structures. If you are trying to use
stride and number of elements >1, this is probably your problem. Try
setting up a loop to manually step through each element and pvm_pk it
individually. If that works, it's a structure alignment problem - your
compiler is padding structures to align them, and PVM doesn't and can't
know about this.
	

Ralf - G. Au wrote:
> 
> Hello again, PVM-Programmers all over the world !
> 
> My fellow student and I are _still_ porting a raytracer to PVM, and
> again we're experiencing some trouble.
> 
> We are using PVM Version 3.3.11 
...
> We have implemented a farmer/worker model with the workers doing the
> actual raytracing and the farmer coordinating them and doing all the
> messy I/O stuff.
> 
> The workers transmit the raw picture data (4 float, 1 int per pixel) to
> the farmer where it all gets stitched together, and saved to a file.
..
> The problem is: the picture data is transferred line by line and almost
> always half of every line gets lost, resulting in black pixels for the
> rest of the line. (Sometimes more than half a line is transmitted,
> though, but never the whole line).
> We think we have traced down the error down to the pvm_pk* - pvm_send -
> pvm_recv - pkvm_upk* part, but now we are at the end of our wits.
..
> Any input would be greatly appreciated.
> 
> Greetings from Germany
> 
> Ralf Au
> --
> Ralf Au <au_r@informatik.fh-hamburg.de>
> Fachhochschule Hamburg, Germany
> Fachbereich Informatik / Informatics Faculty

--
Microsoft: Turning workstations into PCs.
Cameron MacKinnon - mackin@interlog.com

