계산 연구를 재현 할 수 있도록 저널 기사 (또는 온라인 게시)에 어떤 자료를 포함시켜야합니까?


23

컴퓨터 과학 연구에서 재현성은 점점 더 중요 해지고 있습니다. (예를 들어, 과학 에서 Roger Peng의이 기사를 참조하십시오 . 다른 기사와 웹 사이트도 알고 있습니다.) 그러나 저널 기사 (또는 온라인)에 얼마나 많은 정보를 포함시켜야하는지 명확하지 않습니다. 나의 전산 연구는 재현 가능합니다 (지적 재산권 계약과 같은 다른 장애물이 없다고 가정). 거기에 지침이 있습니까? 그렇지 않은 경우 사람들이 컴퓨터 과학 연구를 재현 할 수 있도록하기 위해 수행해야 할 단계를 제안 할 수 있습니까?

답변에 특히 사용되는 것은 기본적으로 워크 플로와 같은 제안을 구현할 수있는 방법입니다. 시스템에 구애받지 않거나 Linux 기반의 워크 플로우가 바람직합니다. 또한, 귀하가 경험 한 관련 개인 경험에 대해 논의하는 것도 도움이 될 것입니다.

필자의 특별한 경우에는 MATLAB에서 수행 할 수있을만큼 간단한 몇 가지 계산 예제가 포함 된 이론적 인 논문을 작성하고 있습니다. 이 경우 MATLAB 스크립트를 포함하여 내 컴퓨터에 특정 버전의 MATLAB을 기록하는 것만으로도 재현성을 확보하기에 충분하다고 생각합니다. 그러나 더 복잡한 시나리오가있을 것이라고 확신하며, 재현 가능한 연구를 수행하는 방법에 대한 조언은 향후 프로젝트에 대해 매우 도움이 될 것입니다.

답변:


17

중요한 순서대로.

소스 코드

  1. 알고리즘의 주요 측면을 구현하는 코드를 사용 가능하게하십시오. 사용자가 빌드하거나 실행할 수없는 경우에도 수행 된 작업을 정확하게 읽을 수 있습니다. 몇 번이나 종이에 기록되지 않은 간단한 결정을 보았지만 소스 코드로 몇 분 동안 결정적으로 대답했습니다.
  2. 실행 가능하게 만드십시오. 여기에는 종속 라이브러리의 버전을 문서화하는 것이 포함되며 일반적으로 이식성이 좋은 코드를 작성해야합니다. 자신의 컴퓨터가 아닌 하나 이상의 컴퓨터에 빌드해야합니다 (깨끗한 환경에서 빌드하지 않은 경우 숨겨진 종속성이 있음).
  3. 사용 된 코드 버전을 지정하십시오. 정식으로 출시 된 버전이 아닌 경우 (때때로도) 버전의 SHA1을 문서화하십시오. (이것은 Git 및 Mercurial과 같은 DSCM에 가장 자연스럽게 적용되지만 어디에서나 사용할 수 있습니다.) 이는 누군가가 실제로 동일한 버전의 코드를 갖도록 보장하는 매우 안정적인 방법입니다.
  4. 컴파일러 공급 업체, 버전 및 최적화 플래그, libc, CPU 유형, 메모리 유형 및 토폴로지 (특히 성능 연구)와 같은 시스템 라이브러리와 같은 구성 및 호스트 매개 변수를 포함합니다.

런타임 매개 변수 / 입력 파일

완전한 입력 사양을 포함하십시오. 스크립트에 의해 생성 된 경우 해당 스크립트를 포함하십시오. 막대한 데이터 인 경우 데이터를 얻고 처리하는 방법을 문서화하십시오. 알고리즘에 임의성이있는 경우 사용 된 난수 생성기 및 시드를 지정하십시오.

그림과 테이블을 생성하는 스크립트

이 스크립트를 포함 시키면 수치가 실제로 무엇을 나타내는 지에 대한 질문을 명확하게하고 매개 변수를 변경하거나 알고리즘을 수정하는 경우 상황이 어떻게 변하는 지 실험 해 볼 수 있습니다.


단위 테스트를 포함시키는 것이 얼마나 중요합니까? 재현성을 위해 포함 된 코드를 얼마나 잘 문서화해야합니까?
Geoff Oxberry

결과의 재현성을 원한다면 단위 테스트 및 매뉴얼 페이지 / 사용자 매뉴얼이 필요하지 않습니다. 미래의 공동 저자 나 소프트웨어 사용자 (인용 ...)를 유치하려는 경우 재사용 할 소프트웨어를 작성하고 철저하게 문서화하는 것이 좋습니다. 소프트웨어를 다른 사람이 사용하도록 의도했는지 여부에 관계없이 테스트 및 문서화는 장기적으로 더 자신감을 가지고 실험 할 수 있기 때문에 장기적으로 시간을 절약 수 있습니다.
제드 브라운

