ci: guard Databricks T4 GPU pool migration AB#5478524 - #2579
ci: guard Databricks T4 GPU pool migration AB#5478524#2579ranadeepsingh wants to merge 2 commits into
Conversation
Require the stable SynapseML GPU pool to resolve to Standard_NC16as_T4_v3 before creating a Databricks cluster. This prevents the pipeline from silently returning to retired NCv3 hardware. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
|
Hey @ranadeepsingh 👋! We use semantic commit messages to streamline the release process. Examples of commit messages with semantic prefixes:
To test your commit locally, please follow our guild on building from source. |
There was a problem hiding this comment.
Pull request overview
This PR strengthens the Databricks GPU CI contract by ensuring the stable SynapseML GPU instance pool name (synapseml-build-14.3-gpu) resolves to the expected migrated T4 node type (Standard_NC16as_T4_v3) before creating GPU test clusters, and adds targeted regression coverage.
Changes:
- Add a fixed expected GPU pool node type constant and require the resolved pool to match it.
- Refactor pool ID lookup into a reusable
selectPoolIdhelper with clearer failure behavior. - Add a focused test covering the migrated T4 pool and a retired NCv3 regression case.
Show a summary per file
| File | Description |
|---|---|
| core/src/test/scala/com/microsoft/azure/synapse/ml/nbtest/DatabricksUtilities.scala | Enforces expected GPU pool node type when resolving the stable GPU pool ID; introduces selectPoolId helper. |
| core/src/test/scala/com/microsoft/azure/synapse/ml/nbtest/DatabricksUtilitiesSuite.scala | Adds tests validating correct pool selection for T4 and failure for NCv3 node type. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 1
- Review effort level: Low
Match both the stable pool name and expected T4 node type so duplicate Databricks pool names cannot make selection depend on API ordering. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2579 +/- ##
=======================================
Coverage 84.79% 84.79%
=======================================
Files 334 334
Lines 17801 17801
Branches 1619 1619
=======================================
Hits 15094 15094
Misses 2707 2707 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
The Databricks GPU job passes. The remaining six Python failures also reproduce on |
|
Hotfix #2580 has now passed the full Azure pipeline in build 228877170, including all six previously failing Python jobs and the Databricks GPU job. It is awaiting approval/merge; after it lands, this branch can be refreshed and |
Related Issues/PRs
What changes are proposed in this pull request?
Require the stable SynapseML Databricks GPU pool,
synapseml-build-14.3-gpu, to useStandard_NC16as_T4_v3before a GPU test cluster is created.node_type_id.How the pipeline migration works
synapseml-build-14.3-gpu; the pipeline does not hardcode a pool ID or VM name.0725-023302-axle5-pool-1a0ah38i.connection change.
Standard_NC6s_v3VMs, disks, and NICs.silently return CI to NCv3 or another unexpected SKU.
The active pool keeps one warm T4 worker, allows at most two workers, uses the CPU pool for the
driver, and retains the existing two-worker-to-one-worker stockout fallback from #2573.
How is this patch tested?
I have written tests and confirmed the proposed change works.
sbt "core/testOnly com.microsoft.azure.synapse.ml.nbtest.DatabricksUtilitiesSuite"sbt core/scalastyle "core/Test/scalastyle"black --check --extend-exclude 'docs/' .Live executor probe returned
Tesla T4, 15360 MiB.All three Databricks GPU notebooks passed on the T4 worker:
Does this PR change any dependencies?
Does this PR add a new feature? If so, have you added samples on website?