All Projects → aws-samples → pcluster-manager

aws-samples / pcluster-manager

Licence: Apache-2.0 license
Manage AWS ParallelCluster through an easy to use web interface

Programming Languages

typescript
32286 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
javascript
184084 projects - #8 most used programming language
ruby
36898 projects - #4 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to pcluster-manager

Onemkl
oneAPI Math Kernel Library (oneMKL) Interfaces
Stars: ✭ 122 (+82.09%)
Mutual labels:  hpc, parallel-computing
hpc
Learning and practice of high performance computing (CUDA, Vulkan, OpenCL, OpenMP, TBB, SSE/AVX, NEON, MPI, coroutines, etc. )
Stars: ✭ 39 (-41.79%)
Mutual labels:  hpc, parallel-computing
Core
parallel finite element unstructured meshes
Stars: ✭ 124 (+85.07%)
Mutual labels:  hpc, parallel-computing
Sos
Sandia OpenSHMEM is an implementation of the OpenSHMEM specification over multiple Networking APIs, including Portals 4, the Open Fabric Interface (OFI), and UCX. Please click on the Wiki tab for help with building and using SOS.
Stars: ✭ 34 (-49.25%)
Mutual labels:  hpc, parallel-computing
Sundials
SUNDIALS is a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. This is a mirror of current releases, and development will move here eventually. Pull requests are welcome for bug fixes and minor changes.
Stars: ✭ 194 (+189.55%)
Mutual labels:  hpc, parallel-computing
Parenchyma
An extensible HPC framework for CUDA, OpenCL and native CPU.
Stars: ✭ 71 (+5.97%)
Mutual labels:  hpc, parallel-computing
Dash
DASH, the C++ Template Library for Distributed Data Structures with Support for Hierarchical Locality for HPC and Data-Driven Science
Stars: ✭ 134 (+100%)
Mutual labels:  hpc, parallel-computing
mbsolve
An open-source solver tool for the Maxwell-Bloch equations.
Stars: ✭ 14 (-79.1%)
Mutual labels:  hpc, parallel-computing
Samrai
Structured Adaptive Mesh Refinement Application Infrastructure - a scalable C++ framework for block-structured AMR application development
Stars: ✭ 160 (+138.81%)
Mutual labels:  hpc, parallel-computing
Future.apply
🚀 R package: future.apply - Apply Function to Elements in Parallel using Futures
Stars: ✭ 159 (+137.31%)
Mutual labels:  hpc, parallel-computing
Future
🚀 R package: future: Unified Parallel and Distributed Processing in R for Everyone
Stars: ✭ 735 (+997.01%)
Mutual labels:  hpc, parallel-computing
Foundations of HPC 2021
This repository collects the materials from the course "Foundations of HPC", 2021, at the Data Science and Scientific Computing Department, University of Trieste
Stars: ✭ 22 (-67.16%)
Mutual labels:  hpc, parallel-computing
Mfem
Lightweight, general, scalable C++ library for finite element methods
Stars: ✭ 667 (+895.52%)
Mutual labels:  hpc, parallel-computing
Charm
The Charm++ parallel programming system. Visit https://charmplusplus.org/ for more information.
Stars: ✭ 96 (+43.28%)
Mutual labels:  hpc, parallel-computing
Jug
Parallel programming with Python
Stars: ✭ 337 (+402.99%)
Mutual labels:  hpc, parallel-computing
Batchtools
Tools for computation on batch systems
Stars: ✭ 127 (+89.55%)
Mutual labels:  hpc, parallel-computing
PyMFEM
Python wrapper for MFEM
Stars: ✭ 91 (+35.82%)
Mutual labels:  hpc, parallel-computing
bitpit
Open source library for scientific HPC
Stars: ✭ 80 (+19.4%)
Mutual labels:  hpc, parallel-computing
Opencoarrays
A parallel application binary interface for Fortran 2018 compilers.
Stars: ✭ 151 (+125.37%)
Mutual labels:  hpc, parallel-computing
hp2p
Heavy Peer To Peer: a MPI based benchmark for network diagnostic
Stars: ✭ 17 (-74.63%)
Mutual labels:  hpc, parallel-computing

ParallelCluster Manager - Make HPC Easy

This project is a front-end for AWS Parallel Cluster

