This lesson is being piloted (Beta version)

Why Manage My Own Software?

Overview

Teaching: 15 min
Exercises: 5 min
Questions
  • When would I want to manage my own software packages on an HPC cluster?

  • What can I expect to learn from this course?

Objectives
  • Be able to describe why self-managed software can be important.

  • Identify how self-managed software would be useful to you.

Before we start, a few definitions for terms that will come up:

The vast majority of modern research relies on software in some form or another to generate, analyze, and visualize data. As researchers a an HPC center we recognize that large datasets and intensive calculations can cause a computational workflow to outgrow running on your personal computer. Similarly, complex and numerous software environments involved in a project can cause it to outgrow the installation and management approaches you would use on your personal computer:

In each of these cases, the lack of a robust software management workflow could lead to wasted time and potential dead-ends in research progress.

And what do you do?

Talk to your neighbour, office mate or rubber duck about your research. How do you currently manage the software used in your research? How could better software management practices help you or your group?

Principles of a robust software environment

Academic research patterns present specific challenges for maintaining software environments. Members of a lab are constantly in flux as students and post-docs arrive and depart, and research projects may continue through several staff turnovers. Cutting edge research demands installing cutting edge software, and reproducibility demands that the exact software environment used to work on a paper remain available indefinitely. How do you quickly create environments so that a researcher of any level of expertise can use them, and that can be easily re-created years down the line long after anyone involved in their setup has left?

Key Points

  • Software managed by other parties can be subject to change and difficult to reproduce in the future.

  • Research workflows require increasingly sophisticated software workflows to support them.

  • A small time investment up front in developing a robust software workflow can be invaluable in a research environment.