[Insight-developers] Cygwin and Multiple processors
Bill Hoffman
bill.hoffman@kitware.com
Wed, 15 Aug 2001 13:41:20 -0400
I have checked in a fix for this.
It requires a new cmake, and to remove the CMAKE_USE_PTHREADS from an
existing CMakeCache.txt file. However, if you build from scratch,
it should do the right thing.
I am not sure about the crash for > 2, I could not reproduce that.
It does not correctly start with 2 as the default.
-Bill
At 05:48 PM 8/14/2001 -0700, Lydia Ng wrote:
>Here is an update on the Cygwin/multi-processor issue
>on my two-proc machine:
>
>1) I forced the use of pthread by modifying CMakeCache.txt
>
>//Use the pthreads library
>CMAKE_USE_PTHREADS:BOOL=1
>
>By default, it uses the win32 library
>
>
>2) Everything compiles fine. However, itkMultiThreader wasn't
>able to work out the number of processor - so the default number
>of threads was set to 1.
>Test will build and run but just not multi-thread.
>
>
>3) To test the multi-threading, I added
>
> itk::MultiThreader::SetGlobalDefaultNumberOfThreads(2);
>
>to one of the failing test. It compiled, ran and passed.
>When I set the number of threads to greater than 2
>then I segmentation violation errors.
>
>
>So, it would be nice if CMake was able to detect that
>a Cygwin-gcc build and use pthread by default.
>itkMultiThreader needs to be modified to so it can
>work out the number of processors somehow ....
>
>
>Cheers,
>Lydia
>
>
>> -----Original Message-----
>> From: insight-developers-admin@public.kitware.com
>> [mailto:insight-developers-admin@public.kitware.com]On Behalf
>> Of Miller,
>> James V (CRD)
>> Sent: Friday, July 27, 2001 5:51 PM
>> To: 'insight-developers@public.kitware.com'
>> Subject: [Insight-developers] Cygwin and Multiple processors
>>
>>
>> I did a little investigation on the problem with cygwin and
>> multiple processor machines. My original
>> thought was that itk::MultiThreader did not work under
>> cygwin. However, on a single processor
>> machine I added a line to one of the tests that is failing on
>> multiple processor systems.
>>
>> itk::MultiThreader::SetGlobalDefaultNumberOfThreads(4);
>>
>> Running the modified test, 4 threads are created and the test
>> passed. So the problem in creating and
>> destroying threads.
>>
>> Rather, it appears as though the problem is in running
>> threads on multiple processors. This is
>> something that I will not be able to check into further until
>> I get back from vacation.
>>
>> The documentation on cygwin and pthreads is rather spotty.
>> Most pages found by google simply state
>> that pthread support is experimental.
>>
>> Lydia, if you are looking for something to try:
>> itkMultiThreader.cxx has a number of calls to
>> pthread_attr_setscope(). But these calls are all bypassed
>> (ifdef'd out) if we are running under
>> Win32. You might want to enable these calls (there are
>> several of them in the MultiThreader.cxx
>> code). Perhaps we need them for pthread on cygwin but not
>> for pthreads on standard win32.
>>
>> I'll be back in the office a week from Monday (maybe Tuesday,
>> maybe Wednesday).
>>
>> Jim
>>
>>
>> _______________________________________________
>> Insight-developers mailing list
>> Insight-developers@public.kitware.com
>> http://public.kitware.com/mailman/listinfo/insight-developers
>
>_______________________________________________
>Insight-developers mailing list
>Insight-developers@public.kitware.com
>http://public.kitware.com/mailman/listinfo/insight-developers