Skip to content

Commit 1e2f32e

Browse files
committed
removed references and content to knights landing and cray xc40
1 parent fbdd7b0 commit 1e2f32e

File tree

6 files changed

+17
-122
lines changed

6 files changed

+17
-122
lines changed

bin/batch/knl_ctestP.sl.in.cmake

Lines changed: 0 additions & 16 deletions
This file was deleted.

bin/batch/knl_ctestS.sl.in.cmake

Lines changed: 0 additions & 16 deletions
This file was deleted.

config/cmake/scripts/CTestScript.cmake

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -264,15 +264,6 @@ set (ENV{CI_MODEL} ${MODEL})
264264
file (APPEND ${CTEST_SCRIPT_DIRECTORY}/FailedCTest.txt "Failed Configure: ${res}\n")
265265
endif ()
266266

267-
# On Cray XC40, configuring fails in the Fortran section when using the craype-mic-knl module.
268-
# When the configure phase is done with the craype-haswell module and the build phase is done
269-
# with the craype-mic-knl module, configure succeeds and tests pass on the knl compute nodes
270-
# for Intel, Cray, GCC and Clang compilers. If the variables aren't set or if not
271-
# cross compiling, the module switch will not occur.
272-
if (CMAKE_CROSSCOMPILING AND COMPILENODE_HWCOMPILE_MODULE AND COMPUTENODE_HWCOMPILE_MODULE)
273-
execute_process (COMMAND module switch ${COMPILENODE_HWCOMPILE_MODULE} ${COMPUTENODE_HWCOMPILE_MODULE})
274-
endif ()
275-
276267
ctest_build (BUILD "${CTEST_BINARY_DIRECTORY}" APPEND RETURN_VALUE res NUMBER_ERRORS errval)
277268
if (LOCAL_SUBMIT)
278269
ctest_submit (PARTS Build)

config/cmake/scripts/HPC/qsub-HDF5options.cmake

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,6 @@ endif()
2121
### options to run test scripts in batch commands
2222
set (LOCAL_BATCH_SCRIPT_NAME "ctest.qsub")
2323
set (LOCAL_BATCH_SCRIPT_PARALLEL_NAME "ctest.qsub")
24-
if (DEFINED KNL)
25-
### some additions and alternatives to cross compile on haswell for knl
26-
set (COMPUTENODE_HWCOMPILE_MODULE "craype-mic-knl")
27-
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_TOOLCHAIN_FILE:STRING=config/toolchain/crayle.cmake")
28-
endif ()
2924
set (LOCAL_BATCH_SCRIPT_COMMAND "qsub")
3025
set (LOCAL_BATCH_TEST "TRUE")
3126
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DLOCAL_BATCH_TEST:BOOL=ON")

config/cmake/scripts/HPC/sbatch-HDF5options.cmake

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,8 @@ if (DEFINED MPI)
1919
endif()
2020
#############################################################################################
2121
### options to run test scripts in batch commands
22-
if (DEFINED KNL)
23-
### some additions and alternatives to cross compile on haswell for knl
24-
set (COMPILENODE_HWCOMPILE_MODULE "craype-haswell")
25-
set (COMPUTENODE_HWCOMPILE_MODULE "craype-mic-knl")
26-
set (LOCAL_BATCH_SCRIPT_NAME "knl_ctestS.sl")
27-
set (LOCAL_BATCH_SCRIPT_PARALLEL_NAME "knl_ctestP.sl")
28-
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DCMAKE_TOOLCHAIN_FILE:STRING=config/toolchain/crayle.cmake")
29-
else ()
30-
set (LOCAL_BATCH_SCRIPT_NAME "ctestS.sl")
31-
set (LOCAL_BATCH_SCRIPT_PARALLEL_NAME "ctestP.sl")
32-
endif ()
22+
set (LOCAL_BATCH_SCRIPT_NAME "ctestS.sl")
23+
set (LOCAL_BATCH_SCRIPT_PARALLEL_NAME "ctestP.sl")
3324
set (LOCAL_BATCH_SCRIPT_COMMAND "sbatch")
3425
set (LOCAL_BATCH_TEST "TRUE")
3526
set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DLOCAL_BATCH_TEST:BOOL=ON")

release_docs/README_HPC.md

Lines changed: 15 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,7 @@ When building on HPC systems:
4444
- CMake version 3.26 or greater
4545
- MPI implementation module
4646

47-
3. **Unload problematic modules** (e.g., `craype-hugepages2M` on Cray systems)
48-
49-
4. **For Cray systems,** set compiler environment variables AFTER loading modules:
47+
3. **For Cray and other systems with recommend compiler wrappers,** set compiler environment variables AFTER loading modules:
5048

5149
```bash
5250
export CC=cc
@@ -202,7 +200,6 @@ Add after `HDF5config.cmake,` separated by commas:
202200
| `HPC=bsub` | Use LSF batch system |
203201
| `HPC=raybsub` | Use Ray LSF variant |
204202
| `MPI=true` | Enable parallel (disables C++, Java, threadsafe) |
205-
| `KNL=true` | Cross-compile for KNL compute nodes (Cray XC40) |
206203
| `LOCAL_BATCH_SCRIPT_ARGS="--account=<acct>"` | Supply batch job account information |
207204

208205
#### Examples
@@ -214,13 +211,6 @@ ctest -S HDF5config.cmake,HPC=sbatch,MPI=true \
214211
-C Release -V -O hdf5.log
215212
```
216213

217-
**Knight's Landing nodes on Cray XC40:**
218-
219-
```bash
220-
ctest -S HDF5config.cmake,HPC=sbatch,MPI=true,KNL=true \
221-
-C Release -V -O hdf5.log
222-
```
223-
224214
Use `-VV` instead of `-V` for more detailed logging.
225215

