Parmi les critères que vous avez spécifiés, je pense que le projet le plus proche que je connaisse serait la collection à matrice clairsemée de l' Université de Floride . Les gens utilisent régulièrement cet ensemble de données pour comparer des solveurs d'algèbre linéaire clairsemés, et vous pouvez filtrer par application, nombre de non-zéros, dimensions de la matrice, etc. avec une interface Web vraiment sympa, une interface MATLAB ou une interface graphique Java. J'ai vu des tableaux de ces problèmes répertoriés dans des articles ainsi que des comparaisons de temps d'exécution du solveur avec 4 à 8 solveurs d'algèbre linéaire.
Je conviens qu'il serait utile de compiler de telles bases de données, et en outre, je pense que l'approche de collecte de matrice clairsemée UF pour la compilation des données est excellente et constituerait un excellent début pour quiconque envisage de réaliser cette idée. Exécuter tous les problèmes, dans la pratique, ne semble pas être une difficulté majeure tant que vous pouvez accéder à tous les solveurs; si vous avez accès aux solveurs et à une machine de référence standard fiable avec tous les logiciels nécessaires installés, il faut alors exécuter un script et collecter les données. La difficulté, dans mon esprit, serait d'amener les gens à vous donner leur logiciel, s'il n'est pas open source. Si c'est commercial, vous pouvez l'acheter, ou même amener les gens à faire don du logiciel,Projet COIN-OR . Mais s'il s'agit d'un logiciel de recherche qui n'est ni commercial ni open source, vous devez convaincre les gens d'accepter cette entreprise, et ils peuvent ne pas faire confiance à un tiers pour évaluer leur logiciel de manière équitable.
Je sais également qu'en optimisation, il existe des bases de données téléchargeables de problèmes ( CUTEr me
vient à l'esprit) et des livres de problèmes de test pour l'optimisation. J'ai vu des gens (par exemple, je pense spécifiquement à une conférence de Ruth Misener à AIChE 2011) comparer leur solveur d'optimisation à d'autres solveurs sur des bases de données de problèmes dans des présentations; Je ne sais pas ce qui sera rendu public. Je sais qu'il existe une tradition dans l'optimisation pour la comparaison à grande échelle (beaucoup de solveurs, beaucoup de problèmes); Je ne pense tout simplement pas qu'une base de données en ligne soit disponible.
Une autre chose qui, je pense, est importante est que nous distinguons ici les méthodes et les implémentations logicielles. Dans le calcul scientifique, nous parlons tous des méthodes qui sont plus rapides ou plus lentes en fonction de choses comme les métriques de complexité informatique ou nos expériences avec divers problèmes. En ce qui concerne la mesure quantitative du temps de calcul, cependant, à moins de compter le nombre de FLOP dans un algorithme particulier, il faut implémenter l'algorithme dans un logiciel, puis mesurer les performances d'une manière ou d'une autre (utilisation de la mémoire, heure d'exécution de l'horloge murale, etc. .). Il est logique d'évaluer les performances d'une méthode lorsque l'on examine la complexité de calcul ou le nombre de FLOP, car nous n'avons pas besoin d'une implémentation pour mesurer de telles choses, mais au moment où nous sommes intéressés par les temps d'exécution réels de l'horloge murale, parler de méthodes est utile uniquement comme un instrument abstrait et familier. (Par exemple,
J'évoque cette distinction entre méthodes et logiciels car dans une telle base de données, je pouvais aussi voir la possibilité de suivre l'amélioration des logiciels dans le temps. Ainsi, par exemple, avec quelque chose comme, disons, PETSc ou PyCLAW, ou quel que soit le logiciel testé, il serait intéressant de voir quels problèmes sont affectés positivement (ou négativement!) Par les mises à niveau du logiciel. Cela pourrait être utile pour les chercheurs qui tentent de décider si cela vaut des coûts potentiels en argent et en main-d'œuvre pour mettre à niveau leurs codes. Une autre raison pour laquelle une telle distinction est importante est qu’une bonne méthode peut être mal mise en œuvre; Je pense que cette possibilité contribue à la réticence des gens à partager leurs codes de recherche.
Je pense que quoi qu'il arrive de cette idée (et j'espère que quelque chose en sortira et que je serais prêt à contribuer après mon doctorat), il est important de souligner cette distinction entre logiciel et méthodes, parce que si nous avons des problèmes de test, nous sommes va publier des résultats pour les logiciels.