Powtarzalne badania w dziedzinie obliczeń mają na celu udostępnienie kodu potrzebnego do wygenerowania wyników w dokumencie obliczeniowym innym badaczom, aby mogli uruchomić ten kod w celu odtworzenia wyników w tym artykule. Chciałbym, aby wszystkie moje badania były powtarzalne, ale wpadam w drobną przeszkodę: kilka artykułów, nad którymi pracuję, korzysta z wewnętrznego pakietu automatycznego różnicowania (zwanego DAEPACK ) w zastrzeżonej bibliotece ( CHEMKIN- II ; niejasne warunki licencji).
Zastąpienie tych komponentów oprogramowania wersjami typu open source byłoby zbyt czasochłonne. Istnieje otwarty zamiennik CHEMKIN-II o nazwie Cantera , ale Cantera jest w C ++, natomiast CHEMKIN-II w Fortran 77. Wymagałoby wiele wysiłku, aby zmodyfikować wystarczającą ilość kodu Cantera, aby mógł być przetwarzany automatycznie narzędzia do różnicowania dla C ++.
Biorąc pod uwagę, że potrzebuję tych zastrzeżonych pakietów, jaki jest najlepszy sposób, aby moje badania były możliwie jak najbardziej powtarzalne, zakładając, że badacze mogą nie mieć dostępu do CHEMKIN-II? Ponieważ DAEPACK jest tłumaczem między źródłami, niekoniecznie muszę rozpowszechniać DAEPACK; Mogę być w stanie dołączyć jego dane wyjściowe, które byłyby plikami źródłowymi Fortran, które obliczają pochodne.
Mówiąc bardziej ogólnie, jeśli potrzebujesz oprogramowania chronionego prawami autorskimi w pracy, a oprogramowanie chronione prawami autorskimi nie jest powszechnie dostępne (tj. Czy nie jest to MATLAB, Mathematica itp.), W jaki sposób możesz zapewnić powtarzalność swojej pracy?
źródło
Odpowiedzi:
Nie sądzę, aby definicja „powtarzalnych badań” wymagała od autora zapewnienia wszystkich narzędzi potrzebnych do odtworzenia uzyskanych wyników. Jeśli część z nich jest zastrzeżona, to przyszły użytkownik, a nie autor, jest zobowiązany do podjęcia decyzji o zakupie potrzebnego oprogramowania. (Nie spodziewałbyś się, że będziesz musiał zbudować oprogramowanie, aby ktoś inny mógł odtworzyć twoje wyniki, prawda?) Oczywiście miałbyś obowiązek dokładnie określić, której wersji oprogramowania własnościowego używałeś, ale nie można oczekiwać aby kod badawczy był zgodny z oprogramowaniem typu open source tylko dlatego, że jest to oprogramowanie typu open source.
[Na marginesie, oprócz mówienia o odtwarzalności oprogramowania, gdy część jest zastrzeżona, myślę, że najpierw należy odpowiedzieć na bardziej fundamentalne pytanie: czy oprogramowanie daje odtwarzalne wyniki w różnych instalacjach (na przykład dla różnych architektur i wersje kompilatora? Na przykład błędy zaokrągleń i różnice w przydziałach wynikające z różnej liczby procesorów oznaczają, że wiele obliczeń symulacji molekularnych da różne wyniki tylko poprzez zmianę liczby procesorów objętych przydziałem (średnie statystyczne powinny osiągnąć ten sam miejsce, ale trajektorie mogą i prawdopodobnie będą bardzo różne.)]
źródło
Nigdy nie uważałem, że „powtarzalne badania” oznaczają, że Twoi czytelnicy i naukowcy powinni jedynie kliknąć „Uruchom” (lub skompiluj czy co masz), aby całkowicie odtworzyć swoje wyniki. Jeśli nic więcej, zabiłoby to badania każdego, kto korzysta z zastrzeżonego pakietu analizy statystycznej, lub uczyniłoby rzeczy „nieprodukowalnymi”, gdyby zostały stworzone dla platformy lub języka, który wypadł z mody. Albo jeśli chodzi o to, czy ktoś chce odtworzyć Twój kod, ale nie rozumie / nie używa języka, którego używasz.
CrossValidated przeprowadził podobną dyskusję na ten temat - czy „odtwarzalność” oznacza, że możesz powtórzyć moją analizę moich danych lub że sam eksperyment można uruchomić od zera i dostarczyć wyniki potwierdzające. Link jest tutaj: /stats/14999/how-are-we-defining-reproducible-research
Myślę, że ważniejszym elementem jest opisanie tego, co zrobiłeś na poziomie, na którym mógł być ponownie zakodowany przez osobę, która była wystarczająco zainteresowana, a jeśli użyto narzędzi komercyjnych, narzędzia te są wymienione. Ponieważ służy to zarówno interesom replikacji eksperymentu, jak i podwójnemu sprawdzeniu błędów kodu.
źródło
W twoim przypadku, w którym możesz nawet nie mieć prawa do rozpowszechniania żadnego z użytych kodów, bardzo dokładny opis algorytmu może być najlepszym, co możesz zrobić. W zależności od złożoności kodu, ktoś może odtworzyć to, co go interesuje, z dowolnego dostępnego narzędzia.
W przeciwnym razie zapytaj i zobacz, ile pracy możesz wydać, a następnie ją zwolnić.
źródło
Najlepszym sposobem na przeprowadzenie powtarzalnych badań nie jest poleganie na niczym krótkotrwałym, takim jak określone kody na konkretnej platformie. Wczoraj obliczaliśmy na kartach perforowanych, dziś na elektronach w krzemie, jutro może być na laserach z białkami, a nawet żywymi komórkami, pojutrze na kropkach kwantowych i kto wie, co będzie w przyszłym tygodniu.
Powtarzalne badania powinny jasno przedstawiać swoje koncepcje i pomysły, a nie promować obecnie dostępnych narzędzi, takich jak sprzęt lub oprogramowanie, jako warunek konieczny do odtworzenia wyników badań. Zastosowane algorytmy powinny być wyszczególnione w przejrzystej, uniwersalnej formie; aktualna wersja określonego sprzętu, kompilatora lub pakietu oprogramowania może być używana jedynie jako narzędzie do zademonstrowania wyników badań.
źródło
Publikacja wygenerowanego kodu Fortran wydaje się w twoim przypadku bardzo dobrym rozwiązaniem.
Zasadniczo uważam, że korzystanie z niepublikowanego oprogramowania jest niezgodne z celami powtarzalnych badań. Jest to jeden z powodów, dla których postrzegam powtarzalne badania jako cel długoterminowy, a nie coś, co można wymagać natychmiastowego zastosowania.
źródło
Pracuję dla Elseviera. Moja firma zaczęła używać frameworku Collage (opracowanego w odpowiedzi na Wielkie Wyzwanie Papieru Wykonawczego) w wydaniach czasopism, aby umożliwić autorom publikowanie fragmentów kodu wykonywalnego wraz z ich artykułem. Ta funkcja ułatwia czytelnikom odtwarzanie wyników zgłoszonych w artykule i ponowne wykorzystanie opublikowanych materiałów do własnych badań. Collage obsługuje szeroką gamę zastrzeżonego oprogramowania, oprócz oprogramowania typu open source; więcej informacji można znaleźć w wideo informacyjnym tutaj oraz na stronie internetowej środowiska tworzenia kolaży .
źródło