Azure Artist Anywhere (AAA) is a modular and flexible Infrastructure as Code (IaC) deployment framework for Azure High-Performance Compute (HPC) workloads (Render, Electronic Design Automation).
MIT License
Azure Artist Anywhere (AAA) is a modular & flexible Infrastructure as Code (IaC) solution deployment framework forAzure High-Performance Computing (HPC) workloads. Enable remote artist productivity with global Azure scale viaCompute Fleet AI-enabled deployments with up to 10,000 Spot / Standard VMs and up to 15 VM sizes per request.
The following solution design principles and features are implemented throughout the AAA deployment framework.
Module Name | Module Description | Required forBurst Compute? | Required forFull Solution?(Compute & Storage) |
---|---|---|---|
0 Global Foundation | Defines global config (Azure Region) and core services (Terraform Storage, Managed Identity, Key Vault, etc) | Yes | Yes |
1 Virtual Network | Deploys Virtual Network with VPNor ExpressRoute gateway services | Yes, if Virtual Network is not yet deployed | Yes, if Virtual Network is not yet deployed |
2 Image Builder | Deploys Image Builder and Compute Gallery with image customize scripts | No, use your custom image config here | No, use your custom image config here |
3 File Storage | Deploys native (Blob [NFS], Files, NetApp Files, Qumulo, Lustre) or hosted (Weka) storage services | No, use your current NAS via 4 File Cache | Yes |
4 File Cache | Deploys Hammerspace, HPC Cache or Avere vFXT for scalable caching | Yes | No |
5 Job Scheduler | Deploys Virtual Machines for compute job scheduling and management | No | No |
6 Compute Farm | Deploys Compute Fleet or VM Scale Sets for scalable compute farms | Yes | Yes |
7 Artist Workstation | Deploys Virtual Machines for remote artist workstations with HP Anyware | No | No |
The following local installation process is required for deployment orchestration.
For each module, here is the recommended configuration and deployment process.
config.auto.tfvars
file for your target deployment.
0 Global Foundation
, review and edit the following required config files.For example, your Azure subscription id must be set in the /cfg/global.tf
file
/cfg/global.tf
- defines global config (subscription id, default region name, etc)/cfg/file.system.tf
- defines the active file system(s) for compute node mount/cfg/backend.config
- defines Terraform backend state file Azure Blob storage2 Image Builder
, 5 Job Scheduler
and 7 Artist Workstation
, make sure you have sufficient Standard compute cores quota available on your Azure subscription for each configured virtual machine type / size in your target region.6 Compute Farm
, make sure you have sufficient Spot compute cores quota available on your Azure subscription for each configured virtual machine type / size in your target region.5 Job Scheduler
, 6 Compute Farm
and 7 Artist Workstation
, make sure each image config references the correct Compute Gallery custom image in your Azure subscription.0 Global Foundation
, run terraform init
to initialize the module local directory (append -upgrade
if older providers are detected).0 Global Foundation
, run terraform init -backend-config ../0.Global.Foundation/cfg/backend.config
to initialize the module local directory (append -upgrade
if older providers are detected).terraform apply
to generate the Terraform deployment Plan (append -destroy
to delete Azure resources).2 Image Builder
,
az vm image terms accept --publisher RESF --offer RockyLinux-x86_64 --plan 9-Base
The following sample images were rendered on Azure via multiple render farm, engine and job submission options.
The following Disney Moana Island scene was rendered on Azure via the Physically-Based Ray Tracer (PBRT) renderer.
To render the Disney Moana Island scene on an Azure Linux render farm, the following job submission command can be submitted from a Linux or Windows artist workstation.
deadlinecommand -SubmitCommandLineJob -name moana-island -executable pbrt -arguments "--outfile /mnt/storage/pbrt/moana/island-v4.png /mnt/storage/pbrt/moana/island/pbrt-v4/island.pbrt"
To render the Disney Moana Island scene on an Azure Windows render farm, the following job submission command can be submitted from a Linux or Windows artist workstation.
deadlinecommand -SubmitCommandLineJob -name moana-island -executable pbrt.exe -arguments "--outfile X:\pbrt\moana\island-v4.png X:\pbrt\moana\island\pbrt-v4\island.pbrt"
The following Blender 3.4 Splash screen was rendered on Azure via the Blender renderer.
To render the Blender Splash screen on an Azure Linux render farm, the following job submission command can be submitted from a Linux or Windows artist workstation.
deadlinecommand -SubmitCommandLineJob -name blender-splash -executable blender -arguments "--background /mnt/storage/blender/3.4/splash.blend --render-output /mnt/storage/blender/3.4/splash --enable-autoexec --render-frame 1"
To render the Blender Splash screen on an Azure Windows render farm, the following job submission command can be submitted from a Linux or Windows artist workstation.
deadlinecommand -SubmitCommandLineJob -name blender-splash -executable blender.exe -arguments "--background X:\blender\3.4\splash.blend --render-output X:\blender\3.4\splash --enable-autoexec --render-frame 1"
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.