Skip to content

Commit

Permalink
Moved personal non-spacksites use and other site setup to wiki
Browse files Browse the repository at this point in the history
  • Loading branch information
heatherkellyucl authored May 29, 2024
1 parent 7ce3148 commit e79971a
Showing 1 changed file with 0 additions and 96 deletions.
96 changes: 0 additions & 96 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,99 +183,3 @@ You can set a different build_stage in your site's `config.yaml` file (suggested
Spack's default config.yaml for your site is in `$site_root/$site_name/etc/spack/defaults/config.yaml`. Each site has its own.

Note: spacksites deliberately ignores any other local Spack config files to avoid clashes with other Spack setups you may have: [Personal spack config - ignored](spacksites/README.md#personal-spack-config---ignored)


## Get started with a personal install

This is for non-spacksites-managed personal Spack use.

```
git clone -c feature.manyFiles=true https://github.com/spack/spack.git
```

A script to load the SCLs which will make Python 3.8 and GCC 11.2 available to you on the nodes:
Referring to this from now on as `load_scls.sh`.

```
#!/bin/bash
# Source this.
UCL_SCLS="rh-python38 devtoolset-11"
for a in ${UCL_SCLS}
do
source /opt/rh/${a}/enable
done
export X_SCLS="${UCL_SCLS} ${X_SCLS}"
```

You can then `source load_scls.sh` and will see the following are now available:

```
[cceahke@login13 spack]$ which g++
/opt/rh/devtoolset-11/root/usr/bin/g++
[cceahke@login13 spack]$ which python
/opt/rh/rh-python38/root/usr/bin/python
```

Spack setup: do we want to do this? It sets `$SPACK_ROOT` among other things.

```
source spack/share/spack/setup-env.sh
```

Spack's default config.yaml is `$SPACK_ROOT/etc/spack/defaults/config.yaml`. Things I changed straight away:

```
build_stage:
- $user_cache_path/stage
build_jobs: 4
```

`build_stage` is where all the temporary building happens and must not be in `/tmp`.

You can then start to use Spack.

```
spack list gromacs
spack info --all gromacs
```

See which compilers spack finds: if you sourced setup-env.sh before sourcing load_scls.sh then it will not look in our new `/opt/rh/devtoolset-11`.

```
spack compilers
==> Available compilers
-- gcc rhel7-x86_64 ---------------------------------------------
[email protected] [email protected]
```

So tell it to look for the new one.

```
spack compiler add /opt/rh/devtoolset-11/root/usr/bin/
==> Added 1 new compiler to /home/cceahke/.spack/linux/compilers.yaml
[email protected]
==> Compilers are defined in the following files:
/home/cceahke/.spack/linux/compilers.yaml
```

## Other setups

Spack has a repo at https://github.com/spack/spack-configs

- LLNL, 2021, TREX Hackathon, Intro to Spack: https://www.trex-coe.eu/sites/default/files/TREX%20Build-systems%20Hackathon%20-%20Nov%202021/TREX%20-%20Spack%20presentation.pdf
- LLNL, 2022, Software Deployment Process at NERSC: Deploying the Extreme-scale Scientific Software Stack (E4S) Using Spack at the National Energy Research Scientific Computing Center (NERSC): https://escholarship.org/uc/item/5zh5z08q
- EPCC, 2020, Software Packages in HPC with Spack and EasyBuild (brief overview): https://www.archer2.ac.uk/training/courses/200617-spack-easybuild/

### User-level

- ORNL, installing own user packages with a base central environment and chained Spack instances https://docs.olcf.ornl.gov/software/spack_env/summit_spack_env.html

### Additional

- E4S as mentioned above uses Spack and provides a build cache and containers. Attempts to put together an interoperable set of packages. "The Extreme-Scale Scientific Software Stack (E4S) is a community effort supported by the Exascale Computing Project (ECP) to provide an ecosystem of open source software packages for developing, deploying and running scientific applications on HPC platforms."
- https://e4s-project.github.io/
- This may be of use if we have more AMD and need to build with AOCC/AOCL.
- AMD, Spack support of HPC applications https://developer.amd.com/spack/

0 comments on commit e79971a

Please sign in to comment.