Воспроизводимые исследования в области вычислений направлены на то, чтобы сделать код, необходимый для генерации результатов в вычислительной статье, доступным для других исследователей, чтобы они могли запустить этот код для воспроизведения результатов в этой статье. Я бы хотел, чтобы все мои исследования были воспроизводимыми, но я столкнулся с небольшим затруднением : пара работ, над которыми я работаю, использует собственный пакет автоматической дифференциации (называемый DAEPACK ) в проприетарной библиотеке ( CHEMKIN- II ; условия лицензии неясны).
Замена этих компонентов программного обеспечения на версии с открытым исходным кодом была бы слишком трудоемкой. Существует замена с открытым исходным кодом для CHEMKIN-II, называемая Cantera , но Cantera находится в C ++, тогда как CHEMKIN-II находится в Fortran 77. Потребуется много усилий, чтобы изменить достаточно кода Cantera, чтобы он мог обрабатываться автоматически инструменты дифференциации для C ++.
Учитывая, что мне нужны эти запатентованные пакеты, каков наилучший способ сделать мои исследования максимально воспроизводимыми, если предположить, что исследователи могут не иметь доступа к CHEMKIN-II? Поскольку DAEPACK является переводчиком от источника к источнику, мне не обязательно распространять DAEPACK; Я мог бы включить его вывод, который был бы исходными файлами Fortran, которые вычисляют производные.
В более общем плане, если вам требуется проприетарное программное обеспечение в вашей работе, и это проприетарное программное обеспечение не является широко доступным (т. Е. Не является ли MATLAB, Mathematica и т. Д.), Как вы делаете свою работу воспроизводимой?
источник
Ответы:
Я не думаю, что определение «воспроизводимых исследований» требует, чтобы автор бесплатно предоставил все инструменты, необходимые для воспроизведения полученных результатов. Если что-то из этого является собственностью, то будущий пользователь, а не автор, обязан принять меры для приобретения необходимого программного обеспечения. (Вы не ожидаете, что вам придется создавать программное обеспечение для кого-то другого, чтобы воспроизводить ваши результаты, верно?) Конечно, вы будете нести ответственность за то, чтобы точно указать, какой выпуск проприетарного программного обеспечения вы использовали, но ожидать от этого нецелесообразно. вам сделать исследовательский код совместимым с программным обеспечением с открытым исходным кодом только потому, что он с открытым исходным кодом.
[В дополнение к этому, в дополнение к разговору о воспроизводимости программного обеспечения, когда часть его является проприетарным, я думаю, что сначала необходимо рассмотреть более фундаментальный вопрос: дает ли программное обеспечение воспроизводимые результаты в разных установках (например, для разных архитектур и Версии компилятора. Например, ошибки округления и различия в распределении в результате различного числа процессоров означают, что многие расчеты молекулярного моделирования дадут разные результаты, просто изменив число процессоров, включенных в распределение. (Статистические средние значения должны достигать того же самого место, но траектории могут и, вероятно, в конечном итоге очень разные.)]
источник
Я никогда не придерживался мнения, что «воспроизводимые исследования» означают, что вашим коллегам-читателям и ученым нужно всего лишь нажать «Выполнить» (или скомпилировать или что у вас), чтобы полностью воспроизвести ваши результаты. Если ничего другого, это убило бы исследование любого, кто использует запатентованный пакет статистического анализа, или сделало бы вещи "невоспроизводимыми", если бы они были созданы для платформы или языка, которые вышли из моды. Или, если на то пошло, кто-то хочет воспроизвести ваш код, но не понимает / не использует язык, который вы используете.
CrossValidated провел аналогичную дискуссию на эту тему - означает ли «воспроизводимость», что вы можете повторить мой анализ на моих данных или что сам эксперимент можно повторить с нуля и получить подтверждающие результаты. Ссылка находится здесь: /stats/14999/how-are-we-defining-reproducible-research
Я думаю, что более важным элементом является описание того, что вы сделали на том уровне, на котором оно могло бы быть перекодировано кем-то, кто был достаточно заинтересован, и если бы использовались коммерческие инструменты, эти инструменты упоминаются. Потому что это отвечает интересам репликации эксперимента и двойной проверки ошибок кода.
источник
В вашем случае, когда у вас может даже не быть прав на распространение какого-либо кода, который вы использовали вообще, лучше всего сделать очень подробное описание алгоритма. В зависимости от того, насколько сложен ваш код, кто-то может воспроизвести все, что его интересует, из любых доступных инструментов.
В противном случае, спросите вокруг и посмотрите, сколько из вашей работы вам разрешено выпустить, а затем выпустите это.
источник
Лучший способ сделать воспроизводимые исследования - не полагаться на что-то недолговечное, например, специальные коды на конкретной платформе. Вчера мы работали на перфокартах, сегодня на электронах в кремнии, завтра это могут быть лазеры с белками или даже живыми клетками, послезавтра на квантовых точках, и кто знает, что будет на следующей неделе.
Воспроизводимые исследования должны прояснить свои концепции и идеи и не продвигать имеющиеся в настоящее время инструменты, такие как аппаратное или программное обеспечение, в качестве предварительного условия для воспроизведения результатов исследования. Используемые алгоритмы должны быть подробно изложены в понятной универсальной форме; Текущая версия конкретного оборудования, компилятора или программного пакета может использоваться только в качестве инструмента для демонстрации результатов исследования.
источник
Публикация сгенерированного кода на Fortran звучит как очень хорошее решение в вашем случае.
Как правило, я считаю, что использование неопубликованного программного обеспечения несовместимо с целями воспроизводимых исследований. Это одна из причин, почему я считаю воспроизводимые исследования долгосрочной целью, а не чем-то, что может потребоваться немедленно применить.
источник
Я работаю на Elsevier. Моя компания начала использовать платформу Collage (разработанную в ответ на выполнимый документ Grand Challenge) в журнальных выпусках, чтобы позволить авторам публиковать куски исполняемого кода со своей статьей. Эта функция позволяет читателям воспроизводить результаты, представленные в статье, и повторно использовать опубликованные материалы для своих собственных исследований. Collage поддерживает широкий спектр проприетарного программного обеспечения, в дополнение к программному обеспечению с открытым исходным кодом; Более подробную информацию можно найти в информационном видео здесь и на веб-сайте Collage Authoring Environment .
источник