ฉันควรมีเนื้อหาใดในบทความวารสาร (หรือโพสต์ออนไลน์) เพื่อให้การวิจัยการคำนวณของฉันทำซ้ำได้


23

ความสามารถในการทำซ้ำมีความสำคัญมากขึ้นเรื่อย ๆ ในการวิจัยทางวิทยาศาสตร์คอมพิวเตอร์ (ตัวอย่างเช่นดูบทความนี้โดย Roger Peng in Science ; ฉันทราบถึงบทความและเว็บไซต์อื่น ๆ ด้วยเช่นกัน) อย่างไรก็ตามไม่ชัดเจนว่าฉันควรรวมข้อมูลจำนวนเท่าใดในบทความวารสาร (หรือออนไลน์) การวิจัยการคำนวณของฉันทำซ้ำได้ (สมมติว่าไม่มีอุปสรรคอื่น ๆ เช่นข้อตกลงด้านทรัพย์สินทางปัญญา) มีแนวทางใดบ้างหรือไม่หากผู้คนสามารถแนะนำขั้นตอนที่นักวิจัยควรทำเพื่อให้การวิจัยทางวิทยาศาสตร์การคำนวณของพวกเขาสามารถทำซ้ำได้?

การใช้คำตอบโดยเฉพาะจะเป็นวิธีที่เป็นไปได้ในการใช้คำแนะนำเหล่านั้น - เวิร์กโฟลว์ เวิร์กโฟลว์ที่ไม่เชื่อเรื่องระบบหรือใช้ Linux เป็นที่ต้องการ นอกจากนี้การพูดคุยเกี่ยวกับประสบการณ์ส่วนตัวที่เกี่ยวข้องที่คุณมีก็จะเป็นประโยชน์เช่นกัน

ในกรณีเฉพาะของฉันฉันกำลังเขียนบทความเชิงทฤษฎีพร้อมตัวอย่างการคำนวณสองอย่างที่ง่ายพอที่จะทำได้ใน MATLAB ฉันคิดว่าในกรณีนี้รวมถึงสคริปต์ MATLAB รวมถึงการสังเกตรุ่นเฉพาะของ MATLAB บนเครื่องของฉันก็น่าจะเพียงพอที่จะรับรองการทำซ้ำ อย่างไรก็ตามฉันมั่นใจว่ามีสถานการณ์ที่ซับซ้อนกว่านั้นและคำแนะนำเกี่ยวกับวิธีการทำวิจัยที่ทำซ้ำได้จะเป็นประโยชน์อย่างมากสำหรับโครงการในอนาคต

คำตอบ:


17

ในลำดับที่มีความสำคัญ

รหัสแหล่งที่มา

  1. ทำให้โค้ดที่ใช้ลักษณะสำคัญของอัลกอริทึมของคุณพร้อมใช้งาน แม้ว่าผู้ใช้จะไม่สามารถสร้างหรือรันได้ผู้ใช้สามารถอ่านสิ่งที่ทำ ฉันสังเกตเห็นการตัดสินใจง่าย ๆ หลายครั้งที่ไม่ได้บันทึกไว้ในเอกสาร แต่สองสามนาทีกับซอร์สโค้ดตอบอย่างชัดเจน
  2. ทำให้สามารถรันได้ สิ่งนี้เกี่ยวข้องกับการจัดทำเอกสารเวอร์ชันของไลบรารีที่ต้องพึ่งพาและโดยปกติคุณจะต้องเขียนโค้ดแบบพกพา ตรวจสอบให้แน่ใจว่าสร้างบนเครื่องอย่างน้อยหนึ่งเครื่องที่ไม่ใช่ของคุณเอง (เป็นเรื่องง่ายที่จะมีการพึ่งพาที่ซ่อนอยู่หากคุณไม่เคยสร้างมันในสภาพแวดล้อมที่สะอาด)
  3. ระบุรุ่นของรหัสที่ใช้ ถ้าไม่ใช่รุ่นที่วางจำหน่ายอย่างเป็นทางการ (และบางครั้งก็เป็นเช่นนั้น) ให้จัดทำเอกสาร SHA1 ของรุ่น (ซึ่งโดยทั่วไปจะใช้กับ DSCM เช่น Git และ Mercurial แต่สามารถใช้ได้ทุกที่) นี่เป็นวิธีที่เชื่อถือได้มากในการรับประกันว่ามีบางคนมีรหัสรุ่นเดียวกัน
  4. รวมการกำหนดค่าและพารามิเตอร์โฮสต์รวมถึงผู้จัดจำหน่ายคอมไพเลอร์รุ่นและการปรับให้เหมาะสมสูงสุดไลบรารีระบบเช่น libc ประเภท CPU และประเภทหน่วยความจำและทอพอโลยี (โดยเฉพาะสำหรับการศึกษาประสิทธิภาพ)

