The compute backbone for domain-driven simulation apps.
BYOC (Bring Your Own Cloud) allows you to launch and manage compute machines directly on your own Google Cloud Platform (GCP) account while using Inductiva's simulation capabilities. This gives you:
BYOC is designed with security as a priority:
Inductiva can see machine information reported by the task-runner for monitoring and pricing purposes:
However, Inductiva cannot see your GCP credentials, billing information, or access your GCP console.
You need the Compute Instance Admin (v1) role, or a custom role with these specific permissions:
compute.instances.create - To create VMscompute.instances.delete - To delete VMs (including auto-termination)compute.instances.setMetadata - To set startup script and configuration# Linux/macOS
curl https://sdk.cloud.google.com | bash
exec -l $SHELL
gcloud init
gcloud services enable compute.googleapis.com
gcloud auth list
gcloud config get-value project
You need to enable the Compute Engine API (compute.googleapis.com) in your GCP project.
Simply add byoc=True to your machine group creation:
import inductiva
mg = inductiva.resources.MachineGroup(
provider="GCP",
machine_type="c2d-highcpu-8",
spot=True,
byoc=True, # This enables BYOC
)
Current limitation: BYOC machine groups only support one VM per group (unlike regular machine groups).
Workaround: Create multiple machine groups in a loop:
for i in range(3):
mg = inductiva.resources.MachineGroup(
provider="GCP",
machine_type="c2d-highcpu-8",
spot=True,
byoc=True,
)
# Use each machine group for simulations
By default, BYOC VMs automatically terminate after 3 minutes of idle time to prevent unexpected charges. You can:
mg = inductiva.resources.MachineGroup(
# ... other parameters ...
max_idle_time=10 # 10 minutes
)
mg = inductiva.resources.MachineGroup(
# ... other parameters ...
max_idle_time=None # No auto-termination
)
⚠️ Warning: Disabling auto-termination removes the safety mechanism. You're fully responsible for manually terminating machines.
Unlike Inductiva's managed infrastructure, BYOC doesn't support automatic disk resizing. You must specify the disk size upfront:
mg = inductiva.resources.MachineGroup(
provider="GCP",
machine_type="c2d-highcpu-8",
spot=True,
byoc=True,
data_disk_gb=100 # Specify disk size in GB
)
Important: If your simulation runs out of disk space, it will crash. Always estimate your storage requirements and add a safety margin.
You are responsible for all costs incurred by VMs running in your GCP account. This includes:
Inductiva doesn't charge for the compute resources (since they run in your account), but standard Inductiva usage fees still apply for simulation services.
This is a current limitation in the alpha version. Cost calculations always report 0 for BYOC machine groups.
gcloud init to set up authenticationgcloud auth listgcloud config get-value projectcompute.instances.createcompute.instances.deletecompute.instances.setMetadataCurrent limitation: Only Inductiva storage is currently supported in the alpha version.
Coming soon: GCP storage integration will be available in future releases.
inductiva task-runner launch byoc-gcp-machine \
--provider gcp \
--machine-type c2d-highcpu-8 \
--spot
inductiva task-runner launch byoc-gcp-machine \
--provider gcp \
--machine-type c2d-highcpu-8 \
--data-disk-gb 100 \
--spot
inductiva task-runner launch short-lived-machine \
--provider gcp \
--machine-type c2d-highcpu-8 \
--max-idle-time 5 \
--spot
Alpha version limitations:
num_machines support)