Skip to content

Commit 96315a3

Browse files
authored
Merge pull request #4 from ARCTraining/modules-section
draft modules section, need to edit exercises
2 parents 430df32 + 646a0ba commit 96315a3

2 files changed

Lines changed: 132 additions & 9 deletions

File tree

book/modules-software.md

Lines changed: 130 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,133 @@
11
# Session 4: Modules and Software
22

3-
## What are modules and how to use them?
3+
In this session we will learn about software on Aire, and how to access software via the module system. We will also discuss some alternatives to install software yourself on the system.
44

5-
## other ways to get/run software
6-
### spack/easybuild
7-
### download
8-
### self build
9-
### container
5+
`````{tab-set}
6+
````{tab-item} Introduction to Modules
7+
- **What are Modules?**
8+
- Modules are a way to manage different software environments on HPC systems.
9+
- They allow users to load and unload software packages dynamically.
10+
- This helps in managing different versions of software and their dependencies.
11+
12+
- **Why Use Modules?**
13+
- Simplifies the user environment.
14+
- Avoids conflicts between software versions.
15+
- Provides a consistent and reproducible environment.
16+
17+
:::: exercise
18+
**Exercise 1:** List all available modules on Aire.
19+
::::
20+
21+
:::: solution
22+
```bash
23+
module avail
24+
```
25+
::::
26+
````
27+
28+
````{tab-item} Using Modules
29+
- **Loading a Module:**
30+
- To use a software package, load its module.
31+
- Example:
32+
```bash
33+
module load python/3.8
34+
```
35+
36+
- **Unloading a Module:**
37+
- To remove a software package from your environment.
38+
```bash
39+
module unload python/3.8
40+
```
41+
42+
- **Listing Loaded Modules:**
43+
- To see which modules are currently loaded.
44+
```bash
45+
module list
46+
```
47+
48+
:::: exercise
49+
**Exercise 2:** Load the `gcc` module and verify it's loaded.
50+
::::
51+
52+
:::: solution
53+
```bash
54+
module load gcc
55+
module list
56+
```
57+
::::
58+
````
59+
60+
````{tab-item} Requesting New Modules
61+
- **Centralized Management:**
62+
- Popular software is centrally installed by the Research Computing team.
63+
- Ensures optimized performance and avoids conflicts.
64+
65+
- **Requesting New Software:**
66+
- If a required software is not available, users can request its installation.
67+
- Submit a Research Computing Query with details about the software.
68+
69+
:::: exercise
70+
**Exercise 3:** Identify a software you need that's not available and draft a request.
71+
::::
72+
73+
:::: solution
74+
Provide the software name, version, and a brief justification for its use in your research.
75+
::::
76+
````
77+
78+
````{tab-item} Alternative Software Management
79+
- [**Spack:**](https://spack.io/)
80+
- A flexible package manager for HPC systems.
81+
- Allows users to install software without admin privileges.
82+
- Supports complex dependency management.
83+
84+
- [**EasyBuild:**](https://easybuild.io/)
85+
- Framework for building and installing software on HPC systems.
86+
- Automates the build process using configuration files.
87+
88+
- **Downloading and Self-Building:**
89+
- Users can manually download and compile software.
90+
- Requires knowledge of build systems and dependencies.
91+
92+
- **Containers:**
93+
- Encapsulate software environments using tools like [Apptainer](https://apptainer.org/).
94+
- Ensures portability and consistency across systems.
95+
96+
:::: exercise
97+
**Exercise 4:** Choose a simple software package and outline steps to install it using Spack.
98+
::::
99+
100+
:::: solution
101+
1. Load Spack module: `module load spack`
102+
2. Install software: `spack install htop`
103+
3. Load the installed package: `spack load htop`
104+
::::
105+
````
106+
107+
````{tab-item} Best Practices
108+
- **Environment Management:**
109+
- Use modules to manage software environments effectively.
110+
- Unload modules when they are no longer needed to avoid conflicts.
111+
112+
- **Reproducibility:**
113+
- Document the modules and versions used in your research.
114+
- Use containers for complex environments to ensure consistency.
115+
116+
- **Collaboration:**
117+
- Share module load commands with collaborators to replicate environments.
118+
- Use version-controlled scripts to manage workflows.
119+
120+
:::: exercise
121+
**Exercise 5:** Create a script that loads necessary modules for your project.
122+
::::
123+
124+
:::: solution
125+
```bash
126+
#!/bin/bash
127+
module load gcc
128+
module load python/3.8
129+
# Add other module load commands as needed
130+
```
131+
::::
132+
````
133+
`````

book/storage.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
# Session 3: Storage on Aire
22

3-
::: note
4-
**Objectives:** Understand the main file areas on Aire (home, scratch, etc.), learn the purpose and differences of each storage type, practice navigating between storage areas and checking disk quotas, and learn commands for copying and transferring data to/from Aire.
5-
:::
3+
In this session, we will work to understand the main file areas on Aire (home, scratch, etc.), learn the purpose and differences of each storage type, practice navigating between storage areas and checking disk quotas, and learn commands for copying and transferring data to/from Aire.
4+
65

76
`````{tab-set}
87
````{tab-item} 1. Structure

0 commit comments

Comments
 (0)