|
![](/i/fill.gif) |
On Tue, 25 May 1999 14:48:58 -0500, Tim Hutcheson wrote:
>Certain types of image processing routines are almost trivial to break into
>SMP threads under NT, especially if you can get all the performance from
>just partitioning the image. It can be done using only a thread control
>structure, ResumeThread, SuspendThread, and Sleep functions and wrappers
>around the needed image processing routines. Alternating scanlines is
>better because it minimizes paging at the various cache levels.
>
>This doesn't give a very general solution but works great under NT and the
>code can run fine in Win98. It only gets messy when the multiple threads
>have to access the same data, that is, if the changes made by one thread
>depend on the changes made by the other thread. Then the synchronization to
>avoid exceptions destroys the performance or exception handling itself
>becomes too complicated to manage. If the core routines can be individually
>treated, that's where all the performance gain is anyway.
Raytracing in general is very parallelizable. It's just POV in specific
that's a tough nut to crack, because the design did not anticipate threading.
Fix all of the global variables and other weirdness (like variable reuse)
and then it would be a fairly easy task.
Post a reply to this message
|
![](/i/fill.gif) |