Quickly and easily create HPC cluster in AWS using ParallelCluster Manager. This UI uses the AWS ParallelCluster 3.0 API to Create, Update and Delete Clusters as well as access, view logs, and build Amazon Machine Images (AMI's).

Want to request a new feature? open a feature request

You can get started with your first cluster in as little as 15 minutes using the links below.

Quickstart (15 mins) 🚀

Launch the stack in your AWS account by clicking on one of the below regions (use the alternative launch link if S3 template loading fails):

Region Launch Alternative launch link
Ohio (us-east-2) Launch Launch
North Virginia (us-east-1) Launch Launch
Ireland (eu-west-1) Launch Launch
Frankfurt (eu-central-1) Launch Launch
More Regions (Click to expand)
Region Launch Alternative launch link
Oregon (us-west-2) Launch Launch
California (us-west-1) Launch Launch
London (eu-west-2) Launch Launch
Paris (eu-west-3) Launch Launch
Stockholm (eu-north-1) Launch Launch
Middle East (me-south-1) Launch Launch
South America (sa-east-1) Launch Launch
Canada (ca-central-1) Launch Launch
Hong Kong (ap-east-1) Launch Launch
Tokyo (ap-northeast-1) Launch Launch
Seoul (ap-northeast-2) Launch Launch
Mumbai (ap-south-1) Launch Launch
Singapore (ap-southeast-1) Launch Launch
Sydney (ap-southeast-2) Launch Launch

Enter your email and wait (~15 mins) for the stack to go into CREATE_COMPLETE. Using the code from your email login to the Web UI at the address specified by the PclusterManagerUrl in the Outputs tab of the main pcluster-manager stack.

CloudFormation Outputs

For more details see the Getting Started Guide.

Screen Shot

Main Page

System Architecture

ParallelCluster Manager Architecture

Costs

ParallelCluster Manager is built on a serverless architecture and falls into the free tier for most uses. I've detailed the dependency services and their free-tier limits below:

Service Free Tier
Cognito 50,000 Monthly Active Users
API Gateway 1M Rest API Calls
Lambda 1M free requests / month & 400,000 GB-seconds of compute / month
Image Builder No-Cost except EC2
EC2 ~15 mins one-time to build Container Image

Typical usage will likely cost < $1 / month.

Updating

To update the the latest version, run the following, make sure to set the region to where you deployed the stack:

git clone https://github.com/aws-samples/pcluster-manager.git
cd pcluster-manager/
./scripts/update.sh --region us-east-1  # should be region where stack is deployed

Local Development

To run AWS ParallelCluster Manager locally, start by setting the following environment variables:

export AWS_ACCESS_KEY_ID=[...]
export AWS_SECRET_ACCESS_KEY=[...]
export AWS_DEFAULT_REGION=us-east-2
export API_BASE_URL=https://[API_ID].execute-api.us-east-2.amazonaws.com/prod  # get this from ParallelClusterApi stack outputs
export ENV=dev

Install dependencies by running:

pip3 install -r requirements.txt

Backend with Cognito

From the Cognito service page of the AWS account where pcluster-manager has been deployed, click on the user pool and then on the App Integration tab. In the App client list at the bottom, make note of the Client ID, then click on the App client and click Edit in the Hosted UI section, adding http://localhost:5001/login to the Allowed callback URLs.

Then export the following variables:

export SECRET_ID=<the value of the UserPoolClientSecretName output from the PclusterManagerCognito stack>
export SITE_URL=http://localhost:5001
export AUDIENCE=<the value of the Client ID noted in the previous step>
export AUTH_PATH=<the UserPoolAuthDomain output of the ParallelClusterCognito nested stack>

Start the API backend by running:

./scripts/run_flask.sh

Start the React frontend by running:

cd frontend/
npm install # if this is your first time starting the frontend
npm run dev

Lastly, navigate to http://localhost:5001

Frontend

Disable authentication (HMR does not work when working on http://localhost:5001), note that this has to be exported in shell where the backend runs:

export ENABLE_AUTH=false

Start the API backend by running:

./scripts/run_flask.sh

Start the React frontend by running:

cd frontend/
npm install # if this is your first time starting the frontend
npm run dev

Navigate to http://localhost:3000

Typescript

The project has been converted to Typescript using ts-migrate(an in depth explanation can be found here). The tool automatically adds comments similar to // @ts-expect-error when typing errors cannot be fixed automatically: if you fix a type error either by adding a missing third party declaration or tweaking the signature of a function, you can adjust automatically the codebase and remove //@ts-ignore comments using npm run ts-reignore.

Testing

Launch tests of the API backend by running:

pytest

For detailed information on how to invoke pytest, see this resource.

Security

See Security Issue Notifications for more information.

Contributing

Please refer to our Contributing Guidelines before reporting bugs or feature requests

Please refer to our Project Guidelines before diving into the code

License

This project is licensed under the Apache-2.0 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].