How an RSE can benefit your projects: Good (enough) practice in Research Computing Dr James Grant Plant Lab Seminar 24th November 2017 Hi, I’m me
What is an RSE? Expertise in research and software engineering (Should) understand the needs of researchers and practices that can benefit research Central Supports training, research software development and … Local Primarily work on software development for a single project Isambard
Computational Chemistry focus Validating/Benchmarking VASP: Isambard – GW4 Tier 2 HPC: Computational Chemistry focus Validating/Benchmarking VASP: Phase 1 - x86/GPU/Phi Phase 1 – Arm prototype Phase 2 – arriving 2018 Your favourite codes? Isambard
Co-ordinate group training Assist development/code review Within Bath: Co-ordinate group training Assist development/code review One-to-one training Collaborate on grant applications and projects Other
Co-ordinate group training Assist development/code review Within Bath: Co-ordinate group training Assist development/code review One-to-one training Collaborate on grant applications and projects Other
Good (enough) practice in Research Computing1 What constitutes good practice in research computing? Why should we do it? (Carrot shaped sticks) ‘Okay, let’s say I believe it, how can you help?’ [1] Wilson G, et al (2017) Good enough practices in scientific computing. PLoS Comput Biol13(6): e1005510. https://doi.org/10.1371/journal.pcbi.1005510
What constitutes good practice in research computing? Data management Software Collaboration Project Organisation Track Changes Manuscripts [1] Wilson G, et al (2017) Good enough practices in scientific computing. PLoS Comput Biol13(6): e1005510. https://doi.org/10.1371/journal.pcbi.1005510
What constitutes good practice in research computing? Data management: Back-up Friendly data, readable Easy to analyse Record workflows Publish data Software: What is it? Document How to use it? Tutorials Modularise; don’t repeat yourself Use libraries; don’t reinvent the wheel Test/validate [1] Wilson G, et al (2017) Good enough practices in scientific computing. PLoS Comput Biol13(6): e1005510. https://doi.org/10.1371/journal.pcbi.1005510
Why should we do it? Availability of computer code Authors must make available upon request, to editors and reviewers, any previously unreported custom computer code used to generate results that are reported in the paper and central to its main claims. Any practical issues preventing code sharing will be evaluated by the editors who reserve the right to decline the paper if important code is unavailable. Upon publication, Nature Journals consider it best practice to release custom computer code in a way that allows readers to repeat the published results. For all studies using custom code that is deemed central to the conclusions, a statement must be included in the Methods section, under the heading "Code availability", indicating whether and how the code can be accessed, including any restrictions to access. [2] http://www.nature.com/authors/policies/availability.html
There are also some carrots Reproducibility Use scripts, for data analysis workflows Automate == efficiencies Data processing and plotting Re-use Submit with/alongside data Testable, reviewers can follow your analysis Usable/Citable by others
How can RSEs help your research? Attribution: By Jsslee - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=44779272 Original: https://en.wikipedia.org/wiki/Obstacle_racing#/media/File:RuggedManiacWallHelp.jpg
How can RSEs help your research? Share Skills and Knowledge Group/individual training Work with you on your code Identify opportunity for collaborations, from proposal onwards Attribution: By Jsslee - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=44779272 Original: https://en.wikipedia.org/wiki/Obstacle_racing#/media/File:RuggedManiacWallHelp.jpg
How can RSEs help your research? Consultancy: Review code Advise on practice Port codes/analysis to HPC Suggest training Work with you Attribution: By Jsslee - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=44779272 Original: https://en.wikipedia.org/wiki/Obstacle_racing#/media/File:RuggedManiacWallHelp.jpg
How can RSEs help your research? Collaboration: Identify opportunity for joint RA/PDRAs Develop proposals with you CI invested in the project Time split between RSE team learning and research group developing and training Attribution: By Jsslee - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=44779272 Original: https://en.wikipedia.org/wiki/Obstacle_racing#/media/File:RuggedManiacWallHelp.jpg
How can RSEs help your research? Sustainability: Usable codes for the community Must be maintainable after project Software must be understandable by domain researchers Researchers must acquire skills to maintain software Attribution: By Jsslee - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=44779272 Original: https://en.wikipedia.org/wiki/Obstacle_racing#/media/File:RuggedManiacWallHelp.jpg
Useful Links & References https://software-carpentry.org/ https://software.ac.uk/ http://rse.ac.uk Best practises for scientific computing: http://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745 Good enough practises in scientific computing: http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005510 The book: Effective Computation in Physics: Field Guide to Research with Python http://shop.oreilly.com/product/0636920033424.do (Don’t be put off the title, for physics read research) http://people.bath.ac.uk/rjg20 [1] Wilson G, et al (2017) Good enough practices in scientific computing. PLoS Comput Biol13(6): e1005510. https://doi.org/10.1371/journal.pcbi.1005510 [2] http://www.nature.com/authors/policies/availability.html