GRACE at UCL
2 Forget Fast if it’s Wrong: Better Coding for Better HPC ISD/RITS/RCPS – Mayeul d’Avezac
The Scientific Method and research software
The Scientific Method applied to code
The Scientific Method applied to code
The Scientific Method applied to code
Research Software Priorities Readability Reliability Performance
Readability Reliability Deployability Sustainability Usability Performance Research Software Priorities
Why not to test? ”My program is always correct” “Output looks plausible enough to go through peer-review” ”I like wasting time debugging”
Why do testing? Ensure programs does what it should Tests are up-to-date, runnable specifications Tested programs modular by nature Hence cost of adding new science much lower
Different kind of tests Regression testing: the program is just as wrong today as it was yesterday Functional testing: reproduce analytical results Unit testing: each logical unit of work/code (~10-50 lines) is run through experiments to check its behavior
Automated testing Infrastructure Build code on Mac, Linux, and Legion each time change is made Run testing suite Send s or notification if error
DCProgs-HJCFIT: Analysis software for Single ion-channel recording DCProgs-HJCFIT owners: Faculty of Life Sciences, Div of Bioscience Neuro, Physiology & Pharmacology David Colquhoun, Lucia Silvilotti, Remigijus Lape
Readability: from Fortran to C++ and Python Reliability: hand tested to systematically unit-tested Deployability: Windows XP only to Linux, Windows, Mac, Legion, Grace… Performance: at first on par with original Fortran code, then… DCProgs-HJCfit: Analysis software for Single ion-channel recording
On-going eCSE grant: Profiling indicates frequent memory allocations slow down calculation Programmer makes change deep in code Tests tell us behavior of program remains exactly the same Except 50% faster DCProgs-HJCfit: Analysis software for Single ion-channel recording
Putting correctness first leads to more and better science Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut efficitur ipsum vitae tortor accumsan, a pulvinar lorem lacinia. Donec eu arcu justo. Fusce eget consequat risus Proin est lacus, interdum vitae feugiat quis, faucibus vel mi. Vivamus accumsan nisi vel nulla viverra semper. Donec purus enim, sollicitudin vitae porta a, commodo sodales justo. Sed iaculis rutrum molestie. Visit www. ucl.ac.uk/research-it-services/grace to download these slides after the event. What did you think? Join the conversation on Twitter with #GraceAtUCL. Don’t forget to follow us for access to the event video and today’s polling results.