2010-09-03 2 views
1

Je vais comparer plusieurs implémentations d'un logiciel de simulation numérique sur un ordinateur haute performance, principalement en termes de temps - mais d'autres ressources comme l'utilisation de la mémoire, la communication inter-processus, etc. intéressant aussi bien.Lignes directrices de base pour le benchmarking haute performance

Pour l'instant, je n'ai pas connaissance de directives générales sur la manière de comparer les logiciels (dans ce domaine). Je ne sais pas non plus, combien de bruit de mesure est raisonnablement prévisible, ni combien de tests on effectue habituellement. Bien que ces problèmes dépendent du système, bien sûr, je suis certain qu'il existe certaines normes considérées comme raisonnables.

Pouvez-vous fournir de telles informations (d'introduction)?

+0

Est-ce que vous comparez votre propre logiciel (que vous pouvez modifier) ​​ou ...? – Rook

+0

logiciel auto-écrit. A partir de maintenant, je veux savoir si un changement de l'alignement de la mémoire a un effet positif sur le temps de calcul (Mot-clé: Caching). Prochain à venir est un test d'évolutivité pour une extension du programme. – shuhalo

Répondre

3

Si un test ne prend pas beaucoup de temps, alors je le répète (par exemple 10 000 fois) pour le faire prendre plusieurs secondes. Je fais ensuite cela plusieurs fois (par exemple 5 fois) pour voir si les résultats du test sont reproductibles (ou s'ils sont très variables).

Il y a des limites à cette approche (par exemple, c'est un test avec un cache "chaud"), mais c'est mieux que rien: et particulièrement bien pour comparer un code similaire, par ex. pour voir si un ajustement de performance à un code existant a effectivement amélioré les performances (c'est-à-dire pour effectuer des tests 'avant' et 'après').

1

Le meilleur moyen est de tester le travail pour lequel vous l'utiliserez!

Pouvez-vous exécuter un sous-échantillon du problème réel - un qui ne prendra que quelques minutes, et simplement le temps que sur diverses machines?

Questions connexes