พารามิเตอร์ / ไฟล์อินพุตรันไทม์

รวมคุณสมบัติการป้อนข้อมูลที่สมบูรณ์ หากสคริปต์สร้างขึ้นให้รวมสคริปต์นั้น หากเป็นข้อมูลขนาดใหญ่ให้บันทึกวิธีการขอรับและประมวลผลข้อมูล หากอัลกอริทึมของคุณมีการสุ่มระบุตัวสร้างหมายเลขสุ่มและเมล็ดที่ใช้

สคริปต์เพื่อสร้างตัวเลขและตาราง

มันมีประโยชน์มากที่จะรวมสคริปต์เหล่านี้ทั้งเพื่อชี้แจงคำถามใด ๆ เกี่ยวกับสิ่งที่ตัวเลขแสดงจริงและเพื่อให้ผู้อ่านทดลองว่าสิ่งต่าง ๆ เปลี่ยนแปลงได้อย่างไรหากพวกเขาเปลี่ยนพารามิเตอร์หรือแก้ไขอัลกอริทึม


การทดสอบหน่วยจะมีความสำคัญขนาดไหน? ฉันควรเอกสารรหัสที่ฉันรวมถึงการทำซ้ำได้ดีเพียงใด
Geoff Oxberry

หากคุณต้องการให้มีการทำซ้ำผลลัพธ์การทดสอบหน่วยและหน้าคู่มือ / คู่มือผู้ใช้ไม่จำเป็น หากคุณกำลังพยายามดึงดูดผู้เขียนหรือผู้ใช้ซอฟต์แวร์ในอนาคตของคุณ (การอ้างอิง ... ) ให้เขียนซอฟต์แวร์เพื่อนำมาใช้ซ้ำและจัดทำเอกสารอย่างละเอียดนั้นคุ้มค่า โปรดทราบว่าไม่ว่าซอฟต์แวร์ของคุณจะมีไว้ให้ผู้อื่นใช้หรือไม่การทดสอบและเอกสารประกอบอาจช่วยให้คุณประหยัดเวลาในการใช้งานในระยะยาวเพราะช่วยให้คุณสามารถเคลื่อนที่ไปรอบ ๆ และทดสอบได้อย่างมั่นใจยิ่งขึ้น
Jed Brown

6

วารสารส่วนใหญ่ไม่ได้ถูกจัดทำขึ้นในลักษณะที่เป็นทางการ แต่เมื่อเร็ว ๆ นี้เราได้ก่อตั้ง Archive of Numerical Software ซึ่งมีวัตถุประสงค์เฉพาะเพื่อให้มีซอร์สโค้ดและทุกอย่างที่จำเป็นต้องเป็นส่วนหนึ่งของบทความ ลองดู: http://journals.tdl.org/ans ยินดีส่ง!


2
สมมติว่าคุณใช้โครงการซอฟต์แวร์สัตว์เลี้ยงของสมาชิกบางส่วนของคณะบรรณาธิการ ฉันอดไม่ได้ที่จะรู้สึกว่าข้อกำหนดนี้ลดความสมบูรณ์ของวารสาร
Jack Poulson

1
@JackPoulson: นี่เป็นประเด็นที่เราได้พูดคุยกันในหมู่บรรณาธิการและเราได้พูดคุยกับคนอื่น ๆ ในชุมชนมากยิ่งขึ้น ฉันคิดว่าเราทุกคนเห็นจุดของคุณ แต่ในเวลาเดียวกันเรารู้สึกว่าเราไม่สามารถทำได้ด้วยเหตุผลสองประการ: (i) เราไม่ทราบว่าจะหาผู้ตรวจสอบสำหรับโครงการสุ่ม X (ii) มีฉันทามติบางประการในชุมชนที่โครงการมีคุณภาพสูงและไม่เป็น; เราไม่ต้องการให้ ANS เป็นทางออกสำหรับทุกโครงการที่อยากทำ ตามที่เราระบุไว้บนหน้าเว็บเราต้องการรวมแพ็คเกจคุณภาพสูงทั้งหมดไว้ด้วยในที่สุด
Wolfgang Bangerth

