З критеріїв, які ви вказали, я вважаю, що найближчим проектом, який я знаю, був би колекція розріджених матриць Університету Флориди . Люди регулярно використовують цей набір даних для порівняння рідких лінійних алгебр, і ви можете фільтрувати за додатком, кількістю ненульових значень, розмірами матриці тощо з дуже приємним веб-інтерфейсом, інтерфейсом MATLAB або інтерфейсом Java GUI. Я бачив таблиці цих проблем, перелічені в статтях, а також зіставленням часу виконання розв'язків на 4 - 8 лінійних розв'язках алгебри.
Я погоджуюся, що було б корисно скласти такі бази даних, і, крім того, я вважаю, що підхід до збору рідких матриць UF для збирання даних є чудовим, і це послужило б чудовим початком для тих, хто думає про реалізацію цієї ідеї. Виконання всіх проблем на практиці не здається головною складністю, якщо ви можете отримати доступ до всіх вирішувачів; якщо у вас є доступ до вирішувачів та надійного стандартного довідкового апарату з усім встановленим необхідним програмним забезпеченням, то це має бути справою запуску сценарію та збору даних. На мою думку, складність полягатиме в тому, щоб люди змусили передавати вам своє програмне забезпечення, якщо воно не є відкритим кодом. Якщо вона комерційна, ви можете придбати її або навіть, можливо, змусити людей здавати програмне забезпечення,Проект COIN-OR Але якщо це дослідницьке програмне забезпечення, яке не є ні комерційним, ні відкритим кодом, тоді вам потрібно переконати людей купувати зусилля, і вони можуть не довіряти сторонній стороні, щоб оцінити своє програмне забезпечення справедливо.
Я також знаю, що в оптимізації є завантажувані бази даних проблем ( CUTEr
приходить на думку) та книги тестових проблем для оптимізації. Я бачив, як люди (наприклад, я конкретно думаю про розмову Рут Місенер на AIChE 2011) порівнюють їх вирішення для оптимізації порівняно з іншими рішеннями на базі даних проблем у презентаціях; Я не впевнений, що публічно звільняється. Я знаю, що існує традиція оптимізації для порівняння у великому масштабі (багато вирішувачів, багато проблем); Я просто не думаю, що є онлайн-база даних.
Ще одна річ, яка мені здається важливою, - це те, що ми тут розрізняємо методи та реалізацію програмного забезпечення. У наукових обчисленнях ми всі говоримо про те, які методи швидші чи повільніші на основі таких речей, як показники складності обчислювальної техніки або наш досвід із різними проблемами. Що стосується кількісного вимірювання обчислювального часу, однак, якщо не підраховувати кількість FLOP в конкретному алгоритмі, потрібно реалізувати алгоритм у програмному забезпеченні, а потім певним чином виміряти продуктивність (використання пам'яті, час виконання настінного годинника тощо). .). Має сенс оцінювати ефективність методу, дивлячись на складність обчислень або підрахунки FLOP, оскільки нам не потрібна реалізація для вимірювання таких речей, але момент, коли нас цікавлять фактичні тривалість роботи настінного годинника, говорити про методи корисний лише як абстрактний, розмовний пристрій. (Наприклад,
Я розкриваю цю різницю між методами та програмним забезпеченням, оскільки в такій базі даних я також міг бачити можливість відстеження вдосконалення програмного забезпечення з часом. Так, наприклад, з чимось на кшталт, скажімо, PETSc або PyCLAW, або будь-яким іншим програмним забезпеченням тестується, було б цікаво подивитися, на які проблеми впливає позитивний (чи негативно!) Оновлення програмного забезпечення. Це може бути корисним для дослідників, які намагаються вирішити, чи варто потенційних витрат у грошах та робочій силі для оновлення своїх кодів. Ще одна причина такого розмежування є важливою, оскільки хороший метод може бути реалізований погано; Я думаю, що ця можливість сприяє тому, що люди іноді мають спільний доступ до своїх дослідницьких кодів.
Я думаю, що все, що випливає з цієї ідеї (і я сподіваюся, що щось з неї вийде, і я був би готовий внести свій внесок після мого доктора наук), важливо підкреслити цю різницю між програмним забезпеченням та методами, тому що якщо у нас є проблеми з тестом, ми збирається публікувати результати для програмного забезпечення.