Skip to content

Commit 369bc3c

Browse files
committed
[Build] Install the NVIDIA driver and CUDA toolkit from the distribution package manager using NVIDIA local repo packages instead of the run file installers.
1 parent bcf62b4 commit 369bc3c

50 files changed

Lines changed: 2461 additions & 684 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"specId": "01a0b120-5e6f-44b0-9897-0a810b545649", "workflowType": "requirements-first", "specType": "feature"}

.kiro/specs/diagnostics-tool/design.md

Lines changed: 470 additions & 0 deletions
Large diffs are not rendered by default.

.kiro/specs/diagnostics-tool/requirements.md

Lines changed: 227 additions & 0 deletions
Large diffs are not rendered by default.

.kiro/specs/diagnostics-tool/tasks.md

Lines changed: 278 additions & 0 deletions
Large diffs are not rendered by default.

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ This file is used to list changes made in each version of the AWS ParallelCluste
1515

1616
**CHANGES**
1717
- Enforce NFSv4-only on the ParallelCluster-managed NFS server (head node). The NFSv3 client stack (rpcbind, rpc-statd, lockd) are unchanged, so cluster nodes can still mount external NFSv3 servers.
18+
- Install the NVIDIA driver and CUDA toolkit from the distribution package manager using NVIDIA local repo packages instead of the run file installers.
1819
- In GPU Health Check, skip DCGM diagnostics when NVIDIA MIG is enabled because dcgmi diag does not support MIG.
1920
- Upgrade Slurm to version 25.11.6 (from 25.11.4).
2021
- Upgrade EFA installer to 1.49.0 (from 1.47.0).
@@ -37,7 +38,7 @@ via custom Slurm settings or the cluster name contains upper-case letters.
3738
- Fix compute node bootstrap hanging without a clear error when the compute subnet cannot reach DynamoDB.
3839
- Fix login nodes not mounting `/opt/parallelcluster/shared` when EFS is used as the internal shared storage type.
3940
- Fix SELinux not actually being disabled on RHEL-family OSes (kernels >= 6.4) due to a [deprecated mechanism](https://github.com/SELinuxProject/selinux-kernel/wiki/DEPRECATE-runtime-disable) being silently ignored by newer kernels.
40-
- Fix `build-image` failure by skipping installation of `gdrcopy` and `dcgm` if parent image has an existing installed version.
41+
- Fix `build-image` failure by skipping installation of `fabric-manager`, `gdrcopy` and `dcgm` if parent image has an existing installed version.
4142

4243
**DEPRECATIONS**
4344
- Amazon Linux 2 is no longer supported.

cookbooks/aws-parallelcluster-platform/attributes/platform.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828
default['cluster']['nvidia']['driver_version'] = '580.105.08'
2929
default['cluster']['nvidia']['dcgm_version'] = '4.5.1-1'
3030

31+
# Extra packages installed from the NVIDIA local repo alongside the driver
32+
# meta-package, as a comma-separated list.
33+
# * nvidia-xconfig: required by DCV to generate the X configuration
34+
default['cluster']['nvidia']['driver_extra_packages'] = 'nvidia-xconfig'
35+
3136
default['cluster']['nvidia']['driver_base_url'] = "#{node['cluster']['artifacts_s3_url']}/dependencies/nvidia_driver"
3237
default['cluster']['nvidia']['dcgm_base_url'] = "#{node['cluster']['artifacts_s3_url']}/dependencies/nvidia_dcgm"
3338
default['cluster']['nvidia']['fabricmanager']['base_url'] = "#{node['cluster']['artifacts_s3_url']}/dependencies/nvidia_fabric"
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
Metadata-Version: 2.4
2+
Name: pcluster-diag
3+
Version: 1.0.0
4+
Summary: Diagnostics tool for AWS ParallelCluster nodes.
5+
Author: Amazon Web Services
6+
License: Apache-2.0
7+
Requires-Python: >=3.10
8+
Description-Content-Type: text/markdown
9+
Requires-Dist: click~=8.0
10+
Requires-Dist: pyyaml~=6.0
11+
Provides-Extra: dev
12+
Requires-Dist: pytest~=7.0; extra == "dev"
13+
Requires-Dist: pytest-cov~=5.0; extra == "dev"
14+
Requires-Dist: tox~=4.0; extra == "dev"
15+
16+
# pcluster-diag
17+
18+
Diagnostics tool for AWS ParallelCluster nodes.
19+
20+
It runs a context-aware set of checks against a running cluster and produces a structured
21+
report as JSON plus console output.
22+
23+
The tool is invoked via the `pcluster-diag` command and runs as root from whatever cluster node.
24+
25+
## Updating the tool
26+
27+
You can update it without waiting for a ParallelCluster release by running the commands below as root.
28+
29+
```bash
30+
# Resolve the virtualenv pcluster-diag is installed in (from the PATH symlink)
31+
VENV_PATH="$(dirname "$(dirname "$(readlink -f /usr/local/bin/pcluster-diag)")")"
32+
33+
# From the cookbook repo subfolder on GitHub, taking the source from the develop branch
34+
# (replace @develop with another branch or tag to pin a different version)
35+
"${VENV_PATH}/bin/pip" install --upgrade \
36+
"git+https://github.com/aws/aws-parallelcluster-cookbook.git@develop#subdirectory=cookbooks/aws-parallelcluster-platform/files/pcluster-diag"
37+
```
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
README.md
2+
pyproject.toml
3+
pcluster_diag/__init__.py
4+
pcluster_diag/cli.py
5+
pcluster_diag.egg-info/PKG-INFO
6+
pcluster_diag.egg-info/SOURCES.txt
7+
pcluster_diag.egg-info/dependency_links.txt
8+
pcluster_diag.egg-info/entry_points.txt
9+
pcluster_diag.egg-info/requires.txt
10+
pcluster_diag.egg-info/top_level.txt
11+
pcluster_diag/checks/__init__.py
12+
pcluster_diag/checks/cfn_hup.py
13+
pcluster_diag/checks/sample.py
14+
pcluster_diag/commands/__init__.py
15+
pcluster_diag/commands/run.py
16+
pcluster_diag/core/__init__.py
17+
pcluster_diag/core/constants.py
18+
pcluster_diag/core/context_builder.py
19+
pcluster_diag/core/exception_handler.py
20+
pcluster_diag/core/registry.py
21+
pcluster_diag/core/runner.py
22+
pcluster_diag/models/__init__.py
23+
pcluster_diag/models/check.py
24+
pcluster_diag/models/context.py
25+
pcluster_diag/models/exceptions.py
26+
pcluster_diag/models/report.py
27+
pcluster_diag/models/result.py
28+
pcluster_diag/util/__init__.py
29+
pcluster_diag/util/io_utils.py
30+
pcluster_diag/util/logging_utils.py
31+
pcluster_diag/util/serialization.py
32+
pcluster_diag/util/services.py
33+
pcluster_diag/util/shell.py
34+
tests/test_cli.py
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[console_scripts]
2+
pcluster-diag = pcluster_diag.cli:main

0 commit comments

Comments
 (0)