226216
---
@@ -287,66 +277,26 @@ cmake --install . --prefix /install/path
287277

288278
### 6.1. Overview
289279

290-
Cross-compiling is necessary when the login node architecture differs from
291-
compute node architecture (e.g., compiling on Haswell nodes for KNL nodes).
292-
293-
### 6.2. Cross-Compiling for KNL on Cray XC40
294-
295-
To cross-compile for Knight's Landing nodes, add `KNL=true` to ctest command:
296-
297-
```bash
298-
ctest -S HDF5config.cmake,HPC=sbatch,MPI=true,KNL=true \
299-
-C Release -V -O hdf5.log
300-
```
301-
302-
This sets the following from `config/cmake/scripts/HPC/sbatch-HDF5options.cmake`:
303-
304-
| Variable | Value |
305-
|----------|-------|
306-
| `COMPILENODE_HWCOMPILE_MODULE` | `craype-haswell` |
307-
| `COMPUTENODE_HWCOMPILE_MODULE` | `craype-mic-knl` |
308-
| `LOCAL_BATCH_SCRIPT_NAME` | `knl_ctestS.sl` |
309-
| `LOCAL_BATCH_SCRIPT_PARALLEL_NAME` | `knl_ctestP.sl` |
310-
| `CMAKE_TOOLCHAIN_FILE` | `config/toolchain/crayle.cmake` |
280+
Cross-compiling is the process of building software on one system architecture (like a login node) to be run on a different architecture (like a compute node). This section provides a historical overview of how this was done on systems that are no longer in service.
311281

312-
CMake loads `craype-haswell` for configuration, then swaps to `craype-mic-knl`
313-
before compilation.
282+
### 6.2. Historical Example: Knights Landing (KNL) on Cray XC40
314283

315-
### 6.3. Manual Cross-Compile
284+
A common historical use case was compiling for Intel Knights Landing (KNL) nodes on Cray XC40 systems, such as the retired Mutrino and Cori machines. These supercomputers had login nodes with a standard CPU architecture (e.g., Haswell) but used the different KNL architecture for their compute nodes.
316285

317-
For manual cross-compiling on Cray XC40:
286+
To build software for KNL, a "module swapping" technique was required. The build process involved:
287+
1. Loading the compiler module for the login node architecture (e.g., `craype-haswell`) to configure the project.
318288

319-
1. Load `craype-haswell` module
320-
321-
2. Run cmake configure command (see section 5.2), adding:
322-
```bash
323-
-DCMAKE_TOOLCHAIN_FILE:STRING=config/toolchain/crayle.cmake \
324-
-DLOCAL_BATCH_SCRIPT_NAME:STRING=knl_ctestS.sl \
325-
-DLOCAL_BATCH_SCRIPT_PARALLEL_NAME:STRING=knl_ctestP.sl
326-
```
289+
2. Switching to the compiler module for the compute node architecture (e.g., `craype-mic-knl`) before starting the actual compilation.
327290

328-
3. Switch to `craype-mic-knl` module:
329-
```bash
330-
module swap craype-haswell craype-mic-knl
331-
```
332-
333-
4. Build:
334-
```bash
335-
cmake --build . --config Release
336-
```
291+
This process was managed by special CMake toolchain files and custom batch scripts, which were often automated within the `ctest` framework.
337292

338-
### 6.4. Machine-Specific Batch Scripts
293+
### 6.3. Cross-Compilation on Current Systems
339294

340-
Batch script arguments for KNL may differ between systems:
295+
The specific hardware (Cray XC40, KNL) and the build procedures described above are historical and no longer in use.
341296

342-
| System | SBATCH Arguments |
343-
|--------|------------------|
344-
| Mutrino | `#SBATCH -p knl -C quad,cache` |
345-
| Cori | `#SBATCH -C knl,quad,cache` |
297+
While cross-compilation is less common on many modern, homogeneous HPC clusters, it is still a necessary technique for advanced architectures, such as systems with different processor types or accelerators (e.g., GPUs).
346298

347-
Edit batch scripts in `hdf5-<version>/bin/batch/` or modify
348-
`LOCAL_BATCH_SCRIPT_NAME` and `LOCAL_BATCH_SCRIPT_PARALLEL_NAME` in
349-
`config/cmake/scripts/HPC/sbatch-HDF5options.cmake` accordingly.
299+
**If you need assistance with cross-compiling for a current HPC system, please contact the facility administrators or The HDF Group (Section 1.3).**
350300

351301
---
352302

@@ -405,8 +355,8 @@ Default is 1200 seconds (20 minutes). Modify in CMake with:
405355
**For SLURM systems:**
406356

407357
```bash
408-
sbatch -p knl -C quad,cache build/bin/batch/ctestS.sl # Serial tests
409-
sbatch -p knl -C quad,cache build/bin/batch/ctestP.sl # Parallel tests
358+
sbatch -C quad,cache build/bin/batch/ctestS.sl # Serial tests
359+
sbatch -C quad,cache build/bin/batch/ctestP.sl # Parallel tests
410360
```
411361

412362
**For LSF systems:**
@@ -447,7 +397,7 @@ This is available on Linux kernels 2.4 and greater.
447397
### 8.2. Cray Systems
448398

449399
- Use `CC=cc`, `FC=ftn`, `CXX=CC` after loading compiler modules
450-
- Unload `craype-hugepages2M` if loaded
400+
- Unload `craype-hugepages2M` if loaded (**Note**: This is situational advice and is not a universal rule, but it may be a valid troubleshooting step if you encounter memory-related performance issues or allocation errors.)
451401
- Disable shared libraries if encountering linking issues:
452402
```bash
453403
-DBUILD_SHARED_LIBS=OFF

0 commit comments

Comments
 (0)