Skip to content

Commit

Permalink
Merge pull request #470 from argonne-lcf/lcc-xp1
Browse files Browse the repository at this point in the history
Add XALT docs for Polaris
  • Loading branch information
felker authored Sep 9, 2024
2 parents aeccdab + a5fa742 commit 315315f
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 0 deletions.
23 changes: 23 additions & 0 deletions docs/polaris/applications-and-libraries/libraries/xalt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# XALT

## What is XALT?

XALT is a user build and execution tracking framework; it is installed at ALCF on Polaris to track library usage.

When XALT is enabled during builds:
- An XALT watermark is added to the ELF binary of the executable(s)
- An XALT link record containing information about the build is created

When XALT is enabled during application executions:
- An XALT start run record containing information about the execution is created; some link data is also included if the executable was built with XALT
- If the execution exits normally, an XALT end run record containing information about the end of the process is created; if the process exits abnormally no end run record is created
- For MPI jobs, XALT run records are produced only for rank 0

## XALT implementation details

- XALT uses an `ld` wrapper script to add the watermark to executables
- XALT interposes a `LD_PRELOAD` library into the execution of the user's application. XALT runs as the user, with the user's primary and supplementary groups

## How to disable XALT
- Execute the command `module unload xalt`
- If you disable xalt please send email to [support@alcf.anl.gov](mailto:support@alcf.anl.gov) detailing the reason you are disabling it
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ Dynamic linking of libraries is currently the default on Polaris. The Cray MPI w

* `craype-accel-nvidia80`: This module adds compiler flags to enable GPU acceleration for `NVHPC` compilers along with gpu-enabled MPI libraries as it is assumed that the majority of applications to be compiled on Polaris will target the GPUs for acceleration. Users building cpu-only applications may find it useful to unload this module to silence "gpu code generation" warnings.

* `xalt`: This module enables library tracking; it helps ALCF identify software important to our users. More information can be found on the [XALT](../applications-and-libraries/libraries/xalt.md) page.

## Mixed C/C++ & Fortran Applications

For applications consisting of a mix of C/C++ and Fortran that also uses MPI, it is suggested that the programming environment chosen for Fortran be used to build the full application because of mpi.mod (and similar) incompatibilities.
Expand Down
5 changes: 5 additions & 0 deletions docs/polaris/system-updates.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Polaris System Updates

## 2024-09-09

### XALT
The XALT library tracking software has been enabled for all Polaris users. More information can be found on the [XALT](./applications-and-libraries/libraries/xalt.md) page.

## 2024-04-22

The management software on Polaris has been upgraded to HPCM 1.10
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ nav:
- Math Libraries: polaris/applications-and-libraries/libraries/math-libraries.md
- Cabana: polaris/applications-and-libraries/libraries/cabana-polaris.md
- Spack PE: polaris/applications-and-libraries/libraries/spack-pe.md
- XALT: polaris/applications-and-libraries/libraries/xalt.md
- Data Science:
- Julia: polaris/data-science-workflows/julia.md
- Python: polaris/data-science-workflows/python.md
Expand Down

0 comments on commit 315315f

Please sign in to comment.