MultiThreading - making use of 100% of cpu?
Visual Studio 2008
.net frmaework ver 3.5
windows server 2008
48 amd core processors
32 GB RAm
I am having problems running my multithreaded application. the application only takes advantage of between 30-40% of my processors capability. I ran visual studio profiler to try to identify what the problem is. I found there was a lot of contention from mscorwks.dll. This seems to be responsable for garbage collection. Each thread is designed to pretty much work in isolation only reporting progress as it goes. i am inheriting from BackroundWorker for use on my worker threads. i have tried all combinations of GCSettings.LatencyMode, And i tried using server instead of workstation mode, and i tried running each worker thread as a single threaded apartment(STA), but these efforts didn't make much difference.
My temporary solution has been to open up multiple instances of my application(running 4 threads each), so they run in seperate processes. This works quite well and takes advantage of the servers full processing power. Anyone got any ideas of how i can acheive the same thing on with one application instance?