This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

pthreads don't scale on windows xp, but does scale on linux, cygwin 1.5.19


I have a dual xeon 2.4ghz machine with hypertreading enabled.
This gives me 4 logical processors.
The machine dual boots to windows xp sp2, and linux.
I have a highly parallelizable program I wrote, and I tested it running 1 to 8 threads,
running with no source changes on windows and linux.


Here is the performance on linux using gcc-3.4.3
threads
1 1436.41user 0.10system 7:16.37elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
2 436.00user 0.02system 3:38.15elapsed 199%CPU (0avgtext+0avgdata 0maxresident)k
3 369.15user 0.05system 2:03.48elapsed 298%CPU (0avgtext+0avgdata 0maxresident)k
4 359.77user 0.08system 1:42.95elapsed 349%CPU (0avgtext+0avgdata 0maxresident)k
6 357.83user 0.09system 1:40.94elapsed 354%CPU (0avgtext+0avgdata 0maxresident)k
8 358.79user 0.06system 1:41.80elapsed 352%CPU (0avgtext+0avgdata 0maxresident)k


To compute efficiency, take the single thread elapsed time/(# threads * threaded elapsed time)

There is virtually perfect scaling. 4 processors scale with an efficiency of about 103%.
For 6 and 8 threads, efficiency goes up a small amount.



Here is the performance on windows xp using cygwin pthreads and gcc-3.4.4
1 434.60user 0.20system 7:16.47elapsed 99%CPU (0avgtext+0avgdata 509696maxresident)k
2 441.78user 0.24system 3:42.06elapsed 199%CPU (0avgtext+0avgdata 510208maxresident)k
3 579.68user 0.15system 3:14.50elapsed 298%CPU (0avgtext+0avgdata 511232maxresident)k
4 675.39user 0.15system 2:51.50elapsed 393%CPU (0avgtext+0avgdata 512000maxresident)k
6 711.70user 0.18system 3:01.20elapsed 392%CPU (0avgtext+0avgdata 511488maxresident)k
8 683.35user 0.21system 2:56.05elapsed 388%CPU (0avgtext+0avgdata 512000maxresident)k


Things are fine for 2 threads, scaling with an efficiency of 96%
For 3 threads, scaling efficiency is 73%
For 4 threads, scaling efficiency is 62%
For 6 threads, scaling efficiency is 39%
For 8 threads, scaling efficiency is 30%

So clearly something is broken with pthreads on windows using cygwin.

I can make the source code and test data available, but it is several mbytes and involves a
lot of source files to compile.


	Thanks,
	Jeff Deifik

Attachment: cygcheck.out
Description: Text document

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]