home << prev next >> contents  


Parallelism

mental ray has been designed to take full advantage of parallel hardware. On multiprocessor machines that provide the necessary facilities, it automatically exploits thread parallelism where multiple threads of execution access shared memory. No user intervention is required to take advantage of this type of parallelism. mental ray is also capable of exploiting thread and process level parallelism where multiple threads or processes cooperate in the rendering of a single image but do not share memory. This is done using a distributed shared database that provides demand-driven transparent sharing of database items on multiple systems. [1] This allows parallel execution across a network of computers.

mental ray 3.2 and later also support hyperthreading on Intel Pentium 4 processors that support it. Hyperthreading is a technique that runs a second thread, including a separate process counter, on a single CPU chip to exploit otherwise idle execution units on the chip. Since this increases memory access frequency and reduces locality of reference, hyperthreading achieves a performance increase of only about 15-25%. Early machines with hyperthreading support are not very reliable, so most vendors disable hyperthreading in their hardware, BIOS, or operating system even though the CPU supports it. mental ray will not pull a license for a hyperthreading companion thread.

[1] The parallel rendering technology which is required for the support of distributed shared databases has been originally developed by mental images as part of the ESPRIT Project 6173 Design by Simulation and Rendering on Parallel Architectures (DESIRE). See Herken94.

home << prev next >> contents  


Copyright © 1986-2007 by mental images GmbH