Friends, I'm trying to use a cluster at my university to speed up my renders.
The rendering parallelizes well (+SR and +ER in a job array), but for some
reason the parsing stage is just horribly slow when I'm using networked storage.
I believe the connection to the storage is over gigabit ethernet.
If I have povray read from the networked storage, it takes 4 minutes to parse
22M tokens, and 34 seconds to render.
If, however, I copy the file to /dev/shm first, it takes 8 seconds to parse. It
takes no more than a second to copy the file from the network drive to /dev/shm.
Rendering still takes 34 seconds.
Unfortunately, if I copy the files to /dev/shm and then abort the render, I
don't have an opportunity to delete the files and the temporary space fills up
and then the cluster crashes over a holiday weekend and I have to send an
apology to the sysadmin and bring him cookies. (He wasn't happy.)
What I'd like is for povray to read in the scene file from the network drive and
store it in memory before it starts parsing it.
I tried looking at the source, but I didn't see the culprit. I did see that
there's an IMemStream in fileinputoutput.h that looks like it would do the
trick, but I haven't been able to figure out how it works.
Has anyone else had experience with speeding up the parser?
Post a reply to this message