あなたが指定した基準のうち、私が知っている最も近いプロジェクトはフロリダ大学のスパースマトリックスコレクションでしょう。人々は日常的にこのデータセットを使用してスパース線形代数ソルバーを比較し、アプリケーション、非ゼロの数、行列の次元などで、本当に素晴らしいWebインターフェイス、MATLABインターフェイス、またはJava GUIでフィルタリングできます。これらの問題の表を、4〜8個の線形代数ソルバーとのソルバーの実行時間の比較とともに、論文にリストしています。
このようなデータベースをコンパイルすることは有用であることに同意します。さらに、データをコンパイルするためのUFスパースマトリックスコレクションアプローチは優れたものであり、このアイデアを実現しようと考えている人にとって素晴らしい出発点になると思います。実際には、すべての問題を実行することは、すべてのソルバーにアクセスできる限り、大きな困難とは思えません。ソルバーにアクセスでき、必要なソフトウェアがすべてインストールされた信頼性の高い標準参照マシンがある場合、スクリプトを実行してデータを収集する必要があります。私の考えでは、困難は、オープンソースでなければ、人々にソフトウェアを提供してもらうことです。商用の場合は、購入するか、場合によっては人々にソフトウェアを寄付してもらうこともできますが、COIN-ORプロジェクト。しかし、それが商用でもオープンソースでもない研究ソフトウェアである場合は、人々にその努力に賛同するよう説得する必要があります。
最適化には、ダウンロード可能な問題のデータベース(CUTEr
が思い浮かぶ)と最適化のためのテスト問題の本があることも知っています。プレゼンテーションの問題のデータベースで、最適化ソルバーと他のソルバーを比較する人々(たとえば、特にAIChE 2011でのRuth Misenerの講演を考えています)を見てきました。何が公開されているのかわかりません。大規模な比較のための最適化には伝統があることを知っています(多くのソルバー、多くの問題)。利用可能なオンラインデータベースがあるとは思わない。
私が重要だと思うもう1つのことは、ここでメソッドとソフトウェア実装を区別することです。科学計算では、計算の複雑さの指標やさまざまな問題の経験などに基づいて、どのメソッドが高速か低速かについて話し合います。ただし、計算時間を定量的に測定する場合、特定のアルゴリズムでFLOPの数をカウントしない限り、アルゴリズムをソフトウェアに実装してから何らかの方法でパフォーマンスを測定する必要があります(メモリ使用量、実行時間など) 。)。計算の複雑さやFLOPカウントを調べるときにメソッドのパフォーマンスを評価するのは理にかなっています。なぜなら、そうしたことを測定するための実装は必要ないからです。しかし、実際の壁時計の実行時間に興味がある瞬間は、抽象的で口語的なデバイスとしてのみ有用です。(例えば、
このようなデータベースでは、時間の経過に伴うソフトウェアの改善を追跡できる可能性もあるため、メソッドとソフトウェアのこの区別を取り上げます。したがって、たとえば、PETSc、PyCLAW、またはテストされているソフトウェアなどの場合、ソフトウェアのアップグレードによってどのような問題がプラス(またはマイナス!)に影響されるかを見るのは興味深いでしょう。これは、コードをアップグレードするのにお金と人的資源の潜在的なコストに見合う価値があるかどうかを判断しようとする研究者にとって有用です。このような区別が重要であるもう1つの理由は、優れたメソッドを不適切に実装できるためです。この可能性は、人々が自分の研究コードを共有する際にときどき持っているre黙に寄与すると思います。
このアイデアから生まれたものは何でも(そして、何かが生まれて、博士号の後に貢献してくれることを望んでいます)、ソフトウェアとメソッドの違いを強調することが重要だと思います。ソフトウェアの結果を投稿する予定です。