Spośród kryteriów, które określiłeś, myślę, że najbliższym projektem, jaki znam, byłaby kolekcja rzadkich matryc z University of Florida . Ludzie rutynowo używają tego zestawu danych do porównywania rzadkich solverów algebry liniowej, a Ty możesz filtrować według aplikacji, liczby nonzeros, wymiarów matrycy i tak dalej z naprawdę ładnym interfejsem internetowym, interfejsem MATLAB lub GUI Java. Widziałem tabele tych problemów wymienione w artykułach wraz z porównaniami czasu działania solvera do 4 do 8 solverów algebry liniowej.
Zgadzam się, że użyteczne byłoby skompilowanie takich baz danych, a ponadto uważam, że metoda zbierania macierzy rzadkich w UF do kompilacji danych jest doskonała i byłaby świetnym początkiem dla każdego, kto myśli o realizacji tego pomysłu. W praktyce rozwiązywanie wszystkich problemów nie wydaje się poważną trudnością, o ile można uzyskać dostęp do wszystkich solverów; jeśli masz dostęp do solverów i niezawodnej standardowej maszyny referencyjnej z zainstalowanym całym niezbędnym oprogramowaniem, to powinno być kwestią uruchomienia skryptu i zebrania danych. Moim zdaniem trudność polegałaby na skłonieniu ludzi do oddania ci swojego oprogramowania, jeśli nie jest to oprogramowanie typu open source. Jeśli jest komercyjny, możesz go kupić, a nawet skłonić ludzi do przekazania oprogramowania,Projekt COIN-OR . Ale jeśli jest to oprogramowanie badawcze, które nie jest ani komercyjne, ani open source, musisz przekonać ludzi do zakupu, a oni mogą nie ufać stronie trzeciej, aby uczciwie ocenić swoje oprogramowanie.
Wiem również, że podczas optymalizacji dostępne są do pobrania bazy danych problemów (
przychodzi na myśl CUTEr ) oraz książki problemów testowych do optymalizacji. Widziałem ludzi (na przykład konkretnie myślę o przemówieniu Ruth Misener na AIChE 2011) porównującym ich solver optymalizacyjny z innymi rozwiązaniami baz danych problemów w prezentacjach; Nie jestem pewien, co zostanie opublikowane publicznie. Wiem, że istnieje tradycja optymalizacji optymalizacji na dużą skalę (wiele rozwiązań, wiele problemów); Po prostu nie sądzę, że dostępna jest baza danych online.
Inną rzeczą, którą uważam za ważną, jest to, że rozróżniamy tutaj metody i implementacje oprogramowania. W informatyce naukowej wszyscy mówimy o tym, które metody są szybsze lub wolniejsze w oparciu o takie czynniki, jak wskaźniki złożoności obliczeniowej lub nasze doświadczenia z różnymi problemami. Jednak jeśli chodzi o ilościowy pomiar czasu obliczeniowego, chyba że policzy się liczbę FLOP w danym algorytmie, należy zaimplementować algorytm w oprogramowaniu, a następnie w jakiś sposób zmierzyć wydajność (zużycie pamięci, czas wykonania zegara ściennego itp. .). Ocena wydajności metody przy ocenie złożoności obliczeniowej lub liczby FLOP ma sens, ponieważ nie potrzebujemy implementacji do pomiaru takich rzeczy, ale w chwili, gdy interesują nas rzeczywiste czasy działania zegara ściennego, mówienie o metodach jest użyteczne tylko jako abstrakcyjne, potoczne urządzenie. (Na przykład,
Podkreślam to rozróżnienie między metodami a oprogramowaniem, ponieważ w takiej bazie danych mogłem również dostrzec możliwość śledzenia poprawy oprogramowania w czasie. Na przykład w przypadku czegoś takiego jak, powiedzmy, PETSc lub PyCLAW, lub cokolwiek testowanego oprogramowania, interesujące byłoby sprawdzenie, na jakie problemy pozytywnie (lub negatywnie!) Wpływają aktualizacje oprogramowania. Może to być przydatne dla badaczy próbujących zdecydować, czy warto zmodernizować swoje kody w kosztach i sile roboczej. Innym powodem takiego rozróżnienia jest to, że dobra metoda może być źle wdrożona; Myślę, że ta możliwość przyczynia się do powściągliwości, jaką ludzie czasami dzielą się swoimi kodami badawczymi.
Myślę, że cokolwiek wynika z tego pomysłu (i mam nadzieję, że coś z tego wyniknie, i chętnie wrócę po moim doktoracie), ważne jest podkreślenie tego rozróżnienia między oprogramowaniem i metodami, ponieważ jeśli uruchamiamy problemy z testami, jesteśmy zamierzam publikować wyniki dla oprogramowania.