PRT Memory Management

What is more efficient?



Having smaller but lots of PRTS or filling the prts as full as your computer can handel. I top out at about 250 000 on max 9 32 with 2 gigs.



200 000 * 40 prts came to 14 gigs for me.

What is more efficient?



Having smaller but lots of

PRTS or filling the prts as

full as your computer can

handel. I top out at about 250

000 on max 9 32 with 2 gigs.



200 000 * 40 prts came to 14

gigs for me.





Krakatoa loads particles into one big pool before rendering them. It does not care much where they came from. So having few huge PRTs or multiple small ones should be (AFAIK) the same for the RENDERER, but it might be slower to load many PRTs (esp. from the network) because it involves opening, unzipping and closing a lot more files. I might benchmark it tomorrow.



Not sure what you mean with 200 000 * 40 prts and 14 gigs. If by 200 000 you mean particle count and 40 is the number of partitions, this would be only 8 million particles or 38*8000000 bytes or about 290 MB in memory when rendering. I must have misunderstood something.



Typical partitions I use contain between 500K and 10 million particles. If running on Deadline, creating lots of partitions with fewer particles is generally faster (as one could use as many slaves as partitions to save in parallel). For the Cheese Test I created 50 partitions of 1 million particles each, loaded all 50 but used lower render percents to render 1, 10, 20 and 40 million particles.



Cheers,



Borislav “Bobo” Petrov

Technical Director 3D VFX

Frantic Films Winnipeg


>I might benchmark it tomorrow.

Ok, I did.

Rendering 50 Million particles - Max 9 64bit.

*Saving 5 partitions, 2 frames each, with 10 million particles each using a simple PFlow with Box Icon Type: 300 seconds.

*Saving 500 partitions, 2 frames each, with 100000 particles each using the same PFlow: 440 seconds.



*Loading the 5 partitions in one PRT Loader and rendering with no lights, no cache: 144 seconds.

*Loading the 500 partitions in one PRT Loader and rendering with no lights, no cache: 476 seconds. This is caused mainly by memory management overhead (virtual memory etc.). A second attempt right after the first took "only" 253 seconds because because Windows X64 already increased my virtual memory and had less to do. Still, a lot slower.

Also note that with 500 partitions, the behavior of the PRT Loader was really bad in the Command Panel - changing viewport percentage for example could take almost a minute to update, while with 5 partitions it is very fast.


Borislav "Bobo" Petrov
Technical Director 3D VFX
Frantic Films Winnipeg

Another note:


  • My home machine running Max 9 32 bit with 1GB RAM can render about 10 million particles.
  • Max 9 32 bit on my office machine running Win64 with 4 GB RAM can render about 40 million particles (possibly 50 million) before running out of memory.
  • Max 9 64 bit on the same machine just rendered 100 million particles, but caused several million page faults so the virtual memory REALLLLLLY slowed it down. So for 100 million particles one has to install 8 GB of RAM to work comfortably and in reasonable times.