Home [Hosting HPC in Azure] 1.1 -- CycleCloud Concept
Post
Cancel

[Hosting HPC in Azure] 1.1 -- CycleCloud Concept

Concept

CycleCloud Concept Image from CycleCloud Microsoft Learn.

  • The VM where CycleCloud resides. It orchestrates (e.g., scales up and down, allocate new nodes) the HPC cluster.
  • CycleCloud downloads template from storage. Templates are specification of how to set up the nodes. For example, the hardware, the initialization script.
  • CycleCloud comes with monitor. It gathers information (e.g., read / write speed) from agents in the nodes.
  • Computing nodes are allocated as VM scaleset, and the scaleset scales up and down when allocation and deacllocation.
  • CycleCloud and the cluster needs to be in the same VNet, otherwise we need peering.

Locker and Storage

A locker is simply an Azure Blob Storage container that CycleCloud uses as a file storage backend. It’s where CycleCloud stores all the files that nodes need to configure themselves when they start up.

Think of it as a shared folder in the cloud—every node in your cluster downloads files from here when it boots.

1
cyclecloud locker list # shows the locker (storage account) we have

CycleCloud CLI

CLI is really hard to use… I would recommend Wizard.

  1. Initialize
    1
    
     cyclecloud initialize
    

    Treat the prompt like the login on the CycleCloud UI.

  2. Create a new empty project:
    1
    
     cyclecloud project init
    
  3. Upload to storage account, so that every cluster nodes can download them:
    • This is important, the nodes (VMs and VM Scale Sets) will download these files to initialize itself.
      1
      2
      
       cyclecloud locker list # list lockers (storage account)
       cyclecloud project upload <locker name>
      
  4. Import the template:
    1
    2
    
     cyclecloud project info # will get you the project name of this folder.
     cyclecloud import_template nfs -f templates/nfs.txt --force
    
  5. Create the cluster from the template:
    1
    
     cyclecloud create_cluster <template_name> <give it a name>
    
  6. Show to cluster we have and start:
    1
    2
    
     cyclecloud show_cluster 
     cyclecloud start_cluster
    

Template Project Structure

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
├── blobs
├── project.ini
├── specs
│   └── default
│       ├── chef
│       │   ├── data_bags
│       │   ├── roles
│       │   └── site-cookbooks
│       └── cluster-init
│           ├── files
│           │   └── README.txt
│           ├── scripts
│           │   └── README.txt
│           └── tests
│               └── README.txt
└── templates
  • specs/default/cluster-init/files: Files in this directory are automatically synced to any node using this spec. (Ex: software packages, config files)
  • specs/default/cluster-init/scripts: Files in this directory are executed on the host in alphabetical order.

CycleCloud UI

Follow the wizard.

This post is licensed under CC BY 4.0 by the author.