Jaki jest najlepszy sposób na przeprowadzenie powtarzalnych badań, jeśli potrzebujesz zastrzeżonych bibliotek?


19

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?


Czy DAEPACK modyfikuje kod źródłowy CHEMKIN-II, czy po prostu używa CHEMKIN-II wewnętrznie?
Dan

DAEPACK analizuje kod źródłowy CHEMKIN-II i generuje pliki źródłowe Fortran zawierające podprogramy, które obliczają macierze jakobiańskie, wzorce sparcytacji i rozszerzenia przedziałów. Nie modyfikuje kodu źródłowego; w tym sensie jest jak kompilator.
Geoff Oxberry

Jeśli wyjście DAEPACK jest zmodyfikowane źródło CHEMKIN-II, dlaczego wolno go rozpowszechniać?
Dan

Jest to pochodna praca, ale nie jest dla mnie jasne, czy źródło zostało zmodyfikowane. Nazwy zmiennych są kopiowane, ale przez ten argument wiele programów, które napisałem, jest „zmodyfikowanym źródłem CHEMKIN-II”. Musiałbym sprawdzić ten punkt.
Geoff Oxberry

Czy licencja CHEMKIN-II umożliwia swobodne rozpowszechnianie niezmodyfikowanego źródła i ograniczenie sposobu rozpowszechniania zmian? Nie mogę znaleźć kopii jego licencji online.
Dan

Odpowiedzi:


13

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.)]


2
Z pewnością zgadzam się, że powtarzalne badania nie zobowiązują autora do dostarczenia całego wymaganego oprogramowania za darmo. Jednak oprogramowanie, które w ogóle nie jest publicznie dostępne, stanowi problem. Jednym z celów powtarzalnego ruchu badawczego jest pomoc w budowaniu świadomości tego problemu w społeczności, zachęcanie ludzi do upublicznienia kodu badawczego, nawet jeśli nie planują żadnego wsparcia dla niego, tylko ze względu na odtwarzalność.
khinsen

2
Kod sprzedawany na rynku jest nadal dostępny. Jeśli uzyskanie licencji nie jest już możliwe, jest to oczywiście inna sprawa. Ale pierwotny autor kodu nie powinien przepisywać kodu, aby pomieścić inną bibliotekę tylko do celów odtwarzalności. (Trzeba argumentować za większą żywotnością i wykorzystaniem kodu, ale argument odtwarzalności nie jest na pierwszy rzut oka konieczny - chociaż można go uznać za wystarczający.)
aeismail

4

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.


2

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ć.


Wiele z tego pochodzi z tej rozmowy na czacie.
Dan

1

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ń.


Myślę, że potrzebujemy zarówno pojęć i pomysłów dla ludzkiego zrozumienia i długoterminowej interpretacji, jak i kodu do weryfikacji krótkoterminowej.
khinsen

1

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.


1

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 .

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.