Nous avons actuellement une application scientifique haute performance écrite en C ++ qui utilise Intel Bibliothèque de noyau mathématique . P>
Nous envisageons d'écrire une application de référence écrite dans Java et .NET / C # pour comparer la différence de performance. Pour ce faire, nous avons également besoin d'une bonne bibliothèque de mathématiques (commerciale étant préférée) pour les deux. Est-ce que quelqu'un connaît une bibliothèque équivalente mathématique pour Java / C #? P>
Comme Sidenote: C ++ a bibliothèque Intel TBB pour vous aider avec Multhreading. Est-ce que .NET / C # et Java ont quelque chose d'équivalent? P>
6 Réponses :
Je peux aider avec C #: p>
Voici une autre question qui discute Diverses bibliothèques mathématiques C # p>
Et vous pouvez jeter un coup d'œil à PLINQ < / a> pour l'aide multithreading C #. p>
hey..Merci pour ce lien. Btw..are-vous dans une communauté scientifique? Si oui, utilisez-vous C # au travail? Avez-vous une expérience avec des mathématiques en C # (haute performance)?
J'écris une application discrète de simulation d'événement appelée micro Saint Sharp. Nous avons changé de C à C # 7 ans. La performance est géniale. Je n'utilise aucune bibliothèque de mathématiques externe. La seule classe de mathématiques spéciale que nous utilisons est de calculer diverses distributions aléatoires, dont la performance n'a jamais été un goulot d'étranglement de simulation.
Je suis assez surprise La performance de C # est à égalité avec C. C'est un plaisir d'entendre!
Notre moteur précédent a été écrit en C, mais le moteur de script de simulation a été interprété. Maintenant, la simulation est compilée C #, la performance est donc d'environ 1000 fois sur l'ancien système. Je soupçonne soigneusement que Tuned c va battre c # pour beaucoup d'opérations de mathématiques très lourdes.
Ouais, j'ai trouvé que le différentiel entre C # et à la main Simdied Microoptimez C pour algèbre linéaire était d'environ 10x. Mais c'est un cas particulier.
Il semble que ce projet n'a pas été mis à jour depuis longtemps (depuis 2004?)
lol..qui je n'ai pas pensé de cela avant? P>
Utilisez simplement une bibliothèque de mathématiques Intel MKL en Java et .net! P>
Voir les liens suivants: P>
L'argument principal est que le code C # résultant n'est plus portable par ex. Mono / Linux car il dépend d'une API / DLL fonctionnant à l'extérieur du CLR.
merci pour les bonnes pensées. J'ai posté une question sur le forum Intel MKL pour voir si la version MKL Linux fonctionnera avec la mise en œuvre de Mono ou non. Sinon, quel est leur plan. Merci encore.
@ The-Ligster: Intel a répondu que mono n'est pas pris en charge i>. Alors mec..too mauvais.
Alglib est une bibliothèque d'analyse numérique et de traitement de données multiplate-forme. Et c'est gratuit - Alglib est distribué sous une licence GPL (version 2 ou version ultérieure). Il contient: p>
équations différentielles p>
équations linéaires p>
Opérations matricielles et vectorielles, Eigenvalues et Eigenvectors P>
Intégration numérique, interpolation et ajustement, optimisation p>
FFT, convolution, corrélation p>
Statistiques: algorithmes généraux, test d'hypothèse p>
Analyse des données: classification, régression, autres tâches p>
fonctions spéciales p>
Suanshu est une grande collection d'algorithmes numériques. Il est bien soutenu. Il a à la fois une Java et une version C # gratuite. P>
Avez-vous pensé à écrire un wrapper pour la bibliothèque C ++ pour C # et Java?
Java a Java.UtilL.ConCurrent et sous-évaluations. Je ne suis pas trop familier avec TBB, mais c'est la voie du soleil de faire de l'enfilage.
@Aaron: Ouais .. j'y ai pensé aussi. Merci de cependant le commentaire.