Quelles sont les meilleures options actuelles pour paralléliser une application .NET gourmande en CPU ?[fermé]
-
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 :
- Grille GLACE qui a des liaisons pour .Net et d'autres langages courants
- Rapidité qui est la version Microsoft d'Oracle (Tangersol) Coherence
- La prochaine offre HPC de Microsoft Serveur de cluster de calcul
- Serveur de grille Data Synapse