Almost of the modules are parallelized, but typically have to Partition'd to composite fields to run in parallel on a platform that's SMP-enabled and you have started dxexec with two or more processors. A good place to start is to use the Partition module after Import with the default settings. The result will be a composite field (i.e., each processor gets a partition to work on with pointers to the partitions in shared memory, boundary artifacts are taken care of automaticallly) which will be used downstream. Render always runs in parallel if you are running dxexec in SMP mode independent of using Partition. The use of Partition can be optimized (i.e., placement in the network, changing options) if you know more about your data and how a particular module/algorithm will operate.
The SMP parallelism uses fork-join, which of course, is a bit different on each machine. This approach is used because of DX's origins on a 32-way SMP over a decade ago, which predates the existence of threads. There is some discussion of this in the user's reference and programmer's guides. Randall Hopper <[EMAIL PROTECTED]>@opendx.watson.ibm.com on 01/17/2002 05:33:29 PM Please respond to [email protected] Sent by: [EMAIL PROTECTED] To: [email protected] cc: Subject: [opendx-users] Re: OpenDX on SMP Linux - how to do parallel? Raphael Arlitt: |Since installing got much better understood by me and co-workers I got |encouraged to try the SMP mode for the Linuxboxes on two processor machines ... |The top command shows 100% (200 % total) for each processor and I am never |able to cross the 100% mark and get work done by more than one processors. | |How can I check if my SMP OpenDX build was successful? How can I use the |program in parallel mode? Which modules are parallelized? | |I assume the parallelization of OpenDX is done using threads. Which |libraries are therefore necessary on my system beside pthreads? I don't know about the Linux SMP version. But if it's like the SGI, the parallelism is at the process level, where you have multiple dxexecs running: one master, and one per processor as slaves, communicating through IPC. Check your process list: | \-+- 1163153 dxui ... | \-+- 1155549 dxworker ... | \-+- 1163133 dxexec ... | |--- 1163161 dxexec ... | \--- 1163211 dxexec ... Try dx -processors 2 and run some of the samples. If you see two dxexecs cranking up there at near 100% sometimes, your SMP is probably working. VolumeRenderingSimple.net is one where you can see this easily -- go into rotate mode (Ctrl-R), and start dragging the mouse around like mad. You should peg both your CPUs while its rendering. Randy -- Randall Hopper (mailto:[EMAIL PROTECTED]) Lockheed Martin Operation Support EPA Scientific Visualization Center US EPA MD/24 ERC-1A; RTP, NC 27711
