Який матеріал я повинен включити до статті журналу (або розмістити в Інтернеті), щоб зробити своє обчислювальне дослідження відтворюваним?


23

Відтворюваність набуває все більшого значення в дослідженнях обчислювальної науки. (Наприклад, дивіться цю статтю Роджера Пенга в науці ; мені відомі й інші такі статті та веб-сайти.) Однак мені незрозуміло, скільки інформації я повинен включати в статтю журналу (або в Інтернеті). мої обчислювальні дослідження відтворюються (якщо припустити, що немає інших перешкод, як, наприклад, угоди про інтелектуальну власність). Чи є там якісь вказівки, і якщо ні, чи могли б люди підказати, які кроки повинні зробити дослідники, щоб зробити їх науково-дослідницькими дослідженнями відтворюваними?

Особливо корисними у відповідях були б можливі способи реалізації цих пропозицій - в основному робочі процеси. Переважні робочі процеси, що мають системний або агностичний характер. Також було б корисно обговорити будь-який відповідний особистий досвід, який ви мали.

У моєму конкретному випадку я пишу теоретичний документ із кількома прикладними розрахунками, які досить прості, що їх можна зробити в MATLAB. Я думаю, що в цьому випадку, включаючи сценарій MATLAB, а також зазначення конкретної версії MATLAB на моїй машині, буде достатньо для забезпечення відтворюваності. Однак я впевнений, що там є складніші сценарії, і поради щодо проведення відтворювальних досліджень були б дуже корисними для майбутніх проектів.

Відповіді:


17

Приблизно за важливістю.

Вихідний код

  1. Зробіть доступним код, який реалізує ключові аспекти вашого алгоритму. Навіть якщо користувач не може його створити або запустити, він може точно прочитати, що зроблено. Я декілька разів помічав прості рішення, які не були зафіксовані в папері, але на пару хвилин із вихідним кодом відповіли остаточно.
  2. Зробіть її легкодоступною. Це включає документування версій залежних бібліотек і, як правило, вимагає, щоб ви написали дещо переносний код. Переконайтесь, що він базується на принаймні одній машині, крім вашої власної (легко мати приховані залежності, якщо ви ніколи не будували його в чистому середовищі).
  3. Вкажіть версію коду, який використовувався. Якщо це не формально випущена версія (а іноді навіть тоді), документуйте SHA1 версії. (Це найбільш природно стосується DSCM, таких як Git і Mercurial, але їх можна використовувати де завгодно.) Це дуже надійний спосіб гарантувати, що хтось справді має ту саму версію коду.
  4. Включайте параметри конфігурації та хоста, включаючи постачальника компілятора, версії та прапори оптимізації, системні бібліотеки, такі як libc, тип процесора, тип пам'яті та топологія (особливо для досліджень продуктивності).

Параметри часу / вхідні файли

Включіть повну специфікацію вводу. Якщо він був створений сценарієм, включіть його. Якщо це величезна кількість даних, документуйте, як їх отримати та обробити. Якщо ваш алгоритм має випадковість, вкажіть генератор випадкових чисел та насіння, яке було використано.

Сценарії для створення фігур та таблиць

Дуже корисно включити ці сценарії, як для уточнення будь-яких запитань про те, що фігури дійсно показують, так і для того, щоб читач експериментував із тим, як все змінюється, якщо вони змінюють параметри або змінюють алгоритм.


Наскільки важливо було б включати одиничні тести? Наскільки добре я повинен документувати код, який я включаю для відтворюваності?
Джефф Оксберрі

Якщо ви просто хочете відтворювати результати, тести одиниць та сторінки керівництва / посібники користувача не потрібні. Якщо ви намагаєтесь залучити майбутніх співавторів або користувачів свого програмного забезпечення (цитати ...), тоді писати програмне забезпечення для повторного використання та ретельно документувати його варто. Зауважте, що незалежно від того, чи призначено ваше програмне забезпечення для інших користувачів, тести та документація можуть заощадити ваш час у довгостроковій перспективі, лише тому, що він дозволяє рухатись та експериментувати більш впевнено.
Джед Браун

