Skip to content

Add support for latest-generation Google Cloud machine families#6841

Open
sosoihd wants to merge 1 commit intonextflow-io:masterfrom
sosoihd:feature/add-support-of-new-general-purpose-vm-families
Open

Add support for latest-generation Google Cloud machine families#6841
sosoihd wants to merge 1 commit intonextflow-io:masterfrom
sosoihd:feature/add-support-of-new-general-purpose-vm-families

Conversation

@sosoihd
Copy link

@sosoihd sosoihd commented Feb 18, 2026

Add support for latest-generation Google Cloud machine families #6614

Problem

1. Missing support for latest-generation machine families

Google Cloud has introduced several new general-purpose machine families that are not currently supported by Nextflow:

These families offer significant improvements in:

  • Price-performance ratio (up to 10% better than previous generations)
  • Memory bandwidth
  • Network throughput
  • Energy efficiency

Without this support, users cannot leverage:

  • Latest Intel Sapphire Rapids processors (C4, N4)
  • Latest AMD EPYC Genoa processors (C4A, C4D, N4A, N4D)
  • Improved performance characteristics of these newer families

2. Inability to specify boot disk type

Currently, Nextflow only allows configuring the boot disk size via google.batch.bootDiskSize, but not the disk type. This creates several issues:

Compatibility problems:

  • The new C4, C4A, C4D, N4, N4A, and N4D families do not support pd-balanced disks (the Google Cloud default)
  • These families require alternative disk types like hyperdisk-balanced or pd-ssd
  • This makes it impossible to use these new machine families at all

Performance optimization:

  • High-I/O workloads may benefit from pd-ssd (higher IOPS)
  • Cost-sensitive workflows may prefer pd-standard (lower cost)
  • Users cannot optimize disk performance for their specific workloads

Reference: Google Cloud Disk Types Documentation

Solution

This PR addresses both issues with a comprehensive solution:

1. Add support for latest-generation machine families

Machine type recognition:

  • Added C4, C4A, C4D, N4, N4A, N4D families
  • Updated local SSD handling for C4/C4A/C4D families with -lssd suffix

Testing:

  • Added comprehensive tests for all new machine families
  • Verified local SSD behavior (supported/not supported) per family

Changes

File Change
GoogleBatchMachineTypeSelector.groovy Add HYPERDISK_ONLY_FAMILIES list, isHyperdiskOnly() method, C4/C4A/C4D -lssd handling
GoogleBatchTaskHandler.groovy Auto-set hyperdisk-balanced boot disk for Hyperdisk-only families
GoogleBatchMachineTypeSelectorTest.groovy Tests for new family selection, isHyperdiskOnly(), C4/C4A/C4D local SSD
GoogleBatchTaskHandlerTest.groovy Tests for Hyperdisk boot disk auto-configuration and standard family non-application

Tests

  • GoogleBatchMachineTypeSelectorTest — verifies isHyperdiskOnly() returns true for C4/C4A/C4D/N4/N4A/N4D, false for N1/N2/E2/C2
  • GoogleBatchMachineTypeSelectorTest — verifies C4/C4A/C4D -lssd types return MemoryUnit(0) (pre-attached, not configurable)
  • GoogleBatchMachineTypeSelectorTest — verifies new families are selectable when explicitly requested
  • GoogleBatchTaskHandlerTest — verifies boot disk type is set to hyperdisk-balanced for C4 family
  • GoogleBatchTaskHandlerTest — verifies boot disk type is not set for standard families (N2)

References

refactor(google-batch): introduce 'HYPERDISK_ONLY_FAMILIES' constant to identify machine types that only support Hyperdisk disk types.
feat(google-batch): automatically configure 'hyperdisk-balanced' as boot disk type for Hyperdisk-only machine families.
fix(google-batch): correctly calculate local SSD size for 'c4', 'c4a', and 'c4d' machine types.
test(google-batch): add unit tests for 'isHyperdiskOnly' method in 'GoogleBatchMachineTypeSelector'.
test(google-batch): add integration tests to verify Hyperdisk boot disk configuration in 'GoogleBatchTaskHandler'.

Signed-off-by: Sofiane Ihaddadene <sosoihd@hotmail.fr>
@netlify
Copy link

netlify bot commented Feb 18, 2026

Deploy Preview for nextflow-docs-staging canceled.

Name Link
🔨 Latest commit ce5efe5
🔍 Latest deploy log https://app.netlify.com/projects/nextflow-docs-staging/deploys/6995bd5b2831c900086b6bc2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments