Skip to content

Commit f206510

Browse files
committed
R2026a release!
1 parent 3e935c8 commit f206510

29 files changed

Lines changed: 2750 additions & 139 deletions

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ To view instructions for deploying the MATLAB Parallel Server reference architec
3838

3939
| Linux | Windows | Status |
4040
| ----- | ------- | ------- |
41+
| [R2026a](releases/R2026a/README.md) | [R2026a](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win/tree/master/releases/R2026a/README.md) | ✅ Prebuilt available. |
4142
| [R2025b](releases/R2025b/README.md) | [R2025b](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win/tree/master/releases/R2025b/README.md) | ✅ Prebuilt available. |
4243
| [R2025a](releases/R2025a/README.md) | [R2025a](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win/tree/master/releases/R2025a/README.md) | ✅ Prebuilt available. |
43-
| [R2024b](releases/R2024b/README.md) | [R2024b](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win/tree/master/releases/R2024b/README.md) | Prebuilt available. |
44+
| [R2024b](releases/R2024b/README.md) | [R2024b](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win/tree/master/releases/R2024b/README.md) | ⚠️ Prebuilt will be removed in March 2027. |
4445
| [R2024a](releases/R2024a/README.md) | [R2024a](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win/tree/master/releases/R2024a/README.md) | ⚠️ Prebuilt will be removed in September 2026. |
45-
| [R2023b](releases/R2023b/README.md) | [R2023b](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win/tree/master/releases/R2023b/README.md) | ⚠️ Prebuilt will be removed in March 2026. |
4646
| [Earlier/Custom](./packer/v1) | [Earlier/Custom](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win/tree/master/packer/v1) | For earlier MATLAB releases, you must build your own machine image. |
4747

4848
The above instructions allow you to launch instances based on the latest prebuilt MathWorks® Amazon Machine Images (AMIs).

