Vă mulțumim pentru susținere

Care sunt cele mai bune opțiuni curente pentru paralelizarea unei aplicații .NET cu intensitate CPU?

Aceasta este o întrebare deschisă. Ce abordări ar trebui să iau în considerare?

0
adăugat
Ce hardware? Dacă este CPU intensivă și aveți doar 1 CPU unic, atunci firele multiple vor diminua performanța. De asemenea, dacă trebuie să parallelize la un grup de PC-uri, acesta este un animal foarte diferit de fire multiple pe 1 PC.
adăugat autor mbeckish

4 răspunsuri

Există câteva extensii paralele la .NET, care sunt în curs de testare și sunt disponibile la Paralel Computing Centru de dezvoltatori . Ele au câteva elemente interesante pe care le-ați aștepta ca Parallel foreach și o versiune paralelă de LINQ numită PLINQ. Unele dintre cele mai bune informații despre extensii se află pe Canal 9 .

0
adăugat

@Larsenal

Dacă doriți să ramificați în afara rețelei .NET, au fost multe discuții despre Blocuri de construcție Threading , care este o bibliotecă paralelă pentru C ++.

0
adăugat

Primul pas este să găsiți și să înțelegeți paralelismul în problema dvs. Este foarte ușor să scrieți coduri multi-filetate care nu funcționează mai bine decât codul cu un singur file pe care îl înlocuiește. "Modele pentru programare paralelă" (Amazon) este o introducere minunată la conceptele cheie.

Odată ce aveți un design funcțional, începeți să citiți articolele din subiectul "Concurrency" din arhivele MSDN Magazine (link) , în special nimic scris de Jeff Richter. Acestea vă vor oferi chestiile legate de piulițe și șuruburi pe structurile de filetare specifice Windows și .NET. (Secțiunea cu mai multe filete în "CLR via C # (Amazon) este scurtă, dar foarte insightful - foarte recomandat.)

0
adăugat

Există multe opțiuni, iar cea mai bună soluție va depinde de natura problemei pe care încercați să o rezolvați. Dacă încercați să rezolvați o problemă embarassingly paralel , împărțirea și paralelizarea sarcinilor vor fi triviali. În acest caz, provocarea va veni în distribuirea și gestionarea datelor utilizate.

Unele sugestii ar fi:

0
adăugat