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.