packer/v1/README.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ For more information about templates, see [Packer Templates](https://www.packer.
1212

1313
## **Requirements**
1414
Before starting, you will need:
15-
* A valid Packer installation later than 1.7.0. For more information, see [Install Packer](https://www.packer.io/downloads).
15+
* A valid Packer installation of version 1.15.0 or later. For more information, see [Install Packer](https://www.packer.io/downloads).
1616
* AWS credentials with sufficient permission. For more information, see [Packer Authentication](https://www.packer.io/plugins/builders/amazon#authentication).
1717

1818
## **Costs**
@@ -49,10 +49,10 @@ This section describes the complete Packer build process and the different optio
4949
The [Packer template](https://github.mathworks.com/development/parallel-server-aws-refarch/tree/dev/packer/v1/build-parallel-server-ami.pkr.hcl) supports these build-time variables.
5050
| Argument Name | Default Value | Description |
5151
|---|---|---|
52-
| [PRODUCTS](#customize-products-to-install)| MATLAB, MATLAB Parallel Server, MATLAB Production Server™, and all available toolboxes | Products to install, specified as a list of product names separated by spaces. For example, `MATLAB Simulink MATLAB_Parallel_Server MATLAB_Production_Server`.<br>MATLAB parallel server must be installed with MATLAB in order to deploy a parallel server cluster to the cloud. If no products are specified, the Packer build will install MATLAB with all available toolboxes. For more information, see [MATLAB Package Manager](https://github.com/mathworks-ref-arch/matlab-dockerfile/blob/main/MPM.md).|
52+
| [PRODUCTS](#customize-products-to-install)| MATLAB, MATLAB Parallel Server, and all available toolboxes | Products to install, specified as a list of product names separated by spaces. For example, `MATLAB Simulink MATLAB_Parallel_Server`.<br>MATLAB parallel server must be installed with MATLAB in order to deploy a parallel server cluster to the cloud. If no products are specified, the Packer build will install MATLAB with all available toolboxes. For more information, see [MATLAB Package Manager](https://github.com/mathworks-ref-arch/matlab-dockerfile/blob/main/MPM.md).|
5353
| [POLYSPACE_PRODUCTS](#customize-polyspace-products-to-install)| Polyspace® Bug Finder™ Server™ and Polyspace Code Prover™ Server™ | Polyspace products to install, specified as a list of product names separated by spaces. For example, `Polyspace_Bug_Finder_Server Polyspace_Code_Prover_Server`.<br/>If no products are specified, the Packer build will install Polyspace with Polyspace Bug Finder Server and Polyspace Code Prover Server. For more information, see [MATLAB Package Manager](https://github.com/mathworks-ref-arch/matlab-dockerfile/blob/main/MPM.md).|
5454
| SPKGS | List of Deep Learning Support Packages, specified in [release-config](https://github.mathworks.com/development/parallel-server-aws-refarch/tree/dev/packer/v1/release-config) | A list of support packages to install, specified as a list of support package names separated by spaces. For example, `Deep_Learning_Toolbox_Model_for_GoogLeNet_Network Deep_Learning_Toolbox_Model_for_ResNet-101_Network` |
55-
| BASE_AMI | Default AMI ID refers to ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server. | The base AMI upon which the image is built, defaults to an official Canonical® Ubuntu® image. |
55+
| BASE_AMI_NAME | Default AMI ID refers to ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server. | The base AMI upon which the image is built, defaults to an official Canonical® Ubuntu® image. |
5656
| VPC_ID | *unset* | VPC to assign to the Packer build instance. If no VPC is specified, the default VPC will be used.|
5757
| SUBNET_ID | *unset* | Subnet to assign to the Packer build instance. If no subnet is specified, the subnet with the most free IPv4 addresses will be used.|
5858
| INSTANCE_TAGS |{Name="Packer Builder", Build="MATLAB_Parallel_Server"} | Tags to add to the Packer build instance.|
@@ -65,11 +65,11 @@ For a full list of the variables used in the build, see the description fields i
6565

6666
### **Customize Packer Build**
6767
#### **Customize Products to Install**
68-
Use the Packer build-time variable `PRODUCTS` to specify the list of products you want to install on the machine image. If unspecified, Packer will install MATLAB, MATLAB Parallel Server, MATLAB Production Server, and all the available toolboxes. Use the Packer build-time variable `POLYSPACE_PRODUCTS` to specify the list of Polyspace products you want to install on the machine image. If unspecified, Packer will install Polyspace Bug Finder Server and Polyspace Code Prover Server.
68+
Use the Packer build-time variable `PRODUCTS` to specify the list of products you want to install on the machine image. If unspecified, Packer will install MATLAB, MATLAB Parallel Server and all the available toolboxes. Use the Packer build-time variable `POLYSPACE_PRODUCTS` to specify the list of Polyspace products you want to install on the machine image. If unspecified, Packer will install Polyspace Bug Finder Server and Polyspace Code Prover Server.
6969

7070
For example, install the latest version of MATLAB and Deep Learning Toolbox.
7171
```bash
72-
packer build -var="PRODUCTS=MATLAB MATLAB_Parallel_Server MATLAB_Production_Server Deep_Learning_Toolbox" build-parallel-server-ami.pkr.hcl
72+
packer build -var="PRODUCTS=MATLAB MATLAB_Parallel_Server Deep_Learning_Toolbox" build-parallel-server-ami.pkr.hcl
7373
```
7474

7575
#### **Customize MATLAB Parallel Server Release to Install**
@@ -79,9 +79,9 @@ For example, install R2023a for MATLAB Parallel Server and all necessary and ava
7979
```bash
8080
packer build -var-file="release-config/R2023a.pkrvars.hcl" build-matlab-parallel-server-ami.pkr.hcl
8181
```
82-
Command line arguments can also be combined. For example, install R2020a for MATLAB, MATLAB Parallel Server, MATLAB Production Server, and the Parallel Computing Toolbox only.
82+
Command line arguments can also be combined. For example, install R2020a for MATLAB, MATLAB Parallel Server and the Parallel Computing Toolbox only.
8383
```bash
84-
packer build -var-file="release-config/R2023a.pkrvars.hcl" -var="PRODUCTS=MATLAB MATLAB_Parallel_Server MATLAB_Production_Server Parallel_Computing_Toolbox" build-matlab-parallel-server-ami.pkr.hcl
84+
packer build -var-file="release-config/R2023a.pkrvars.hcl" -var="PRODUCTS=MATLAB MATLAB_Parallel_Server Parallel_Computing_Toolbox" build-matlab-parallel-server-ami.pkr.hcl
8585
```
8686
Launch the customized image using the corresponding CloudFormation Template.
8787
For instructions on how to use CloudFormation Templates, see the Deployment Steps
@@ -92,7 +92,7 @@ You can set multiple variables in a [Variable Definition File](https://developer
9292
For example, to generate a machine image with the most recent MATLAB installed with necessary and additional toolboxes in a custom VPC, create a variable definition file named `custom-variables.pkrvars.hcl` containing these variable definitions.
9393
```
9494
VPC_ID = <any_VPC_id>
95-
PRODUCTS = "MATLAB MATLAB_Parallel_Server MATLAB_Production_Server Deep_Learning_Toolbox Parallel_Computing_Toolbox"
95+
PRODUCTS = "MATLAB MATLAB_Parallel_Server Deep_Learning_Toolbox Parallel_Computing_Toolbox"
9696
POLYSPACE_PRODUCTS = "Polyspace_Bug_Finder_Server Polyspace_Code_Prover_Server"
9797
```
9898

@@ -179,6 +179,6 @@ If you require assistance or have a request for additional features or capabilit
179179

180180
----
181181

182-
Copyright 2025 The MathWorks, Inc.
182+
Copyright 2025-2026 The MathWorks, Inc.
183183

184184
----

packer/v1/build-parallel-server-ami.pkr.hcl

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ variable "PRODUCTS" {
2222

2323
variable "RELEASE" {
2424
type = string
25-
default = "R2025b"
25+
default = "R2026a"
2626
description = "Target MATLAB release to install in the machine image, must start with \"R\"."
2727

2828
validation {
@@ -33,8 +33,8 @@ variable "RELEASE" {
3333

3434
variable "BASE_AMI_NAME" {
3535
type = string
36-
default = "ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"
37-
description = "Default AMI name refers to the Ubuntu Server 22.04 image provided by Canonical."
36+
default = "ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*"
37+
description = "Default AMI name refers to the Ubuntu Server 24.04 image provided by Canonical."
3838
}
3939

4040
variable "BUILD_SCRIPTS" {
@@ -54,7 +54,7 @@ variable "BUILD_SCRIPTS" {
5454

5555
variable "STARTUP_SCRIPTS" {
5656
type = list(string)
57-
default = [".env", "10_setup-disks.sh", "15_setup-shared-storage.sh", "20_optimize-gpu.sh", "30_setup-logging.sh", "35_setup-machine.sh", "40_setup-matlab.sh", "50_warmup-matlab.sh", "60_edit-mjs-def.sh", "70_sync-mjs-files.sh", "80_start-mjs.sh", "90_add-spot-instance-monitoring.sh", "95_setup-clustermanagement-program.sh"]
57+
default = [".env", "setup-mjs-hostname.sh", "10_setup-disks.sh", "15_setup-shared-storage.sh", "20_optimize-gpu.sh", "30_setup-logging.sh", "35_setup-machine.sh", "40_setup-matlab.sh", "50_warmup-matlab.sh", "60_edit-mjs-def.sh", "70_sync-mjs-files.sh", "80_start-mjs.sh", "90_add-spot-instance-monitoring.sh", "95_setup-clustermanagement-program.sh"]
5858
description = "The list of startup scripts Packer will copy to the remote machine image builder, which can be used during the CloudFormation Stack creation."
5959
}
6060

@@ -77,19 +77,19 @@ variable "CLOUD_USER" {
7777

7878
variable "NVIDIA_CUDA_TOOLKIT" {
7979
type = string
80-
default = "https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run"
80+
default = "https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run"
8181
description = "The URL to install NVIDIA CUDA Toolkit into the target machine image. "
8282
}
8383

8484
variable "NVIDIA_CUDA_KEYRING_URL" {
8585
type = string
86-
default = "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb"
86+
default = "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb"
8787
description = "NVIDIA CUDA keyring url."
8888
}
8989

9090
variable "NVIDIA_DRIVER_VERSION" {
9191
type = string
92-
default = "535"
92+
default = "590"
9393
description = "The version of the NVIDIA driver to install."
9494
}
9595

@@ -234,7 +234,7 @@ source "amazon-ebs" "AMI_Builder" {
234234
launch_block_device_mappings {
235235
device_name = "/dev/sda1"
236236
volume_size = 128
237-
volume_type = "gp2"
237+
volume_type = "gp3"
238238
delete_on_termination = true
239239
}
240240
region = "us-east-1"
@@ -284,6 +284,14 @@ build {
284284
inline = ["/usr/bin/cloud-init status --wait"]
285285
}
286286

287+
# Configure Global Apt Wait Time to avoid dpkg-lock errors
288+
provisioner "shell" {
289+
inline = [
290+
# Ensure apt waits for 300s if dpkg lock is held by other processes
291+
"echo 'DPkg::Lock::Timeout \"300\";' | sudo tee /etc/apt/apt.conf.d/99apt-lock-timeout"
292+
]
293+
}
294+
287295
provisioner "shell" {
288296
inline = ["mkdir /tmp/startup"]
289297
}

packer/v1/build/install-dependencies.sh

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env bash
22
#
3-
# Copyright 2022-2025 The MathWorks, Inc.
3+
# Copyright 2022-2026 The MathWorks, Inc.
44

55
# Exit on any failure, treat unset substitution variables as errors
66
set -euo pipefail
@@ -10,6 +10,13 @@ export DEBIAN_FRONTEND=noninteractive
1010
sudo apt-get -qq update
1111
sudo apt-get -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
1212

13+
# Install kernel headers, modules, and build tools required for NVIDIA driver compilation
14+
sudo apt-get install -qq \
15+
linux-headers-$(uname -r) \
16+
linux-modules-extra-$(uname -r) \
17+
build-essential \
18+
dkms
19+
1320
# Ensure essential utilities are installed
1421
sudo apt-get -qq install gcc make unzip wget
1522

@@ -59,9 +66,23 @@ sudo update-initramfs -u
5966

6067
# Install nvidia-driver
6168
if [[ -n "${NVIDIA_DRIVER_VERSION}" ]]; then
69+
wget -O cuda-keyring.deb ${NVIDIA_CUDA_KEYRING_URL}
70+
sudo dpkg -i cuda-keyring.deb
71+
sudo apt-get update
6272
sudo apt-get -y -qq install --no-install-recommends "nvidia-driver-${NVIDIA_DRIVER_VERSION}-server"
6373
fi
6474

75+
# Install NVIDIA CUDA Toolkit
76+
if [[ -n "${NVIDIA_CUDA_TOOLKIT}" ]]; then
77+
wget --no-verbose "${NVIDIA_CUDA_TOOLKIT}"
78+
chmod +x cuda*.run
79+
sudo bash cuda*.run --silent --override --toolkit --samples --toolkitpath=/usr/local/cuda-toolkit --samplespath=/usr/local/cuda --no-opengl-libs
80+
sudo ln -s /usr/local/cuda-toolkit /usr/local/cuda
81+
echo "export PATH=\"$PATH:/usr/local/cuda-toolkit/bin\"" >> set_cuda_on_path.sh
82+
sudo cp set_cuda_on_path.sh /etc/profile.d/
83+
rm cuda*.run
84+
fi
85+
6586
# Install CloudFormation helper scripts
6687
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-helper-scripts-reference.html
6788
wget --no-verbose https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.tar.gz

packer/v1/build/install-runtime-scripts.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/usr/bin/env bash
22
#
3-
# Copyright 2022-2025 The MathWorks, Inc.
3+
# Copyright 2022-2026 The MathWorks, Inc.
44

55
# Exit on any failure, treat unset substitution variables as errors
66
set -euo pipefail
@@ -13,10 +13,10 @@ PYTHON_MINOR=$(echo $PYTHON_VERSION | cut -d. -f2)
1313
# https://pip.pypa.io/en/stable/installation/#get-pip-py
1414
if [[ $PYTHON_MINOR -le 8 ]]; then
1515
echo "Using Python 3.${PYTHON_MINOR} specific pip installer"
16-
curl "https://bootstrap.pypa.io/pip/3.${PYTHON_MINOR}/get-pip.py" | sudo python3
16+
curl "https://bootstrap.pypa.io/pip/3.${PYTHON_MINOR}/get-pip.py" | sudo PIP_BREAK_SYSTEM_PACKAGES=1 python3
1717
else
1818
echo "Using default pip installer"
19-
curl https://bootstrap.pypa.io/get-pip.py | sudo python3
19+
curl https://bootstrap.pypa.io/get-pip.py | sudo PIP_BREAK_SYSTEM_PACKAGES=1 python3
2020
fi
2121

2222
# Create folder
@@ -25,7 +25,7 @@ sudo mkdir -p /opt/mathworks/
2525
# Install mwplatforminterfaces package
2626
echo "Installing mwplatforminterfaces package"
2727
sudo cp -R /tmp/runtime/mwplatforminterfaces/ /opt/mathworks/
28-
sudo python3 -m pip install -e /opt/mathworks/mwplatforminterfaces/
28+
sudo PIP_BREAK_SYSTEM_PACKAGES=1 python3 -m pip install -e /opt/mathworks/mwplatforminterfaces/
2929

3030
# Install cluster_management package
3131
echo "Installing cluster_management package"

0 commit comments

Comments
 (0)