6

대부분의 저널은 공식적인 방식으로 설정되지 않았지만 최근에 소스 코드와 기사의 일부로 필요한 기타 모든 것을 포함하는 Numerical Software의 아카이브를 최근에 설립했습니다. 확인하십시오 : http://journals.tdl.org/ans 제출은 환영합니다!


2
편집위원회 회원 중 일부애완 동물 소프트웨어 프로젝트 를 사용한다고 가정합니다 . 이 요구 사항이 저널의 무결성을 저하 시킨다고 생각할 수는 없습니다.
잭 폴슨

1
@JackPoulson : 이것은 편집자들 사이에서 오랫동안 논의 해 왔으며 커뮤니티의 다른 사람들과 훨씬 더 오랫동안 논의한 시점입니다. 나는 우리 모두가 당신의 요점을 본다고 생각하지만, 동시에 두 가지 이유로 다른 방법으로는 할 수 없다고 느꼈습니다. (i) 무작위 프로젝트 X에 대한 리뷰어를 어디에서 찾을 수 있는지 모릅니다 프로젝트의 품질이 우수하고 그렇지 않은 커뮤니티에는 일정한 합의가 있습니다. 우리는 ANS가 모든 워너비 프로젝트의 출구가되는 것을 원하지 않았습니다. 우리는 웹 페이지에 언급하면서 결국 모든 고품질 패키지를 포함하고 싶습니다.
Wolfgang Bangerth

2
어떤 이유로 검토자가 "랜덤 필드 X"대신 "랜덤 프로젝트 X"에 익숙해야합니까? 주어진 패키지 목록으로 구현할 수있는 것에 대한 심각한 제한이 있기 때문에 저널이 많은 종류의 논문에서 누락되었다고 생각하기 때문에 이것을 제기합니다. 예를 들어, MPI 또는 천국 금지, BLAS 또는 LAPACK 호출에 관련된 모든 것이 저널의 표준을 위반하는 것처럼 보이기 때문에 병렬 컴퓨팅에 대한 근본적인 기여는 없습니다. 이 오프라인에 대해 더 이야기 드리겠습니다.
잭 폴슨

@JackPoulson : 내가 알 수있는 한, 다른 저널에 논문을 쓰는 것 외에도 병렬 컴퓨팅에 근본적인 기여를하고 싶다면 ANS에 "Library Introduction"논문을 작성하여 도서관이 승인 된 라이브러리 목록에 추가되었습니다.
Geoff Oxberry

1
@GeoffOxberry : Wolfgang과 저는 원만한 대화를 나 linear으며, 일반적인 대수 결론은 선형 대수 라이브러리 목록을 크게 확장해야한다는 것이지만 저널의 목표는 단순히 재현성이 아니라 "고품질"라이브러리에 대한 것입니다. 따라서 일부 베팅 프로세스 가 있어야합니다 .
Jack Poulson

3

에서

Stodden, V. 2009. "재생 가능한 과학 연구를위한 법적 프레임 워크." CiSE .

Victoria Stodden은 전체 "연구 개요"를 출판 할 것을 권장하고, p. 38 :

  1. 연구 논문
  2. 자료 -데이터 처리를위한 문서 및 코드 포함
  3. 실험 – 모든 소스 코드; 설명서, 매개 변수, 설정 및 운영 체제 종속성
  4. 실험 결과 — 그림, 데이터, 일러스트레이션 소스 파일; 실험 결과의 처리에 대한 문서 및 설명
  5. 모든 보조 재료

2

적어도 실험을 수행하는 데 사용한 소스 코드와 데이터는 어딘가에 액세스 할 수 있어야합니다. 필요한 경우 코드를 작성하기위한 지시 사항을 추가하십시오. 실제로 공개 액세스 저널이 거의 없으므로 공개 규칙이 없습니다.


2

Elsevier에서 일합니다. 저의 회사는 저널 이슈에서 Executable Paper Grand Challenge에 대한 응답으로 개발 된 Collage 프레임 워크를 사용하여 저자가 논문에 결과와 그림을 재현하는 데 필요한 모든 데이터와 코드를 포함시킬 수있게했습니다. 이 기능을 통해 독자는 기사에보고 된 결과를보다 쉽게 ​​재현하고 출판 된 자료를 자신의 연구에 재사용 할 수 있습니다. Collage은 다양한 오픈 소스 및 독점 소프트웨어를 지원합니다. 자세한 내용은 여기 의 정보 비디오 및 콜라주 제작 환경 웹 사이트 에서 확인할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.