Bu açık uçlu bir sorudur. Ne yaklaşımlar dikkate almalıdır?
Bir CPU kullanımı yoğun .NET uygulamasını koşutlama için mevcut en iyi seçenekleri nelerdir?
İlk adım bulmak ve sorunu paralellik anlamaktır. O değiştirir tek iş parçacıklı kod daha iyi performans çok kanallı kod yazmak çok kolaydır. "Paralel Programlama için Desenler" (Amazon) anahtar kavramlara harika bir başlangıç olabilir.
Eğer çalışılabilir bir tasarıma sahip olduktan sonra, MSDN Magazine arşivler içinde "eşzamanlılık" konusundaki makaleleri okumaya başlayın (bağlantı) , Jeff Richter tarafından yazılan özellikle bir şey. Bunlar Windows ve .NET özgü parçacığı yapılar üzerinde size somun ve cıvata şeyler verecektir. (C # yoluyla Richter'in "CLR çoklu iş parçacığı bölüm (Amazon) kısa ama çok anlayışlı - tavsiye.)
Microsoft'un test edilmek ve kullanılabilir durumda olduğunu .NET bazı paralel uzantıları vardır Paralel Hesaplama Geliştirici Merkezi'ndeki . Onlar Paralel foreach ve PLINQ denilen LINQ paralel versiyonu gibi beklenebilir birkaç ilginç öğeler var. Uzantıları hakkında iyi bilgilerin bazıları üzerinde Channel 9 .
@Larsenal
Eğer .NET Intel'in hakkında bir çok tartışma olmuştur dışında şube istiyorsanız Threading Building Blocks C için bir paralel kütüphane ++ olduğunu.
Ben de o dikkate iyi seçenekler arasında ise paralel işleme olmayan .NET özgü yaklaşımlar içerebilir düşünüyorum.
Birçok seçenek vardır ve iyi çözüm çözmeye çalıştığınız sorunun doğasına bağlıdır. Bir çözmeye çalışıyorsanız embarassingly paralel sorunu daha sonra bölünerek ve önemsiz olacaktır görevleri parallelising. Bu durumda zorluk kullanılan verileri dağıtma ve yönetme gelecek.
Bazı öneriler olacaktır: