Ergebnisdatenbanken für numerische Codes


17

In der Literatur zu numerischen Methoden bestehen viele Forschungsarbeiten aus der Beschreibung einer neuen algorithmischen Variation, gefolgt von einigen Testproblemen, die die neue Methode mit einer oder zwei vorhandenen Methoden vergleichen. Dies macht es schwierig zu bestimmen

  • Wie würde sich die neue Methode auf andere interessante Probleme auswirken?
  • Wie würde sich die neue Methode mit anderen bestehenden Methoden vergleichen lassen ?

Natürlich sind diese beiden Fragen in der Regel für jemanden von entscheidender Bedeutung, der sich für die Einführung der neuen Methode entscheidet. Um diese Situation zu verbessern, erscheint es wünschenswert, wenn möglich, die Mitarbeiter dazu zu bringen, eine große Anzahl von Testproblemen ( siehe diese Frage ) mit ihrer Methode auszuführen und die Ergebnisse in einer Datenbank zu katalogisieren, um sie mit anderen Methoden zu vergleichen. Ein Wissenschaftler oder Ingenieur könnte dann die Datenbank abfragen und möglicherweise angeben, welche Lösungs- / Problemmerkmale für ihn am wichtigsten sind (Genauigkeit, Effizienz, qualitative Eigenschaften usw.), und einen quantitativen Vergleich der Leistung aller Methoden in der Datenbank erhalten.

Mir ist klar, dass es viele Schwierigkeiten gibt, diese Idee umzusetzen (vor allem: die Leute dazu zu bringen, all diese Probleme zu lösen und die Rechenkosten zu messen). Aber meine Frage ist: Gibt es eine solche Ergebnisdatenbank? (sagen wir in einem bestimmten Unterfeld) oder wurde ein Ansatz wie dieser irgendwo implementiert?

Bei beiden bisher veröffentlichten Antworten handelt es sich um Problemdatenbanken. Ich frage nach Ergebnisdatenbanken.

Antworten:


9

Von den Kriterien, die Sie angegeben haben, denke ich, dass das nächste Projekt, von dem ich weiß, die spärliche Matrixsammlung der Universität von Florida ist . Leute verwenden diesen Datensatz routinemäßig, um spärliche lineare Algebra-Löser zu vergleichen, und Sie können nach Anwendung, Anzahl der Nonzeros, Matrixdimensionen usw. mit einer wirklich netten Webschnittstelle, MATLAB-Schnittstelle oder Java-GUI filtern. Ich habe Tabellen dieser Probleme gesehen, die in Abhandlungen zusammen mit Löser-Laufzeit-Vergleichen mit 4 bis 8 linearen Algebra-Lösern aufgelistet sind.

Ich bin damit einverstanden, dass es nützlich wäre, solche Datenbanken zu kompilieren, und außerdem halte ich den Ansatz der spärlichen UF-Matrixsammlung zum Kompilieren der Daten für einen hervorragenden Ansatz und wäre ein guter Anfang für alle, die über die Realisierung dieser Idee nachdenken. Das Ausführen aller Probleme scheint in der Praxis keine große Schwierigkeit zu sein, solange Sie auf alle Löser zugreifen können. Wenn Sie Zugriff auf die Solver und einen zuverlässigen Standard-Referenzcomputer mit der gesamten erforderlichen Software haben, müssen Sie ein Skript ausführen und die Daten sammeln. Meiner Meinung nach besteht die Schwierigkeit darin, Leute dazu zu bringen, Ihnen ihre Software zu geben, wenn diese nicht Open Source ist. Wenn es kommerziell ist, können Sie es kaufen oder sogar Leute dazu bringen, die Software zu spenden.COIN-OR- Projekt. Wenn es sich jedoch um Forschungssoftware handelt, die weder kommerziell noch Open Source ist, müssen Sie die Leute davon überzeugen, sich an dem Unternehmen zu beteiligen, und sie vertrauen möglicherweise keinem Dritten, wenn es darum geht, ihre Software fair zu bewerten.

Ich weiß auch, dass es bei der Optimierung herunterladbare Datenbanken mit Problemen ( CUTEr fällt mir ein) und Bücher mit Testproblemen für die Optimierung gibt. Ich habe gesehen, dass Leute (ich denke zum Beispiel speziell an einen Vortrag von Ruth Misener auf der AIChE 2011) ihren Optimierungslöser mit anderen Lösern in Datenbanken für Probleme in Präsentationen vergleichen. Ich bin nicht sicher, was öffentlich veröffentlicht wird. Ich weiß, dass es eine Tradition in der Optimierung von Vergleichen in großem Maßstab gibt (viele Löser, viele Probleme). Ich glaube einfach nicht, dass es eine Online-Datenbank gibt.

Eine andere Sache, die ich für wichtig halte, ist, dass wir hier zwischen Methoden und Software-Implementierungen unterscheiden. Im wissenschaftlichen Rechnen sprechen wir alle darüber, welche Methoden schneller oder langsamer sind, basierend auf Faktoren wie der rechnerischen Komplexität oder unseren Erfahrungen mit verschiedenen Problemen. Wenn es jedoch darum geht, die Rechenzeit quantitativ zu messen, muss, sofern nicht die Anzahl der FLOPs in einem bestimmten Algorithmus gezählt wird, der Algorithmus in Software implementiert und dann die Leistung auf irgendeine Weise gemessen werden (Speichernutzung, Ausführungszeit der Wanduhr usw.) .). Es ist sinnvoll, die Leistung einer Methode zu bewerten, wenn man sich die Komplexität der Berechnungen oder die Anzahl der FLOPs ansieht, da wir keine Implementierung benötigen, um solche Dinge zu messen. In dem Moment, in dem wir an den tatsächlichen Laufzeiten der Wanduhren interessiert sind, handelt es sich jedoch um Methoden nur nützlich als abstraktes, umgangssprachliches Gerät. (Zum Beispiel,

Ich erwähne diese Unterscheidung zwischen Methoden und Software, weil ich in einer solchen Datenbank auch die Möglichkeit sehen konnte, die Verbesserung der Software im Laufe der Zeit zu verfolgen. So wäre es zum Beispiel bei so etwas wie PETSc oder PyCLAW oder jeder getesteten Software interessant zu sehen, welche Probleme durch Upgrades in der Software positiv (oder negativ!) Beeinflusst werden. Dies könnte für Forscher nützlich sein, die zu entscheiden versuchen, ob es sich lohnt, die Codes zu aktualisieren, wenn Geld und Arbeitskraft verloren gehen. Ein weiterer Grund, warum eine solche Unterscheidung wichtig ist, ist, dass eine gute Methode schlecht implementiert werden kann. Ich denke, diese Möglichkeit trägt zur Zurückhaltung bei, die Menschen manchmal haben, wenn sie ihre Forschungscodes teilen.

Ich denke, was auch immer aus dieser Idee entsteht (und ich hoffe, dass etwas daraus entsteht und bereit ist, nach meiner Promotion beizutragen), ist es wichtig, diesen Unterschied zwischen Software und Methoden hervorzuheben, denn wenn wir Testprobleme haben, sind wir es Ergebnisse für Software veröffentlichen.


2
Ich mag Ihre Kommentare sehr und Sie sprechen einen wichtigen Punkt an. Wie Sie sicher wissen, verweisen Sie auf Datenbanken mit Problemen, nicht auf Ergebnisse.
David Ketcheson

Das waren die nächsten Dinge, die ich finden konnte. Ich habe versucht, nach Datenbanken mit Ergebnissen zu suchen, weil ich glaube, dass Sie eine wirklich wichtige Idee haben, aber ich konnte keine finden. Vielleicht ist dies ein wichtiges neues Projekt?
Geoff Oxberry

Vielen Dank; Ich stimme zu, und diese sind nützlich als "engste existierende Annäherungen", wie Sie sagen. Ich betrachte dies in der Tat (mit einigen anderen, die es glaubwürdiger machen würden) als ein neues Projekt. Ich freue mich sehr, dass Sie interessiert sind! Wir können es an anderer Stelle diskutieren, da SE diskussionsavers ist.
David Ketcheson

4

Es wurde versucht, eine Liste von "schwierig" zu berechnenden Integralen zu erstellen (siehe Arbeiten von Walter Gautschi, Robert Piessens und anderen), aber keine formale Datenbank.

Im Bereich der ODEs gibt es den IVP- Testsatz, einen Testsatz für Anfangswertprobleme.


Eigentlich frage ich nach Datenbanken mit berechneten Ergebnissen, nicht nach Datenbanken mit Problemen.
David Ketcheson

1
@DavidKetcheson Enthält Treibercode, um die Berechnung der Ergebnisse selbst zu automatisieren.
Jed Brown

Groß! Obwohl ich gerne eine aktuelle Datenbank sehen würde, in der die Ergebnisse gespeichert werden (zusätzlich zur Möglichkeit, sie neu zu berechnen), ist dies das, was ich am ehesten gesehen habe, was ich mir vorgestellt habe.
David Ketcheson

3

Ich kenne eine solche Datenbank nicht, aber ich denke, es wäre sehr schwierig, sie auf nützliche Weise zu definieren. Meiner Meinung nach ist es ein besseres System, den Code in einer ausführbaren Form freizugeben, damit der Benutzer so umfassend testen kann, wie er möchte. In Bezug auf Community-Repositorys enthält die von GertVdE erwähnte IVP-Testsuite auch Treibercode, mit dem mehrere veröffentlichte ODE / DAE-Löser für die Testprobleme ausgeführt werden können. In meinen Veröffentlichungen versuche ich, den Code und alle Skripte freizugeben, die zum Erstellen der Analyse der Ausgabedaten und zum Erstellen der Darstellungen und Tabellen auf dem Papier verwendet werden.


1
Kleiner Streit: Dies ist eher ein Kommentar als eine Antwort. Ich schätze jedoch das kritische Denken. Ich möchte, dass die Leute beides tun. Warum muss ich Ihren Code installieren und ausführen, damit ich Ihre Ergebnisse mit meinen vergleichen kann? Und dann können Sie behaupten, dass ich nicht die richtigen Optionen eingestellt habe? Wie auch immer, ich (der typische Forscher) werde es einfach nicht tun, weil es zu viel Arbeit ist. Aber wenn ich nur eine Datei einlesen müsste, wäre ich vielleicht bereit.
David Ketcheson

1

Der Computer Aeroacoustics Workshop zu Benchmark-Problemen verfolgt ein ähnliches Ziel für aeroakustische Probleme. Sie stellen zunächst eine Reihe von Benchmark-Problemen vor und lassen sie mit ihren eigenen Methoden lösen und die Ergebnisse vergleichen. Im Folgenden finden Sie beispielsweise den Ablauf des vierten Meetings: http://www.archive.org/details/nasa_techdoc_20040182258

Obwohl sie, soweit ich weiß, nicht vergleichen können, wie effizient ihre Codes sind, achten sie hauptsächlich auf die Genauigkeit.


Interessant! Gibt es eine Lösungsdatenbank? Oder wie genau vergleichen sie die Ergebnisse?
David Ketcheson

Die "Datenbank" ist in dem Bericht, den ich gepostet habe. Ganz am Ende des Dokuments befindet sich ein Abschnitt mit dem Titel "Lösungsvergleiche". Es gab nur vier Treffen, und das letzte fand 2004 statt. Ich wünschte, es gäbe einen größeren Anreiz, solche Dinge online zu bringen, wie Sie es vorgeschlagen haben.
James Custer

1

Bei der Modellierung von Erdbeben wurden verschiedene Arten von Anstrengungen unternommen. Diejenigen, die in den Sinn kommen, sind das dynamische Bruchsimulationsprojekt und das Quellinversionsprojekt (http://eqsource.webfactional.com/wiki/). Beide bieten physikalische Probleme, die gelöst werden müssen, und sind in Bezug auf die angewandten Methoden (auf einer gewissen Ebene) agnostisch. Bei diesen Projekten geht es in Wirklichkeit darum, die domänenspezifischen Modellierer miteinander zu vergleichen, und nicht wirklich um eine allgemeine Reihe von Testproblemen für jede numerische pdes-Methode. Aber Sie können mit anderen Ergebnissen vergleichen, und dies hat bei vielen Codes eine Menge Probleme aufgedeckt.

Eine Möglichkeit wäre das Madagaskar-Projekt , das in der Welt der seismischen Bildgebung entwickelt wurde, sich aber als ganz allgemeiner Zweck herausstellt.


Madagaskar ist ein hervorragendes Beispiel. Vielen Dank!
Jack Poulson
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.