Software Exercise 1.5 - Choose Software Options¶
Objective: Decide how you want to make your software portable
Why learn this?: This is the next step to getting your own research jobs running on the OSPool!
Know Your Software¶
Pick at least one software you want to use on the OSPool as a test subject. Then:
Find the download and/or installation page and read through the instructions and options there.
Is the software available as a binary download, or will you need to run some kind of command to install it or compile it from source? If there are multiple download/installation options, which is which?
What pre-requisites does this software need to be installed?
Example 1: an R package will require a base R installation
Example 2: some codes require that a library called the "Gnu Scientific Library (GSL) be already installed on your computer"
Choose a Strategy¶
Are there any existing containers that contain this software already?
Is there a simple download or easy compilation process? If so, can you download the software and use it via a wrapper script? See the exercises from Part 4 (Download Software Files, Use a Wrapper Script, Wrapper Script Arguments). To learn more about using this approach for specific softwares, see the examples in Part 5.
Are you using conda? See the specific example in Exercise 5.3
If neither of the above options works (which may be true for more software!), you may want to build your own container.
- If you want to just use this container on the OSPool, build an Apptainer container as described in Exercise 1.4 and with more information in Exercise 3.1
- If you want to use the container on your own computer or share with others who would use it on a laptop or desktop, look at the Docker container example in Exercise 3.2.
Don't do ALL of the software exercises in parts 3 - 5! Instead, choose the section(s) that makes sense based on how you want to manage your software. Talk to the School instructors to help make this decision if you are unsure.
Create an Executable¶
Regardless of which approach you use, check out the Build an HTC-Friendly Executable exercise for some tips on how to make your script more robust and easy to use with multiple jobs.