Est-ce que Mono implémente la bibliothèque Task Parallel? Si oui, comment comparer les performances entre .NET et mono.Tâche Mise en œuvre de la bibliothèque parallèle sur mono?
Répondre
Cela a été implémenté dans la version 2.6 de Mono.
ParallelFx
Cette version inclut certains composants du cadre ParallelFx qui ont été développés dans le cadre de Google Summer Of Code 2008 & 2009. Plus précisément, il contient la bibliothèque parallèle de tâches et de données Structures pour la coordination. En utilisant ParallelFx, vous pouvez facilement développer un logiciel qui peut tirer automatiquement parti du potentiel parallèle des machines multicœurs actuelles. À cette fin, plusieurs nouvelles constructions comme des futures, des boucles parallèles ou des collections concurrentes sont maintenant disponibles.
Pour utiliser ce code, vous devez activer manuellement le profil .NET 4 à l'aide du commutateur --with-profile4 = yes à l'étape de configuration.
Dans ma propre expérience, j'ai un programme très parallèle en C# pour l'apprentissage et la classification des données de séquence du gène qui rend très lourd l'utilisation des fonctionnalités de la bibliothèque parallèle de tâches telles que Parallel.ForEach, Parallel.For, Groupe .Factory.StartNew(), et de nombreuses structures à partir de l'espace de noms Collections.Concurrent (collections de blocage, dictionnaires simultanés, sacs simultanés, etc.). En résumé, les performances de mon application sous Linux en mono sont beaucoup plus lentes. J'essaie toujours de comprendre cela. Je peux l'exécuter à partir de la console mono dans des fenêtres avec des performances similaires.
J'ai expérimenté l'utilisation du garbage collector sgen de mono en vain. Les performances de mon application sur un serveur Linux fonctionnant en mono sont encore nettement plus lentes.
apprentissage 8,258 séquences: 00:17 01:59 vs m: ss sur Linux
Classifier 921 séquences: 2,29 seconde par rapport 11:05 mm: ss sur Linux
Voir les captures d'écran ci-dessous.
Jake, quelle version de Mono utilisez-vous? Avez-vous déjà constaté une amélioration de cette performance? – Boots
J'utilisais Mono 3.2.3. Je n'ai jamais été capable de résoudre ce problème et d'abandonner complètement Mono pour ce projet. J'ai construit un boîtier Windows avec deux processeurs hexacore refroidis par liquide et 128 Go de RAM. Cependant, j'aurais une tonne de ressources universitaires à ma disposition, si je pouvais obtenir cette performance sur Linux ...Il est possible que la version Mono sous Linux était légèrement plus ancienne, mais elle devait au moins supporter .NET 4.5. Sinon, mon programme n'aurait pas été exécuté. –
Avez-vous essayez de changer la/min MaxThreads? Vous travaillez bien au-delà de moi, mais j'ai trouvé que rien ne se faisait. Donc, je l'ai mis à 5 * nombre de cœurs de processeur et il s'est cassé tout de suite!
- 1. Gardez OperationContext dans la tâche bibliothèque parallèle
- 2. mise en œuvre « seulement l'un des » et « non en parallèle » sémantique avec la bibliothèque parallèle de tâches
- 3. Explication de la mise en œuvre parallèle ou sérielle
- 4. Mise en œuvre parallèle pour plusieurs SVD en utilisant CUDA
- 5. Tâche parallèle Bibliothèque de recyclage des vêtements en cours d'utilisation
- 6. Mise en œuvre du délai avec tâche
- 7. Tâche parallèle en C# .net
- 8. Powerbuilder Winsock Bibliothèque mise en œuvre
- 9. Mise en œuvre de Pubsub avec la bibliothèque jaxl
- 10. Bibliothèque parallèle de tâches. Tâche imbriquée ne démarre pas
- 11. Mise en œuvre mono-utilisateur pour une application spécifique
- 12. Bibliothèque Parallèle des Tâches - Tâche Longue Distance vs Plusieurs Continuations
- 13. Utilisation de la bibliothèque JSON en mono
- 14. tâche parallèle ordre d'exécution
- 15. La mise en œuvre parallèle de la distance Levenshtein ralentit avec plus de threads
- 16. Mise en œuvre automatique de la boucle
- 17. Tâche parallèle pour la structure de l'arbre
- 18. mise en œuvre de classe NHibernate basée sur la valeur
- 19. règles de mise en œuvre
- 20. Boucle de mise en œuvre
- 21. Mise en cache distribuée sur mono
- 22. Comment mettre en œuvre une tâche parallèle embarrassante (boucle FOR) SANS MPI-IO?
- 23. Mise en œuvre sans verrou d'une bibliothèque de threads
- 24. Quand la mise en œuvre mono de mvc 5 devrait-elle sortir?
- 25. mise en œuvre ExpectJ sur Python Script
- 26. (Embedding Mono) Activation parallèle de domaines
- 27. Quels sont les avantages et les inconvénients de la mise en œuvre d'une session mono-utilisateur?
- 28. Mise en œuvre de PRG sur JSF
- 29. Mise en œuvre plus rapide de la multiplication matricielle-vectorielle [Calcul parallèle]
- 30. Un bug dans la mise en œuvre de Redressement successif rouge/noir parallèle (SOR)
réponse partielle: oui mono met en œuvre la bibliothèque parallèle de tâches: http://www.mono-project.com/Release_Notes_Mono_2.6#ParallelFx –