Quelles sont les meilleures options actuelles pour paralléliser une application .NET gourmande en CPU ?[fermé]

StackOverflow https://stackoverflow.com/questions/1387

  •  08-06-2019
  •  | 
  •  

Question

C'est une question ouverte.Quelles approches dois-je envisager ?

Pas de solution correcte

Autres conseils

Votre première étape consiste à trouver et à comprendre le parallélisme de votre problème.Il est vraiment facile d’écrire du code multithread qui ne fonctionne pas mieux que le code monothread qu’il remplace."Modèles pour la programmation parallèle" (Amazone) est une excellente introduction aux concepts clés.

Une fois que vous avez une conception réalisable, commencez à lire les articles de la rubrique « Concurrency » dans les archives de MSDN Magazine. (lien), en particulier tout ce qui est écrit par Jeff Richter.Ceux-ci vous donneront les détails pratiques sur les constructions de thread spécifiques à Windows et .NET.(La section multi-threading dans "CLR via C#" de Richter (Amazone)est court, mais très perspicace - fortement recommandé.)

Certaines extensions parallèles à .NET sont actuellement en cours de test et disponibles chez Microsoft. Centre de développement informatique parallèle.Ils contiennent quelques éléments intéressants auxquels vous vous attendez, comme Parallel foreach et une version parallèle de LINQ appelée PLINQ.Certaines des meilleures informations sur les extensions se trouvent sur Canal 9.

Je pense que nous pourrions également inclure des approches de traitement parallèle non spécifiques à .NET si celles-ci font partie des meilleures options à considérer.

@Larsenal

Si vous souhaitez créer une branche en dehors de .NET, il y a eu de nombreuses discussions sur les solutions Intel. Blocs de construction de filetage qui est une bibliothèque parallèle pour C++.

Il existe de nombreuses 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 un parallèle embarrassant le problème alors diviser et paralléliser les tâches sera trivial.Dans ce cas, le défi résidera dans la distribution et la gestion des données utilisées.

Voici quelques suggestions :

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top