On Sun, Sep 17, 2000 at 10:27:45PM +0200, Arthur Korn wrote: > > One of the things I want to do is writing a task manager for > pvmpovray that can add nodes to a running render session, do you > think that's possible as a first project? (Well, I'd write the > usual prime searching stuff before as warm up.) >
I think this will be hard to do. The Debian povray package is already linked against PVM and works on a static virtual machine nodes, but significant changes would need to be made to allow new nodes to start up later in the render. At present the pvmpov code does some very ugly things: it passes the filename to each slave. The slave then reads in and parses that filename, so pvmpov has to have either a shared directory or a copy of the file at the same location on each machine. Once each node reads in the file the master starts handing out tiles to render. There's quite a bit of lockstep happening until tiles start rendering, which would all have to be redone. It should be redone, but it's quite a bit of coding on top of a large patch to an ugly codebase, and all in C. The panorama code (C++) looks so much cleaner.. An easier first project might be to write a graphical (Perl::GTK/Gnome/TK/...) front end to pvm to allow a user to add/manipulate nodes in a virtual machine. xpvm does some of this already I think, but I don't use it. There aren't many serious parallel application using Parallel::Pvm (ie. I haven't seen any), as the reason most people go to parallel libraries is performance, and the first thing they'll do to get that is rewrite in a compiled language, even if the overhead from the interpretted code is extremely low (due to using say large matrices handled by a compiled library). Creating a pile of efficient examples linked against the pdl or other libraries would go a long way towards dispelling that myth. If the examples do something useful even better. -Drake

