[vtk-developers] suggestion for vtkMultiThreader.cxx
Simon Warfield
warfield at bwh.harvard.edu
Mon Jun 4 22:43:01 EDT 2001
vtkMultiThreader.cxx in some places uses a strategy of starting
this->NumberOfThreads-1 additional threads to run work in separate threads
and runs a pthread_join to wait for these jobs to complete.
The thread running the pthread_join is suspended until the thread it is
waiting for finishes. If there are this->NumberOfThreads CPUs available
for work then running only this->NumberOfThreads-1 jobs wastes wallclock time.
It would be better to run this->NumberOfThreads of jobs.
vtkMultiThreader.cxx lines 322-341:
// Using POSIX threads
//
// We want to use pthread_create to start this->NumberOfThreads-1 additional
// threads which will be used to call this->SingleMethod(). The
// parent thread will also call this routine. When it is done,
// it will wait for all the children to finish.
//
// First, start up the this->NumberOfThreads-1 processes. Keep track
// of their process ids for use later in the pthread_join call
--
Simon Warfield, Ph.D. warfield at bwh.harvard.edu Phone:617-732-7090
http://www.spl.harvard.edu/~warfield FAX: 617-582-6033
Thorn 329, Brigham and Women's Hospital, Harvard Medical School
Department of Radiology, 75 Francis St, Boston, MA, 02115
More information about the vtk-developers
mailing list