Bazy danych wyników dla kodów numerycznych


17

W literaturze dotyczącej metod numerycznych wiele prac naukowych zawiera opis nowej odmiany algorytmu, a następnie kilka problemów testowych porównujących nową metodę z jedną lub dwiema istniejącymi metodami. Utrudnia to ustalenie

  • Jak nowa metoda poradziłaby sobie z innymi interesującymi problemami
  • Jak nowa metoda porównałaby się z innymi istniejącymi metodami

Oczywiście oba te pytania są zwykle krytyczne dla kogoś, kto decyduje, czy zastosować nową metodę. Aby poprawić tę sytuację, wydaje się pożądane, aby w miarę możliwości skłonić ludzi do uruchomienia dużego zestawu problemów testowych ( patrz to pytanie ) za pomocą ich metody i skatalogowania wyników w bazie danych w celu porównania z innymi metodami. Naukowiec lub inżynier może następnie zapytać bazę danych, być może wskazując, jakie cechy rozwiązania / problemu są dla nich najważniejsze (dokładność, wydajność, właściwości jakościowe itp.) I uzyskać ilościowe porównanie wydajności wszystkich metod w bazie danych.

Zdaję sobie sprawę, że istnieje wiele trudności we wdrażaniu tego pomysłu (przede wszystkim: nakłonienie ludzi do rozwiązania wszystkich tych problemów i zmierzenie kosztów obliczeniowych). Ale moje pytanie brzmi: czy istnieje taka baza danych wyników? (powiedzmy w jakimś konkretnym subpolu) lub czy takie podejście zostało wdrożone gdziekolwiek?

Obie opublikowane dotychczas odpowiedzi dotyczą baz danych problemów. Pytam o bazy wyników.

Odpowiedzi:


9

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.


2
Bardzo podoba mi się twoje komentarze, a ty poruszasz ważną kwestię. Jestem pewien, że wiesz, że linki, które podajesz, prowadzą do baz danych problemów, a nie wyników.
David Ketcheson

To były najbliższe rzeczy, jakie mogłem znaleźć. Próbowałem szukać baz danych z wynikami, ponieważ myślę, że wpadłeś na naprawdę ważny pomysł, ale nie mogłem go znaleźć. Być może jest to ważny nowy projekt?
Geoff Oxberry

Dzięki; Zgadzam się, a te są przydatne jako „najbliższe istniejące przybliżenia”, jak pan mówi. Rzeczywiście rozważam to (wraz z kilkoma innymi, którzy nadadzą temu większą wiarygodność) jako nowy projekt. Bardzo się cieszę, że jesteś zainteresowany! Możemy to omówić gdzie indziej, ponieważ SE ma niechęć do dyskusji.
David Ketcheson

4

Podjęto próbę stworzenia listy „trudnych” całek do obliczenia numerycznego (patrz artykuły Waltera Gautschiego, Roberta Piessensa i innych), ale brak formalnej bazy danych.

W dziedzinie ODE znajduje się zestaw testowy IVP, zestaw testowy dla problemów z wartością początkową.


właściwie pytam o bazy danych obliczonych wyników, a nie bazy danych problemów.
David Ketcheson

1
@DavidKetcheson Zawiera kod sterownika do automatyzacji obliczania wyników samodzielnie.
Jed Brown

Świetny! Chociaż chciałbym zobaczyć rzeczywistą bazę danych, w której przechowywane są wyniki (oprócz oczywiście możliwości ich ponownego obliczenia), jest to najbliższa rzecz, o której widziałem to, o czym myślałem.
David Ketcheson

3

Nie znam takiej bazy danych, ale myślę, że bardzo trudno byłoby ją zdefiniować w użyteczny sposób. Moim zdaniem lepszym systemem jest wydanie kodu w postaci umożliwiającej uruchomienie, aby użytkownik mógł rozszerzyć testowanie tak kompleksowo, jak tylko chce. Jeśli chodzi o repozytoria społeczności, pakiet testowy IVP , o którym wspomina GertVdE, zawiera także kod sterownika do uruchomienia kilku opublikowanych solverów ODE / DAE w przypadku problemów z testem. W moich publikacjach staram się opublikować kod i wszystkie skrypty użyte do analizy danych wyjściowych oraz tworzenia wykresów i tabel pojawiających się w artykule.


1
Mały spór: to bardziej komentarz niż odpowiedź. Doceniam jednak krytyczne myślenie. Chciałbym, aby ludzie robili jedno i drugie. Po co zmusić mnie do zainstalowania i uruchomienia twojego kodu, aby móc wykreślić twoje wyniki względem moich? A potem możesz twierdzić, że nie ustawiłem właściwych opcji? W każdym razie ja (czyli typowy badacz) po prostu tego nie zrobię, ponieważ to za dużo pracy. Ale jeśli wszystko, co musiałem zrobić, to przeczytać w pliku danych, być może zechcę.
David Ketcheson

1

Warsztaty obliczeniowe z zakresu aerodynamiki poświęcone problemom wzorcowym mają podobny cel w przypadku problemów aeroakustycznych. Najpierw przedstawiają zestaw problemów porównawczych z wyprzedzeniem, a ludzie rozwiązują je przy użyciu własnych metod i porównują wyniki. Na przykład oto postępowanie z czwartego spotkania: http://www.archive.org/details/nasa_techdoc_20040182258

Chociaż z tego, co mogę powiedzieć, nie porównują skuteczności swoich kodów względem siebie, głównie patrzą na dokładność.


Ciekawy! Czy istnieje baza danych rozwiązań? Lub jak dokładnie porównują wyniki?
David Ketcheson

„Baza danych” znajduje się w opublikowanym przeze mnie raporcie. Na samym końcu artykułu znajduje się sekcja zatytułowana „Porównania rozwiązań”. Odbyły się tylko cztery spotkania, a ostatnie odbyło się w 2004 roku. Chciałbym, aby było więcej bodźców, aby udostępnić tego rodzaju rzeczy online, tak jak proponujesz.
James Custer

1

W ramach modelowania trzęsień ziemi podjęto kilka takich działań. Te, które przychodzą na myśl, to projekt symulacji zerwania dynamicznego i projekt inwersji źródła (http://eqsource.webfactional.com/wiki/). Oba z nich zapewniają fizyczne problemy do rozwiązania i są agnostyczne (na pewnym poziomie) w odniesieniu do zastosowanych metod. Naprawdę w tych projektach chodzi o porównanie ze sobą modelarzy specyficznych dla domeny, a nie ogólny zestaw problemów testowych dla każdej numerycznej metody pdes. Ale możesz porównać z innymi wynikami, co ujawniło wiele problemów z wieloma kodami.

Jedną z możliwości spojrzenia byłby projekt madagaskarski , który został opracowany w świecie obrazowania sejsmicznego, ale ma całkiem ogólny cel.


Madagaskar jest doskonałym przykładem. Dziękuję Ci!
Jack Poulson
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.