High Performance Python, software development for researchers

How do you start developing a research code? Which language(s) should you use? How should you organise your code? How can I share code with other researchers? What exactly means High Performance? How do I make progress quickly? With so many things to learn, it is easy to get lost and loose valuable time for research when learning things the hard way.

This HPC Tips and Tricks session provides both a strategy to develop software for research as well as a tool that allows to organise the development work flow in a sensible and efficient way.

Topics covered

  • Why Python should be your number 1 option
  • How to replace slow Python code with fast C++ or Fortran code
  • Testing and test-driven development
  • Timing your code
  • Sharing your code with other researchers (publishing to PyPI)
  • Version control (git) 
  • Documentation generation (sphinx) and putting it on readthedocs.org)

Micc (https://micc.readthedocs.io/en/master/https://pypi.org/project/et-micc/) is a tool that focuses on a strategy for making progress fast, and supports these topics with minor efforts from the developer, as to concentrate on the research task as much as possible.