6

Більшість журналів не створені для цього формально, але нещодавно ми створили Архів чисельного програмного забезпечення, який спеціально призначений для використання вихідного коду та всього іншого, що є необхідним, є частиною статті. Перевірте це: http://journals.tdl.org/ans Представлення вітаються!


2
Припустимо, що ви використовуєте проект програмного забезпечення для домашніх тварин деяких членів редакції . Я не можу не відчути, що ця вимога погіршує цілісність журналу.
Джек Поульсон

1
@JackPoulson: Це пункт, про який ми довго обговорювались між редакторами, і який ми обговорювали ще більше з іншими членами спільноти. Я думаю, що ми всі бачимо вашу думку, але в той же час ми відчували, що не можемо зробити це іншим способом з двох причин: (i) Ми не знаємо, де знайти рецензентів на випадковий проект X. (ii) У громаді існує певна консенсус щодо того, які проекти є якісними, а які - ні; ми не хотіли, щоб ANS стала торговою точкою для кожного проекту Wannabe. Як ми заявляємо на веб-сторінці, ми хотіли б з часом включити всі високоякісні пакети.
Вольфганг Бангерт

2
З якої причини рецензент повинен бути знайомий з "випадковим проектом X" замість "випадковим полем X"? Я підводжу це, тому що вважаю, що журнал не вистачає для значного класу робіт, оскільки існують суворі обмеження щодо того, що можна реалізувати за допомогою даного списку пакунків. Наприклад, не може бути принципового внеску в паралельне обчислення, оскільки все, що пов'язане із зануренням у дзвінки в MPI, або, не дай бог, BLAS або LAPACK, здавалося б, порушує стандарти журналу. Я був би радий поговорити про це в режимі офлайн.
Джек Поульсон

@JackPoulson: Наскільки я можу сказати, якщо ви хочете внести фундаментальний внесок у паралельні обчислення, окрім написання документа в іншому журналі, ви також можете написати документ "Вступ до бібліотеки" в ANS, щоб переконатися, що ваша бібліотека є додано до затвердженого списку бібліотек.
Джефф Оксберрі

1
@GeoffOxberry: Ми з Вольфгангом вели дружні розмови, і спільний висновок полягав у тому, що список бібліотек лінійних алгебр повинен бути значно розширений, але мета журналу - це "якісні" бібліотеки, а не просто відтворюваність, і тому має бути якийсь процес перевірки.
Джек Поульсон

3

В

Стодден, В. 2009. «Правова основа для відтворювані наукових досліджень.» Сиз .

Вікторія Стодден рекомендує опублікувати повний "збірник досліджень" та перелічити наступні компоненти на с. 38:

  1. Дослідницький документ
  2. Дані - включаючи документацію та код для обробки даних
  3. Експеримент - весь вихідний код; документація, параметри, налаштування та залежність від операційної системи
  4. Результати експерименту - фігури, дані, вихідні файли ілюстрації; документація та пояснення обробки результатів експерименту
  5. Будь-який допоміжний матеріал

2

Принаймні, вихідний код і дані, які ви використовували для проведення експериментів, повинні бути десь доступними. Додайте інструкції, щоб створити свій код, якщо це необхідно. Дійсно, існує так мало журналів із відкритим доступом, що немає відкритого та встановленого правила.


2

Я працюю на Elsevier. Моя компанія почала використовувати рамку Collage (розроблену у відповідь на Executable Paper Grand Challenge) у виданнях журналів, щоб автори могли включити всі дані та код, необхідні для відтворення результатів та цифр у своїх роботах. Ця функція полегшує читачам відтворювати результати, про які повідомляється у статті, та повторно використовувати опубліковані матеріали для власних досліджень. Collage підтримує широкий спектр програмного забезпечення з відкритим кодом та власним програмним забезпеченням; більше інформації можна знайти в інформаційному відео тут та на веб-сайті Collage Authoring Environment .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.