Из указанных вами критериев я думаю, что самым близким из известных мне проектов будет коллекция разреженных матриц Университета Флориды . Люди обычно используют этот набор данных для сравнения разреженных решателей линейной алгебры, и вы можете фильтровать по приложениям, количеству ненулевых элементов, размерам матрицы и т. Д. С действительно хорошим веб-интерфейсом, интерфейсом MATLAB или Java GUI. Я видел таблицы этих проблем, перечисленные в статьях, а также сравнение времени выполнения решателя с 4-8 решателями линейной алгебры.
Я согласен с тем, что было бы полезно скомпилировать такие базы данных, и, кроме того, я думаю, что подход сбора разряженных матриц UF для компиляции данных является отличным, и он станет отличным началом для любого, кто задумывается о реализации этой идеи. Выполнение всех задач на практике не кажется большой трудностью, если вы можете получить доступ ко всем решателям; если у вас есть доступ к решателям и надежный стандартный эталонный компьютер со всем необходимым программным обеспечением, тогда нужно запустить скрипт и собрать данные. На мой взгляд, сложность заключается в том, чтобы заставить людей предоставить вам свое программное обеспечение, если оно не является открытым исходным кодом. Если он коммерческий, вы можете его купить или даже заставить людей пожертвовать программное обеспечение,МОНЕТА ИЛИ ПРОЕКТ. Но если это исследовательское программное обеспечение, которое не является ни коммерческим, ни открытым исходным кодом, то вам нужно убедить людей в том, что они должны вкладывать средства, и они могут не доверять третьей стороне в том, чтобы справедливо оценивать свое программное обеспечение.
Я также знаю, что в оптимизации есть загружаемые базы данных проблем (
на ум приходит CUTEr ) и книги тестовых задач для оптимизации. Я видел, как люди (например, я специально думаю о выступлении Рут Мизенер на AICHE 2011) сравнивали их решатель оптимизации с другими решателями в базах данных проблем в презентациях; Я не уверен, что публикуется публично. Я знаю, что существует традиция оптимизации для сравнения в больших масштабах (много решателей, много проблем); Я просто не думаю, что есть онлайн база данных.
Еще одна вещь, которую я считаю важной, заключается в том, что мы различаем методы и реализации программного обеспечения., В научных вычислениях мы все говорим о том, какие методы быстрее или медленнее, основываясь на таких вещах, как метрики вычислительной сложности или наш опыт решения различных проблем. Однако когда дело доходит до количественного измерения вычислительного времени, если только не подсчитано количество FLOP в конкретном алгоритме, нужно реализовать алгоритм в программном обеспечении, а затем каким-то образом измерить производительность (использование памяти, время выполнения настенных часов и т. Д. .). Имеет смысл оценивать производительность метода при рассмотрении сложности вычислений или подсчетов FLOP, потому что нам не нужна реализация для измерения таких вещей, но в тот момент, когда мы интересуемся фактическим временем работы настенных часов, разговор о методах полезно только в качестве абстрактного, разговорного устройства. (Например,
Я привел это различие между методами и программным обеспечением, потому что в такой базе данных я также мог видеть возможность отслеживания улучшений в программном обеспечении с течением времени. Так, например, с чем-то вроде, скажем, PETSc, или PyCLAW, или с любым другим программным обеспечением, которое тестируется, было бы интересно увидеть, на какие проблемы положительно (или отрицательно!) Влияют обновления программного обеспечения. Это может быть полезно для исследователей, пытающихся решить, стоит ли каких-либо потенциальных затрат денег и рабочей силы на обновление их кодов. Другая причина, по которой такое различие важно, заключается в том, что хороший метод может быть плохо реализован; Я думаю, что эта возможность способствует сдержанности, которую люди иногда имеют при обмене кодами своих исследований.
Я думаю, что бы ни исходило из этой идеи (и я надеюсь, что что-то из этого выйдет и будет готово внести свой вклад после моей докторской диссертации), важно подчеркнуть это различие между программным обеспечением и методами, потому что, если мы проводим тестовые задачи, мы будет публиковать результаты для программного обеспечения.