Dies wurde in Mono Version 2.6 implementiert.
ParallelFx
Diese Version enthält einige Komponenten des ParallelFx-Frameworks, die im Rahmen von Google Summer Of Code 2008 & amp; 2009. Genauer gesagt enthält es die Task Parallel Library und Datenstrukturen für die Koordination.
Mit ParallelFx können Sie ganz einfach Software entwickeln, die automatisch das parallele Potenzial heutiger Multicore-Maschinen ausnutzt. Zu diesem Zweck stehen nun verschiedene neue Konstrukte wie Futures, Parallel Loops oder Concurrent Collections zur Verfügung.
Um diesen Code zu verwenden, müssen Sie das .NET 4-Profil mit dem Schalter --with-profile4 = yes bei der Konfiguration manuell aktivieren.
Nach meiner eigenen Erfahrung habe ich ein sehr paralleles Programm in C # zum Lernen und Klassifizieren von Gensequenzdaten, das die Funktionen der Task Parallel Library sehr stark ausnutzt, wie Parallel.ForEach, Parallel.For, Task.Factory. StartNew () und viele Strukturen aus dem Namespace Collections.Concurrent (Blocking Collections, Concurrent Dictionaries, Concurrent Bags usw.). Kurz gesagt, die Leistung meiner Anwendung unter Linux mit mono ist um ein Vielfaches langsamer. Ich versuche das immer noch herauszufinden. Ich kann es von der Monokonsole in Fenstern mit ähnlicher Leistung ausführen.
Ich habe experimentiert, mono sgen garbage collector ohne Erfolg zu verwenden. Die Leistung meiner Anwendung auf einem Linux-Server, der mit Mono läuft, ist immer noch deutlich langsamer.
8.252 Sequenzen lernen: 0:17 vs 1:59 m: ss auf Linux
921 Sequenzen klassifizieren: 2,29 Sekunden vs 11:05 mm: ss unter Linux
Siehe Screenshots unten.
Tags und Links c# task-parallel-library mono