best practices for scientific computing

6
Best Practices for Scientific Computing Jan.07.2014. Wilson G, Aruliah DA, Brown CT, Chue Hong NP, Davis M - Nathan Hungate

Upload: nathan-hungate

Post on 21-Aug-2015

13 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Best Practices for Scientific Computing

Best Practices for Scientific Computing

Jan.07.2014.

Wilson G, Aruliah DA, Brown CT, Chue Hong NP, Davis M

- Nathan Hungate

Page 2: Best Practices for Scientific Computing

• Scientists are using an increasing amount of software, however most are not taught to do so efficiently.

• Many are unaware of tools and practices that allow them to write reliable and maintainable code with less effort.

• An increasing amount of daily science revolves around developing new algorithms, managing and analyzing large amounts of data, combining disparate datasets to assess synthetic problems, and routine computational tasks.

• Scientists spend 30% more of their time developing software.

• However, 90% of scientists are self-taught lacking

• Writing maintainable code, version control, issue trackers, code reviews, unit testing, task automation.

Facts About Scientific Computing:

Page 3: Best Practices for Scientific Computing

Recent high-profile retractions, technical comments, and corrections due to errors in

computational methods:• Science

• PNAS

• The Journal of Molecular Biology

• Ecology Letters

• The Journal of Mammalogy

• Journal of the American College of Cardiology

• Hypertension

• The American Economic Review

Page 4: Best Practices for Scientific Computing

• Software is often reused from previous experiments, meaning any computational errors can have disproportionate impacts on the scientific process.

• Scientists must be aware of best practices to improve their own approaches and for reviewing computational work by others.

Caution !!

Page 5: Best Practices for Scientific Computing

Write Programs for people, not computersLet the computer do the workMake incremental changesDon’t repeat yourself (or others)Plan for mistakesOptimize software only after it works correctlyDocument design and purpose, not mechanicsCollaborate

Summary of Best Practices

Page 6: Best Practices for Scientific Computing

Conclusion• These practices improve the productivity of scientific programming and the reliability of the resulting code as well as the speed with which we produce results and the resulting confidence level of our data.

• Research concludes that the time cost savings of implementing these tools and approaches is almost immediately offset by gains in productivity from programming.

• To avoid over-bearing of practices being implemented, research suggest that tools be introduced incrementally over a period of time.

• Investment in these approaches by both individuals and institutions will improve our confidence in the results of computational science and allow us to make more rapid progress on important scientific questions