Quelles sont les meilleures options actuelles pour paralléliser une application .NET CPU-intensive?

voix
17

Ceci est une question ouverte. Quelles approches devrais-je envisager?

Créé 04/08/2008 à 17:30
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
8

Votre première étape consiste à trouver et à comprendre le parallélisme dans votre problème. Il est vraiment facile d'écrire du code multi-thread qui exécute pas mieux que le code monothread qu'il remplace. « Modèles de programmation parallèle » (Amazon) est une excellente introduction aux concepts clés.

Une fois que vous avez une conception pratique, commencer à lire les articles dans la rubrique « Concurrency » dans les archives MSDN Magazine (lien) , en particulier tout écrit par Jeff Richter. Ceux - ci vous donnera les écrous et boulons choses sur les constructions de filetage spécifiques à Windows et .NET. (La section multi-threading dans « CLR via C # Richter (Amazon) est courte, mais très perspicace - fortement recommandé.)

Créé 30/08/2008 à 23:32
source utilisateur

voix
6

Il y a quelques extensions parallèles à .NET qui sont actuellement en test et disponible à Microsoft Computing Developer Center parallèle . Ils ont quelques articles intéressants que vous attendez comme parallèle foreach et une version parallèle de LINQ appelé PLINQ. Une partie des meilleures informations sur les extensions est sur le canal 9 .

Créé 04/08/2008 à 17:41
source utilisateur

voix
2

@Larsenal

Si vous souhaitez créer une branche en dehors de .NET , il y a eu beaucoup de discussions à propos d'Intel blocs Threading Building qui est une bibliothèque parallèle pour C ++.

Créé 04/08/2008 à 18:41
source utilisateur

voix
2

Je pense que nous pourrions inclure également des approches non spécifiques .NET à traitement parallèle si ceux-ci sont parmi les meilleures options à considérer.

Créé 04/08/2008 à 18:32
source utilisateur

voix
0

Il y a beaucoup d' options et la meilleure solution dépendra de la nature du problème que vous essayez de résoudre. Si vous essayez de résoudre un embarassingly parallèle problème puis en divisant et paralléliser les tâches seront trivial. Dans ce cas , le défi viendra dans la distribution et la gestion des données utilisées.

Quelques suggestions seraient:

Créé 30/08/2008 à 23:46
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more