Bases de données des résultats pour les codes numériques

17

Dans la littérature sur les méthodes numériques, de nombreux articles de recherche consistent en une description d'une nouvelle variation algorithmique, suivie de quelques problèmes de test comparant la nouvelle méthode avec une ou deux méthodes existantes. Il est donc difficile de déterminer

  • Comment la nouvelle méthode se comporterait sur d' autres problèmes d'intérêt
  • Comparaison de la nouvelle méthode avec d' autres méthodes existantes

Bien sûr, ces deux questions sont généralement cruciales pour quelqu'un qui décide d'adopter ou non la nouvelle méthode. Afin d'améliorer cette situation, il semble souhaitable, si possible, d'amener les gens à exécuter un grand nombre de problèmes de test ( voir cette question ) avec leur méthode et de cataloguer les résultats dans une base de données pour comparaison avec d'autres méthodes. Un scientifique ou un ingénieur pourrait alors interroger la base de données, en indiquant peut-être quelles caractéristiques de solution / problème sont les plus importantes pour eux (précision, efficacité, propriétés qualitatives, etc.), et obtenir une comparaison quantitative des performances de toutes les méthodes de la base de données.

Je me rends compte qu'il y a beaucoup de difficultés à mettre en œuvre cette idée (principalement: amener les gens à réellement gérer tous ces problèmes et mesurer les coûts de calcul). Mais ma question est: existe-t-il une telle base de données de résultats? (par exemple dans un sous-domaine particulier) ou une approche comme celle-ci a-t-elle été mise en œuvre quelque part?

Les deux réponses publiées jusqu'à présent concernent des bases de données de problèmes. Je pose des questions sur les bases de données de résultats.

David Ketcheson
la source

Réponses:

9

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.

Geoff Oxberry
la source
2
J'aime beaucoup vos commentaires et vous soulevez un point important. Comme vous le savez sans doute, les liens que vous donnez sont vers des bases de données de problèmes, pas de résultats.
David Ketcheson
Ce sont les choses les plus proches que j'ai pu trouver. J'ai essayé de chercher des bases de données de résultats, car je pense que vous soulevez une idée vraiment importante, mais je n'en ai pas trouvé. C'est peut-être un nouveau projet important?
Geoff Oxberry
Merci; Je suis d'accord, et ceux-ci sont utiles comme "approximations existantes les plus proches" comme vous le dites. J'envisage en effet (avec d'autres qui lui donneraient plus de crédibilité) un nouveau projet. Je suis très content que tu sois intéressé! Nous pouvons en discuter ailleurs, car SE est opposé à la discussion.
David Ketcheson
4

Il y a eu une tentative de créer une liste d'intégrales "difficiles" à calculer numériquement (voir les articles de Walter Gautschi, Robert Piessens et d'autres) mais aucune base de données formelle.

Dans le domaine des ODE, il y a l' ensemble de test IVP , un ensemble de test pour les problèmes de valeur initiale.

GertVdE
la source
en fait, je pose des questions sur les bases de données de résultats calculés, pas sur les bases de données de problèmes.
David Ketcheson
1
@DavidKetcheson Il contient le code du pilote pour automatiser le calcul des résultats vous-même.
Jed Brown
Génial! Bien que j'aimerais voir une base de données réelle où les résultats sont stockés (en plus, bien sûr, de la possibilité de les recalculer), c'est la chose la plus proche que j'ai vue de ce à quoi je pensais.
David Ketcheson
3

Je ne connais pas une telle base de données, mais je pense qu'il serait très difficile de la définir de manière utile. Un meilleur système, à mon avis, consiste à publier le code sous une forme exécutable afin que l'utilisateur puisse s'étendre pour tester aussi complètement qu'il le souhaite. En termes de référentiels communautaires, la suite de tests IVP mentionnée par GertVdE contient également du code de pilote pour exécuter plusieurs solveurs ODE / DAE publiés sur les problèmes de test. Dans mes publications, j'essaie de publier le code et tous les scripts utilisés pour créer l'analyse des données de sortie et créer les graphiques et les tableaux apparaissant dans le document.

Jed Brown
la source
1
Petit chicanage: il s'agit plus d'un commentaire que d'une réponse. J'apprécie cependant la pensée critique. J'aimerais voir les gens faire les deux. Pourquoi me faire installer et exécuter votre code juste pour que je puisse tracer vos résultats par rapport au mien? Et puis vous pouvez prétendre que je n'ai pas défini les bonnes options? Quoi qu'il en soit, je (c'est-à-dire le chercheur typique) ne le ferai tout simplement pas parce que c'est trop de travail. Mais si tout ce que j'avais à faire était de lire un fichier de données, je serais peut-être prêt.
David Ketcheson
1

L'atelier de calcul aéroacoustique sur les problèmes de référence a un objectif similaire à l'esprit pour les problèmes aéroacoustiques. Ils présentent d'abord un ensemble de problèmes de référence à l'avance, et demandent aux gens de les résoudre en utilisant leurs propres méthodes et de comparer les résultats. Par exemple, voici les actes de la quatrième réunion: http://www.archive.org/details/nasa_techdoc_20040182258

Bien que d'après ce que je peux dire, ils ne comparent pas l'efficacité de leurs codes les uns par rapport aux autres, ils recherchent principalement la précision.

James Custer
la source
Intéressant! Existe-t-il une base de données de solutions? Ou comment comparent-ils exactement les résultats?
David Ketcheson
La "base de données" figure dans le rapport que j'ai publié. À la toute fin de l'article, il y a une section intitulée «Comparaisons de solutions». Il n'y a eu que quatre réunions pour cela, et la dernière a eu lieu en 2004. Je souhaite qu'il y ait davantage de pression pour mettre en ligne ce genre de choses comme vous le proposez.
James Custer le
1

Dans le cadre de la modélisation des tremblements de terre, plusieurs efforts de ce type ont été déployés. Ceux qui me viennent à l'esprit sont le projet de simulation de rupture dynamique et le projet d'inversion de source (http://eqsource.webfactional.com/wiki/). Les deux fournissent des problèmes physiques à résoudre et sont agnostiques (à un certain niveau) concernant les méthodes employées. Vraiment, ces projets visent à comparer les modélisateurs spécifiques au domaine, pas vraiment un ensemble général de problèmes de test pour chaque méthode numérique pdes. Mais vous pouvez comparer avec d'autres résultats, et cela a révélé beaucoup de problèmes avec de nombreux codes.

Une possibilité à examiner serait le projet Madagascar , qui a été développé dans le monde de l'imagerie sismique mais prétend être tout à fait général.

Jeremy Kozdon
la source
Madagascar en est un excellent exemple. Je vous remercie!
Jack Poulson