Каков наилучший способ сделать воспроизводимые исследования, если вам нужны проприетарные библиотеки?


19

Воспроизводимые исследования в области вычислений направлены на то, чтобы сделать код, необходимый для генерации результатов в вычислительной статье, доступным для других исследователей, чтобы они могли запустить этот код для воспроизведения результатов в этой статье. Я бы хотел, чтобы все мои исследования были воспроизводимыми, но я столкнулся с небольшим затруднением : пара работ, над которыми я работаю, использует собственный пакет автоматической дифференциации (называемый DAEPACK ) в проприетарной библиотеке ( CHEMKIN- II ; условия лицензии неясны).

Замена этих компонентов программного обеспечения на версии с открытым исходным кодом была бы слишком трудоемкой. Существует замена с открытым исходным кодом для CHEMKIN-II, называемая Cantera , но Cantera находится в C ++, тогда как CHEMKIN-II находится в Fortran 77. Потребуется много усилий, чтобы изменить достаточно кода Cantera, чтобы он мог обрабатываться автоматически инструменты дифференциации для C ++.

Учитывая, что мне нужны эти запатентованные пакеты, каков наилучший способ сделать мои исследования максимально воспроизводимыми, если предположить, что исследователи могут не иметь доступа к CHEMKIN-II? Поскольку DAEPACK является переводчиком от источника к источнику, мне не обязательно распространять DAEPACK; Я мог бы включить его вывод, который был бы исходными файлами Fortran, которые вычисляют производные.

В более общем плане, если вам требуется проприетарное программное обеспечение в вашей работе, и это проприетарное программное обеспечение не является широко доступным (т. Е. Не является ли MATLAB, Mathematica и т. Д.), Как вы делаете свою работу воспроизводимой?


Изменяет ли DAEPACK исходный код CHEMKIN-II или просто использует CHEMKIN-II для внутреннего использования?
Дан

DAEPACK анализирует исходный код CHEMKIN-II и генерирует исходные файлы Fortran, которые содержат подпрограммы, которые вычисляют матрицы Якоби, шаблоны разреженности и расширения интервалов. Это не изменяет исходный код; это как компилятор в этом смысле.
Джефф Оксберри

Если вывод DAEPACK является модифицированным источником CHEMKIN-II, почему вы можете распространять его?
Дан

Это производная работа, но мне не ясно, изменен ли источник. Имена переменных копируются, но по этому аргументу многие из написанных мною программ являются «модифицированным источником CHEMKIN-II». Я должен проверить это.
Джефф Оксберри

Позволяет ли лицензия CHEMKIN-II свободно распространять неизмененный источник и ограничивать распространение изменений? Я не могу найти копию его лицензии онлайн.
Дан

Ответы:


13

Я не думаю, что определение «воспроизводимых исследований» требует, чтобы автор бесплатно предоставил все инструменты, необходимые для воспроизведения полученных результатов. Если что-то из этого является собственностью, то будущий пользователь, а не автор, обязан принять меры для приобретения необходимого программного обеспечения. (Вы не ожидаете, что вам придется создавать программное обеспечение для кого-то другого, чтобы воспроизводить ваши результаты, верно?) Конечно, вы будете нести ответственность за то, чтобы точно указать, какой выпуск проприетарного программного обеспечения вы использовали, но ожидать от этого нецелесообразно. вам сделать исследовательский код совместимым с программным обеспечением с открытым исходным кодом только потому, что он с открытым исходным кодом.

[В дополнение к этому, в дополнение к разговору о воспроизводимости программного обеспечения, когда часть его является проприетарным, я думаю, что сначала необходимо рассмотреть более фундаментальный вопрос: дает ли программное обеспечение воспроизводимые результаты в разных установках (например, для разных архитектур и Версии компилятора. Например, ошибки округления и различия в распределении в результате различного числа процессоров означают, что многие расчеты молекулярного моделирования дадут разные результаты, просто изменив число процессоров, включенных в распределение. (Статистические средние значения должны достигать того же самого место, но траектории могут и, вероятно, в конечном итоге очень разные.)]


2
Я, безусловно, согласен с тем, что воспроизводимые исследования не обязывают автора предоставлять все необходимое программное обеспечение бесплатно. Однако программное обеспечение, которое вообще не является общедоступным, создает проблему. Одна из целей движения по воспроизводимым исследованиям состоит в том, чтобы помочь повысить осведомленность об этой проблеме в сообществе, побуждая людей обнародовать код исследования, даже если они не планируют оказывать ему какую-либо поддержку, просто ради воспроизводимости.
Хинсен

2
Код, продаваемый на коммерческой основе, по-прежнему доступен. Если больше невозможно получить лицензию, это, конечно, другое дело. Но первоначальному автору кода не нужно было переписывать код для размещения другой библиотеки только в целях воспроизводимости. (Есть аргумент для большей жизнеспособности и использования кода, но аргумент воспроизводимости не является необходимым prima facie - хотя его можно считать достаточным.)
aeismail

4

Я никогда не придерживался мнения, что «воспроизводимые исследования» означают, что вашим коллегам-читателям и ученым нужно всего лишь нажать «Выполнить» (или скомпилировать или что у вас), чтобы полностью воспроизвести ваши результаты. Если ничего другого, это убило бы исследование любого, кто использует запатентованный пакет статистического анализа, или сделало бы вещи "невоспроизводимыми", если бы они были созданы для платформы или языка, которые вышли из моды. Или, если на то пошло, кто-то хочет воспроизвести ваш код, но не понимает / не использует язык, который вы используете.

CrossValidated провел аналогичную дискуссию на эту тему - означает ли «воспроизводимость», что вы можете повторить мой анализ на моих данных или что сам эксперимент можно повторить с нуля и получить подтверждающие результаты. Ссылка находится здесь: /stats/14999/how-are-we-defining-reproducible-research

Я думаю, что более важным элементом является описание того, что вы сделали на том уровне, на котором оно могло бы быть перекодировано кем-то, кто был достаточно заинтересован, и если бы использовались коммерческие инструменты, эти инструменты упоминаются. Потому что это отвечает интересам репликации эксперимента и двойной проверки ошибок кода.


2

В вашем случае, когда у вас может даже не быть прав на распространение какого-либо кода, который вы использовали вообще, лучше всего сделать очень подробное описание алгоритма. В зависимости от того, насколько сложен ваш код, кто-то может воспроизвести все, что его интересует, из любых доступных инструментов.

В противном случае, спросите вокруг и посмотрите, сколько из вашей работы вам разрешено выпустить, а затем выпустите это.


Многое происходит из этого чата.
Дан

1

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

Воспроизводимые исследования должны прояснить свои концепции и идеи и не продвигать имеющиеся в настоящее время инструменты, такие как аппаратное или программное обеспечение, в качестве предварительного условия для воспроизведения результатов исследования. Используемые алгоритмы должны быть подробно изложены в понятной универсальной форме; Текущая версия конкретного оборудования, компилятора или программного пакета может использоваться только в качестве инструмента для демонстрации результатов исследования.


Я думаю, что нам нужны как концепции и идеи для человеческого понимания и долгосрочной интерпретируемости, так и код для краткосрочной проверки.
Хинсен

1

Публикация сгенерированного кода на Fortran звучит как очень хорошее решение в вашем случае.

Как правило, я считаю, что использование неопубликованного программного обеспечения несовместимо с целями воспроизводимых исследований. Это одна из причин, почему я считаю воспроизводимые исследования долгосрочной целью, а не чем-то, что может потребоваться немедленно применить.


1

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.