Skyway: A Seamless Platform that Democratizes Cloud Computing for Researchers
Trung Nguyen and Hakizumwami Birali Runesha
Research Computing Center, University of Chicago
May 19, 2026
Cloud Forum 2026
University of Wisconsin, Madison, May 19-21, 2026
Our Team
Birali Runesha
Varun Sharma
Himi Yadav
Ross Hyman
Trung Nguyen
Yuxing Peng
Virender Kumar
What are the urgent needs?
Cloud access for all should be easy
► Skyway
is a hybrid solution that allows HPC users to submit workloads to either on-premises or cloud resources from a unified environment.
allows bursting jobs to different cloud platforms seamlessly with no learning curve and operating effort.
offers a billing module, prevents exceeding a budget allocation and manages a research group expenditure.
A hybrid infrastructure, with the ability to “extend on-premises resources to-cloud”, can combine advantages of on-premises and cloud resources.
► HPC: on-premises or cloud?
On-premises solutions
What is Skyway?
Cloud computing solutions
Running jobs at the UChicago RCC
Compute Nodes
RCC Users
University Shared
Storage
Faculty CPP
Storage
Compute Nodes
Running jobs at the UChicago RCC
Compute Nodes
RCC Users
University Shared
Storage
Storage
Compute Nodes
Faculty CPP
Storage
Compute Nodes
Commercial Clouds
AWS-GCP-OCI-Azure
HPC login nodes
Storage
Cloud storage
Compute nodes
Cloud instances
/software/[selected]
/project/pi-account
Users
Cloud API wrapper
skyway module
On premises (Midway)
On the cloud (AWS, GCP, Azure, Oracle)
Slurm wrapper
Skyway is a flexible tool that offers
Success stories
User Support and Engagement
Main components
Command Line Interface
(accessible via SSH, ThinLinc, Open OnDemand)
Dashboard
(accessible via ThinLinc and Open OnDemand)
Skyway API
Skyway CLI: Slurm-inspired commands
# List all the node/VM types
skyway_nodetypes --account=liangjiang-gcp
# Submit an interactive job (--account and –A are equivalent), wall time is required
skyway_interactive -A liangjiang-gcp –constraint=c1--time=02:00:00
# Submit a batch job
skyway_batch job_script.sh
# Transfer data from Midway to the cloud node, and from the cloud node to Midway
skyway_transfer -A liangjiang-gcp -J your-run /path/to/input-data
skyway_transfer –A liangjiang-gcp –from-cloud –cloud-path ~/output-data /home/$USER
# List all the running/stopped VMs of a cloud account
skyway_list --account=liangjiang-gcp
# Cancel/terminate a job
skyway_cancel --account=liangjiang-gcp your-run
module load skyway
Recommend suitable instances for a workload
Skyway Advisor
Job submitted with cloud account ndtrung-oci
Cloud vendor: oci
Requested resource:
+ CPU cores = 2
+ Memory = 4 GB
+ GPUs = 1
Suggested node types for job_script.sh:
Instance Type Cores Mem (GB) GPUs GPU type Per-hour Cost, $
--------------- ------- ---------- ------ ----------- ------------------
VM.GPU.A10.1 2 8 1 nvidia-a10 2
VM.GPU.H100.8 2 8 8 nvidia-h100 10
skyway_advisor job_script.sh
Usage history and job accounting
skyway_usage -A liangjiang-gcp –u ndtrung --byjob
Demo: Working with AWS EC2 instances from login node
Essential operations with Skyway CLI
Commands | Description |
skyway_info | List the useful commands |
skyway_nodetypes | List all types of cloud nodes, aka virtual machines (VM) |
skyway_usage | Show the usage |
skyway_alloc | Provision a cloud code |
skyway_list | List all the running and stopped nodes |
skyway_transfer | Transfer data from/to running nodes |
skyway_connect | Connect (via SSH) to a cloud node |
skyway_stop | Stop an instance (keep the data): Stopped instances are not charged because the CPUs, RAM and GPUs are released to the pool. |
skyway_restart | Restart a stopped instance: allocate a new VM with the persistent data |
skyway_cancel | Cancel/terminate a running node, all data on the VM will be erased |
skyway_interactive | Provision and then connect to a cloud node |
skyway_batch | Submit a batch script to a cloud node: Terminated jobs are stopped VMs that can be restarted. |
Minimal changes to Slurm-like job script for submitting to cloud from HPC login nodes
[your-cnetid@midway3-login4 ~] cat job_script.sh
#!/bin/sh
#SBATCH -job-name=my-qc-run1
#SBATCH --account=liangjiang-gcp
#SBATCH --nodes=1
#SBATCH --time=05:00:00
#SBATCH --constraint=g1
# using skyway command to transfer data to the VM
skyway_transfer training.py input.data --cloud-path /tmp/project/
# inside the VM
source activate scicomp
python calculate.py > ~/output.txt
skyway_batch job_script.sh
Typical workflow #1: Interactive jobs
Typical workflow #2: Batch jobs
Direct access to the instances made easy
Launch & connect to the Jupyter server on the VM
Connect to the VM with VS Code
Summary
Skyway offers a flat platform to get access to cloud resources:
Next