{"id":26129499,"url":"https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win","last_synced_at":"2026-03-09T17:42:41.212Z","repository":{"id":100806904,"uuid":"420051703","full_name":"mathworks-ref-arch/matlab-parallel-server-on-aws-win","owner":"mathworks-ref-arch","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-08T13:53:35.000Z","size":328,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-12-02T07:36:28.214Z","etag":null,"topics":["matlab-aws"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mathworks-ref-arch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-22T10:09:42.000Z","updated_at":"2024-11-08T13:53:39.000Z","dependencies_parsed_at":"2024-03-21T23:31:28.503Z","dependency_job_id":"756834d6-a14c-47d9-b6be-69643b2f7a26","html_url":"https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathworks-ref-arch%2Fmatlab-parallel-server-on-aws-win","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathworks-ref-arch%2Fmatlab-parallel-server-on-aws-win/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathworks-ref-arch%2Fmatlab-parallel-server-on-aws-win/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mathworks-ref-arch%2Fmatlab-parallel-server-on-aws-win/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mathworks-ref-arch","download_url":"https://codeload.github.com/mathworks-ref-arch/matlab-parallel-server-on-aws-win/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242917947,"owners_count":20206516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["matlab-aws"],"created_at":"2025-03-10T19:49:11.978Z","updated_at":"2026-03-09T17:42:41.198Z","avatar_url":"https://github.com/mathworks-ref-arch.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# MATLAB Parallel Server on Amazon Web Services\n\nThis repository enables you to automate the process of deploying MATLAB\u0026reg; Parallel Server\u0026trade; and MATLAB Job Scheduler on Amazon\u0026reg; EC2\u0026reg; resources using your Amazon Web Services (AWS\u0026reg;) account. \n\nUse this repository to deploy a compute cluster using compute, storage, and network resources hosted by AWS. For information about the architecture of this solution, see [Learn About Cluster Architecture](#learn-about-cluster-architecture). Use this reference architecture to control every aspect of your cloud resources. Alternatively, for a simpler but less customizable method of deploying a MATLAB Parallel Server cluster in AWS, try [MathWorks Cloud Center](https://www.mathworks.com/help/cloudcenter/mathworks-cloud-center.html).\n\nThis reference architecture has been reviewed and qualified by AWS.\n\n![AWS Qualified Software badge](img/aws-qualified-software.png)\n\n# Requirements\n\nBefore starting, you need the following:\n\n* A MATLAB Parallel Server license. You can use either:\n    * A MATLAB Parallel Server license configured to use online licensing for MATLAB. For information on how to configure your license for cloud use, see [Configure MATLAB Parallel Server Licensing for Cloud Platforms](https://www.mathworks.com/help/matlab-parallel-server/configure-matlab-parallel-server-licensing-for-cloud-platforms.html).\n    * A network license manager for MATLAB hosting sufficient MATLAB Parallel Server licenses for your cluster. MathWorks\u0026reg; provides a reference architecture to deploy a suitable [Network License Manager for MATLAB on Amazon Web Services](https://github.com/mathworks-ref-arch/license-manager-for-matlab-on-aws) or you can use an existing license manager.\n* MATLAB and Parallel Computing Toolbox\u0026trade; on your desktop.\n* An AWS account with required permissions.\n* A key pair for your AWS account in your chosen region. For instructions on how to create an SSH key pair, see the AWS documentation on [Amazon EC2 key pairs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html).\n\n# Costs\n\nYou are responsible for the cost of the AWS services you use when you create cloud resources using this repository. Resource settings, such as instance type, affects the cost of deployment. For cost estimates, see the pricing pages for each AWS service you use. Prices are subject to change.\n\n# Deployment Steps\n\nBy default, the MATLAB Parallel Server reference architectures below launch prebuilt machine images, described in [Learn about Cluster Architecture](#learn-about-cluster-architecture).\nUsing a prebuilt machine image is the easiest way to deploy a MATLAB Parallel Server reference architecture.\nPrebuilt images are provided for the five most recent MATLAB releases.\nAlternatively, to build your own machine image,\nsee [Build and Deploy Your Own Machine Image](#build-and-deploy-your-own-machine-image).\nYou can also use this workflow to install an earlier MATLAB release.\n\n## Deploy Prebuilt Machine Image\n\nTo view instructions for deploying the MATLAB Parallel Server reference architecture, select a MATLAB release:\n\n| Linux | Windows | Status |\n| ----- | ------- | ------- |\n| [R2025b](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws/tree/master/releases/R2025b/README.md) | [R2025b](releases/R2025b/README.md) | ✅ Prebuilt available. |\n| [R2025a](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws/tree/master/releases/R2025a/README.md) | [R2025a](releases/R2025a/README.md) | ✅ Prebuilt available. |\n| [R2024b](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws/tree/master/releases/R2024b/README.md) | [R2024b](releases/R2024b/README.md) | ✅ Prebuilt available. |\n| [R2024a](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws/tree/master/releases/R2024a/README.md) | [R2024a](releases/R2024a/README.md) | ⚠️ Prebuilt will be removed in September 2026. |\n| [R2023b](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws/tree/master/releases/R2023b/README.md) | [R2023b](releases/R2023b/README.md) | ⚠️ Prebuilt will be removed in March 2026. |\n| [Earlier/Custom](https://github.com/mathworks-ref-arch/matlab-parallel-server-on-aws/tree/master/packer/v1) | [Earlier/Custom](./packer/v1) | For earlier MATLAB releases, you must build your own machine image. |\n\nThe above instructions allow you to launch instances based on the latest prebuilt MathWorks\u0026reg; Amazon Machine Images (AMIs).\n\n## Build and Deploy Your Own Machine Image\n\nFor details of the scripts which form the basis of the MathWorks Windows AMI build process,\nsee [Build Your Own Machine Image](./packer/v1).\nYou can use these scripts to build a custom Windows machine image for running MATLAB Parallel Server on Amazon Web Services.\nYou can then deploy this custom image with the MathWorks infrastructure as code (IaC) templates.\n\nYou can customize the MATLAB release which is installed as part of this custom build.\nThis includes MATLAB releases supported by the prebuilt images, as well as earlier MATLAB releases.\nFor more details,\nsee [Customize MATLAB Paralle Server Release to Install](./packer/v1#customize-matlab-parallel-server-release-to-install).\n\nPlatform engineering teams can use these scripts to take advantage of optimizations MathWorks has developed\nfor running MathWorks products in the cloud.\nFor more details, see [What are the advantages of building images with MathWorks scripts?](#what-are-the-advantages-of-building-images-with-mathworks-scripts)\n\n# Learn About Cluster Architecture\n\nThis diagram illustrates the cluster architecture created by the template. When you use the [AWS CloudFormation templates](https://aws.amazon.com/cloudformation/) in this repository, it creates the [MATLAB Job Scheduler](#what-is-matlab-job-scheduler) and the following resources. For more information about each resource, see [AWS CloudFormation template reference.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html)\n\n![Cluster Architecture](img/MJS_in_AWS_architecture.png?raw=true)\n\n### Networking Resources\n* Security Group (AWS::EC2::SecurityGroup): A security group that defines the ports that are open for ingress to the cluster.\n* Security Group Internal Traffic Rule (AWS::EC2::SecurityGroupIngress): A rule that opens access to network traffic between all cluster nodes internally.\n\n### Compute Resources\n* Headnode instance (AWS::EC2::Instance): An EC2 instance for the cluster headnode. The EBS volume attached to this instance stores the job database. The headnode communicates with the clients using a secure SSL connection.\n* IAM Role for Cluster Instances (AWS::IAM::Role): A role allowing access to Amazon S3\u0026trade; from services running in EC2.\n* Instance Profile for cluster instances (AWS::IAM::InstanceProfile): A profile for the cluster instances that associates them with the IAM role above.\n* Worker Auto Scaling Group (AWS::AutoScaling::AutoScalingGroup): A scaling group for worker instances to be deployed into.\n* Worker Launch Configuration (AWS::EC2::LaunchTemplate): A launch template for one or more worker nodes which each run one or more worker MATLAB processes. Clients and workers communicate using a secure SSL connection.\n\n### Storage Resources\n* Cluster S3 Bucket (AWS::S3::Bucket): An S3 bucket that contains the shared secret required to register the workers and establish a secure connection with the job scheduler between the cluster nodes. The shared secret is encrypted in the bucket using server-side encryption. The bucket also contains the cluster profile required to connect to the cluster from the MATLAB client.\n* IAM role for deletion of S3 bucket (AWS::IAM::Role): A role that allows an AWS lambda function to empty the S3 bucket during shut down of the cluster. CloudFormation can delete the S3 bucket only if it is empty.\n* Lambda function to empty the S3 bucket (AWS::Lambda::Function): A lambda function to empty the S3 bucket created above to allow CloudFormation to successfully delete the S3 bucket when the cluster is shut down.\n* Custom lambda dependency (Custom::LambdaDependency): A custom dependency to trigger the lambda function when the Cloud Formation stack is deleted.\n\n## FAQ\n\n### What can I do with MATLAB Parallel Server?\n\nParallel Computing Toolbox and MATLAB Parallel Server software let you solve computationally and data-intensive programs using MATLAB and Simulink on computer clusters, clouds, and grids. Parallel processing constructs such as parallel-for loops and code blocks, distributed arrays, parallel numerical algorithms, and message-passing functions let you implement task-parallel and data-parallel algorithms at a high level in MATLAB. To learn more, see the documentation: [Parallel Computing Toolbox](https://www.mathworks.com/help/parallel-computing) and [MATLAB Parallel Server](https://www.mathworks.com/help/matlab-parallel-server/). \n\n### What is MATLAB Job Scheduler?\n\nMATLAB Job Scheduler is a built-in scheduler that ships with MATLAB Parallel Server. The scheduler coordinates the execution of jobs and distributes the tasks for evaluation to the server’s individual MATLAB sessions called workers. For more details, see [How Parallel Computing Toolbox Runs a Job](https://www.mathworks.com/help/parallel-computing/how-parallel-computing-products-run-a-job.html). The MATLAB Job Scheduler and the resources required by it are created using [AWS CloudFormation templates](https://aws.amazon.com/cloudformation/). \n\n### What is Amazon Web Services (AWS)?\n\nAWS is a set of cloud services which allow you to build, deploy, and manage applications hosted in Amazon’s global network of data centers. Find out more about the range of [cloud-based products offered by AWS](https://aws.amazon.com/products/). Services deployed in AWS can be created, managed, and deleted using the AWS Management Console. For more information about the AWS Management Console, see [AWS Management Console](https://docs.aws.amazon.com/awsconsolehelpdocs/). \n\n### What skills or specializations do I need to use this Reference Architecture?\n\nNo programming or cloud experience required. \n\n### How long does it take to deploy the Reference Architecture?\n\nIf you already have an AWS account set up and ready to use, you can start a MATLAB Parallel Server Reference Architecture cluster in less than 15 minutes. Startup time varies depending on the size of your cluster.\n\n### How do I manage limits for AWS services? \n\nTo learn about setting quotas, see [AWS Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html).\n\n### How do I copy the AMI to a different region?\n\nYou can copy the AMI for a certain MATLAB version to a target region of your choice.\n\n* In the Releases folder of this repository, choose the MATLAB release that you want to copy. Download and open the CloudFormation template JSON file for that release.\n* Locate the Mappings section in the CloudFormation template. Copy the AMI ID for one of the existing regions, for example, us-east-1.\n* To copy the AMI to your target region, see the AWS documentation on [Copy an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html).\n* In the Mappings section of the CloudFormation template, add a new RegionMap pair corresponding to your target region. Insert the new AMI ID of the AMI in the target region.\n* In your AWS Console, change your region to your target region. In the CloudFormation menu, select Create Stack \u003e With new resources option. Provide the modified CloudFormation template.\n\nYou can now deploy the AMI in your target region using the AMI that you copied.\n\n### What is an EC2 Spot Instance, and what factors should I consider before enabling it?\n\nSpot instances allow you to use AWS EC2 Instances at a reduced cost. AWS uses Spot Instances to sell unused instances within their data centers. However, AWS can reclaim these instances at any time. For more details, see the AWS documentation on [Spot Instances](https://aws.amazon.com/ec2/spot/).\n\nBefore enabling Spot Instances, consider these three aspects:\n\n* Pricing: Spot Instances offer discounts compared to On-Demand EC2 instances. The actual discount depends on the available unused capacity of the EC2 instance within the Availability Zone (AZ). For more details, refer to the AWS documentation.\n\n* Behavior of your cluster when AWS reclaims a Spot Instance: Spot Instances are used only for the worker nodes, whereas the head node always uses an On-Demand instance. This is to ensure that you do not lose any user job and task information when an EC2 instance is reclaimed by AWS. Jobs in the queue are run when a new worker instance is available. For details on how jobs are run, refer to [How Parallel Computing Toolbox Runs a Job](https://www.mathworks.com/help/parallel-computing/how-parallel-computing-products-run-a-job.html). If an EC2 Spot Instance for a worker is interrupted when it is running a task, the task is marked as failed. You can set the maximum number of times to rerun a failed task using the `MaximumRetries` property. For more details, see [Access task properties and behaviors](https://www.mathworks.com/help/parallel-computing/parallel.task.html).\n\n* Parameters for the VPC and subnet in this CloudFormation template: Each Availability Zone in a region has a different capacity available for Spot Instances. To increase the likelihood of obtaining Spot Instances for your cluster, ensure that your VPC has subnets in multiple Availability Zones in the region.\n\n### What are the advantages of building images with MathWorks scripts?\n\nImages built with MathWorks scripts are optimized and tested for MathWorks workflows.\nThe images are deployed by MathWorks CloudFormation templates following AWS best practices.\n\nThe warmup scripts found in [startup](./packer/v1/startup) allow you to start MATLAB faster. The CloudFormation template uses these scripts to automatically initialize MathWorks files on the instance. These scripts are automatically included in both the prebuilt images and the images that you build using the instructions in [Deployment Steps](#deployment-steps).\n\nWithout the optimization scripts, starting a large software application, such as MATLAB, for the first time can potentially take tens of minutes. Subsequent starts of the large software application will be faster. This is because AWS initializes the storage for the EC2 instance, as described in [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-initialize.html).\n\n# Technical Support\nIf you require assistance or have a request for additional features or capabilities, contact [MathWorks Technical Support](https://www.mathworks.com/support/contact_us.html).\n\n----\n\nCopyright 2021-2026 The MathWorks, Inc.\n\n----","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathworks-ref-arch%2Fmatlab-parallel-server-on-aws-win","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathworks-ref-arch%2Fmatlab-parallel-server-on-aws-win","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathworks-ref-arch%2Fmatlab-parallel-server-on-aws-win/lists"}