2
ผู้ตรวจสอบจะต้องคุ้นเคยกับ "random project X" ด้วยเหตุผลใดแทน "random field X" ฉันนำเรื่องนี้ขึ้นมาเพราะฉันคิดว่าวารสารไม่ได้อยู่ในชั้นเรียนที่มีความสำคัญเนื่องจากมีข้อ จำกัด อย่างรุนแรงเกี่ยวกับสิ่งที่เป็นไปได้ที่จะนำไปใช้กับรายการแพ็คเกจที่กำหนด ตัวอย่างเช่นไม่มีการสนับสนุนพื้นฐานในการคำนวณแบบขนานเช่นเดียวกับสิ่งที่เกี่ยวข้องกับการโทรเข้าสู่ MPI หรือสวรรค์ห้าม BLAS หรือ LAPACK ดูเหมือนว่าจะละเมิดมาตรฐานของวารสาร ฉันยินดีที่จะพูดเกี่ยวกับเรื่องนี้ต่อไปครับ
Jack Poulson

@ JackPoulson: เท่าที่ฉันสามารถบอกได้ว่าถ้าคุณต้องการมีส่วนร่วมขั้นพื้นฐานในการคำนวณแบบขนานนอกเหนือจากการเขียนบทความในวารสารอื่นคุณสามารถเขียนบทความ "Library Introduction" ใน ANS เพื่อให้แน่ใจว่าห้องสมุดของคุณเป็น เพิ่มลงในรายการไลบรารีที่อนุมัติแล้ว
Geoff Oxberry

1
@GeOffOxberry: Wolfgang และฉันมีการสนทนาที่เป็นมิตรและข้อสรุปพื้นฐานที่พบบ่อยคือรายการของพีชคณิตเชิงเส้นห้องสมุดควรจะขยายอย่างมาก แต่เป้าหมายของวารสารเป็นห้องสมุดที่มีคุณภาพสูงแทนที่จะทำซ้ำได้ง่ายและ ดังนั้นจึงต้องมีบางขั้นตอนการเตรียม
Jack Poulson

3

ใน

Stodden, V. 2009. “ กรอบกฎหมายสำหรับการวิจัยทางวิทยาศาสตร์ที่ทำซ้ำได้” CiSE .

Victoria Stodden แนะนำให้เผยแพร่ "บทสรุปการวิจัย" แบบเต็มและแสดงรายการส่วนประกอบต่อไปนี้ในหน้า 38:

  1. บทความวิจัย
  2. ข้อมูล - รวมถึงเอกสารและรหัสสำหรับการประมวลผลข้อมูล
  3. การทดสอบ - รหัสต้นฉบับทั้งหมด เอกสารประกอบพารามิเตอร์การตั้งค่าและการขึ้นต่อกันของระบบปฏิบัติการ
  4. ผลลัพธ์ของการทดสอบ - ตัวเลขข้อมูลไฟล์ภาพประกอบประกอบ และเอกสารประกอบและคำอธิบายของการประมวลผลผลการทดลอง
  5. วัสดุเสริมใด ๆ

2

อย่างน้อยซอร์สโค้ดและข้อมูลที่คุณใช้ในการทำการทดสอบของคุณควรมีอยู่ในที่ใดที่หนึ่ง เพิ่มคำแนะนำในการสร้างรหัสของคุณหากจำเป็น จริงๆแล้วมีวารสารการเข้าถึงเปิดน้อยที่ไม่มีกฎแบบเปิดและเป็นที่ยอมรับ


2

ฉันทำงานให้เอลส์เวียร์ บริษัท ของฉันเริ่มใช้กรอบการทำงานของภาพตัดปะ (พัฒนาขึ้นเพื่อตอบสนองต่อความท้าทายของกระดาษที่ปฏิบัติการได้) ในวารสารเพื่อให้ผู้เขียนสามารถรวมข้อมูลและรหัสทั้งหมดที่จำเป็นในการทำซ้ำผลลัพธ์และตัวเลขในเอกสารของพวกเขา คุณลักษณะนี้ช่วยให้ผู้อ่านทำซ้ำผลลัพธ์ที่รายงานในบทความได้ง่ายขึ้นและนำเนื้อหาที่ตีพิมพ์กลับมาใช้ใหม่เพื่อการวิจัยของตนเอง Collage รองรับซอฟต์แวร์โอเพนซอร์ซและกรรมสิทธิ์มากมาย ข้อมูลเพิ่มเติมสามารถพบได้ในวิดีโอที่ให้ข้อมูลที่นี่และในCollage การเขียนเว็บไซต์สิ่งแวดล้อม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.