At 17:11 3/04/02 +1000, Drake Diedrich wrote:
>On Thu, Mar 21, 2002 at 11:39:24AM +0100, Luc Vereecken wrote:
>> >a very large project.
>>>> That shouldn't be a very large project at all. Read the inputfile
>> The very large part would be in broadcasting the parsed object tree, so
>as to limit the serial overhead of parsing to just one node, rather than
>duplicate that effort on all nodes.
Would that duplication avoidance gain you anything ?
Current case (IIRC, I haven't used pvm povray recently):
Every node reads the inputfile (possibly from an inefficient NFS mounted
volume), and parses.
New Case 1 :
Read the inputfiles on master, broadcast these N bytes, parse for Q seconds
on all nodes. User gained : no need to have the input file on all nodes.
Developer gained : easy to implement.
New Case 2 :
Read the inputfile on master, parse for Q' seconds on master node,
broadcast M bytes for parsed object tree. User gained: no need to have the
input file on all nodes.
In the second case, you have NODES-1 nodes doing nothing, but you might not
be able to do anything with that free time, as they e.g. are already
allocated to that job, or whatever, especially since the parsing is fairly
short compared to the rendering.
Assuming identical nodes, the walltime of the parsing is the same
everywhere (Q=Q'), and duplicating that effort doesn't require extra
walltime (so irrelevant unless you're charged per used cpu time, or if you
have multiple jobs per processor (e.g. SMP) to reclaim the idle time). If
so, it then depends on whether the parsed object tree (M bytes) is larger
or smaller than the text inputfiles and other required files (N bytes). If
M > N, it takes longer to broadcast the parsed tree, if N > M, then it is
quicker to broadcast the parsed tree.
If the Master node is faster than the others, it's parsing time might be
shorter than the slowest of the other nodes (Q' < Q), and then it is
possible that even with M > N, it might be faster to distribute the parsed
tree rather than the inputfiles.
The basic question is therefore : how large is (typically) the parsed tree
compared to the original input file ? Standard povray include files should
be assumed predistributed as they should/can be installed on each node
together with the executable. To be honest, I have no idea about this ratio.
Luc