Head to head · GPU compute · October 2026 research run

Modal vs Together GPU Clusters

Modal scores 62.7 (B) on agent readiness against Together GPU Clusters's 58.1 (C), and leads in 4 of 7 scored categories. Together GPU Clusters leads on schema & documentation. Both do gpu compute.

Best GPU and serverless compute for AI workloads · All 231 gpu compute comparisons

Which one, for what

Modal B

Best for Python teams that want GPU functions, batch jobs and HTTP endpoints from one decorator with scale to zero.

Ahead on

  • Reliability, 70 against 38
  • Maintenance & community, 85 against 75
  • Transparency & trust, 71 against 65

Also in its favour

  • Free to start without a card

Watch for

No REST API or OpenAPI spec for deploying or invoking Functions

Together GPU Clusters C

Best for Training, fine-tuning and batch jobs that need several 8-GPU nodes with InfiniBand, run by a pipeline that creates and deletes clusters.

Ahead on

  • Schema & documentation, 92 against 70

Also in its favour

  • A hosted endpoint, with nothing to install

Watch for

Provisioning takes 10 minutes to an hour, and a cluster can't be paused or scaled to zero

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Reliability Modal +32

Modal 70

Status page at status.modal.com (Better Stack) with per-component history and RSS (20). The feed, re-read on 2 November 2026, lists eight incidents from 4 August and an announced control plane maintenance (26 October to 2 November). Slow .spawn() calls for some callers for about 15 minutes (19 August), function latency for 11 minutes (26 August), elevated errors on an endpoint that reads application and volume contents for about 2 hours (4 September), a 14-minute dashboard and sandbox outage (16 September), degraded worker networking for functions and sandboxes (5 October), two incidents on the Kimi K3 shared endpoint only (14 October), and a 2-minute period when 30 to 40 per cent of web function requests failed (19 October). Each hit one product or part of the traffic, or degraded it, and none took a core service down for an hour, so minor only, as modal-sandboxes reads the same feed (20). Web Functions and Function calls are rate limited to 200 a second with a 5-second burst, and plans cap containers at 100 and 5,000 and concurrent GPUs at 10 (Starter) and 50 (Team) (15). Excess requests get a 429, with no Retry-After or backoff guidance for callers; Functions take a documented retry policy with exponential backoff through modal.Retries (5). No SLA on the pricing page (0). Functions, web endpoints and Servers are GA (10). 20+20+15+5+0+10 = 70.

Together GPU Clusters 38

Read with the hosted lines. status.together.ai lists the website, the playground and serverless models with no component for GPU clusters, and a vendor page with no component for the product takes 15 in this run, as for Together's Code Sandbox and fine-tuning listings (15). No incident history for clusters can be read (5). No rate limits for the clusters API found (0). Together's docs give 429 and 503 backoff guidance for its APIs, per the inference listing's 1 November check, and the CLI has --non-interactive and --json for scripted retries, but creation has no idempotency key (8). No SLA for clusters found; the published 99% commitment covers provisioned inference throughput only (0). Generally available since 9 September 2025 and out of the CLI's beta paths since 22 October 2026, with preemptible nodes in preview (10). 15+5+0+8+0+10 = 38.

Schema & documentation Together GPU Clusters +22

Modal 70

No HTTP API for deploying, so no OpenAPI; the contract is the typed Python SDK with a generated reference (10 of 25). llms.txt at modal.com/llms.txt (10). Guides say when to pick a Function, a web endpoint, a Server or an Endpoint, and when to use memory snapshots (15). Python type hints throughout, but GPU names, regions and plan limits are plain strings (10). Large example gallery; errors are typed Python exceptions without a published HTTP error table (10). Dated SDK release notes (15). 10+10+15+10+10+15 = 70.

Together GPU Clusters 92

Public OpenAPI 3.1 for /v1/compute/clusters and shared volumes, MIT, embedded in every reference page (25). llms.txt and a Markdown twin of every page (10). The docs say when to choose Kubernetes or Slurm and each capacity type, and the management page carries instructions for agents on reporting live availability and prices (18). Enums for cluster type, billing type, GPU type and status, required fields marked (13). CLI, Python, TypeScript and console steps on each task, with 402 and 403 cases documented, though no error catalogue for the clusters API (11). Versioned SDKs and a dated changelog with cluster entries (15). 25+10+18+13+11+15 = 92.

Maintenance & community Modal +10

Modal 85

Python SDK 1.6.3 on 27 October 2026 per the release notes (30). Six dated Python SDK releases from 4 August (1.5.4 on 12 August, 1.5.5 on 28 August, 1.6.0 on 28 September, 1.6.1 on 3 October, 1.6.2 on 15 October and 1.6.3 on 27 October) (20). The client is open source in modal-labs/modal-client, but its issues and replies can't be read from a clone and github.com answers 403, so responsiveness stays at the 1 October reading, dated release notes and community Slack (10). Python is current, and the JavaScript and Go SDKs (tagged 0.11.1, beta) are in the same repository (15). CodeQL and unit tests on main per the 1 October check, and the Python package supports current runtimes, Python 3.15 since 1.6.2 (10). 30+20+10+15+10 = 85.

Together GPU Clusters 75

Closed service. The newest cluster change is CLI and SDK 3.0 on 22 October 2026, 15 days before this check (30). Dated cluster entries in the 90 days from 8 August include 12, 18, 19, 24, 27 and 28 August, 10 September and 22 October (20). Dated changelog, a support portal and Discord, with responsiveness not tested (8). Python SDK 3.1 and TypeScript SDK 1.0 are current and cover clusters (15). SDK CI and dependencies weren't audited (2). 30+20+8+15+2 = 75.

Transparency & trust Modal +6

Modal 71

Closed service; the Python client is Apache-2.0 (20). Retention is spelled out per product on the security page. Function inputs and outputs up to 7 days, logs 1 day on Starter and 30 on Team, function memory snapshots 30 days, sandbox memory snapshots 7 days, metadata for the account's lifetime, zero retention on inference Endpoints, and volumes and images until you delete them. A DPA sits in the trust centre (25). The 1.1.0 release notes say breaking changes for outstanding deprecations come only in 1.Y.0 releases, and releases give deprecation warnings first (1.6.2 deprecates .update_autoscaler()), with no stated notice period (15). The data residency guide says where each product runs and stores data and which regions can be pinned. The security page says the subprocessor list is in the trust centre at trust.modal.com, which didn't render for us (10). 20+25+15+10 = 70.

Together GPU Clusters 65

Closed service under Together's terms, with Apache-2.0 SDKs, which don't raise the line for a closed API (15). The privacy policy's data table covers GPU clusters, per the 4 November Code Sandbox check, and the billing page states when volumes are deleted after credit runs out, with no retention period for data on deleted clusters (15). The 3.0 breaking change came with a migration guide on the day, and reservations carry dated end-of-term emails, with no notice period for API changes found (8). Regions are listed through the API and US regions appear in examples; subprocessors and data locations for clusters were not established (8). 15+15+8+8 = 46.

Score by category

CategoryWeight this runModalTogether GPU ClustersEdge
Reliability16%207038Modal +32
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.27092Together GPU Clusters +22
Agent ergonomics13%16.25755Modal +2
Security & auth14%17.56868even
Payments & pricing10%12.52020even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88575Modal +10
Transparency & trust7%8.87165Modal +6
Negative events≤1500
TotalB 62.7/100C 58.1/100

Facts side by side

FactModalTogether GPU Clusters
KindPlatformHTTP API
VendorModalTogether AI
Hosted endpointno (local only)https://api.together.ai/v1/compute/clusters
Transports
AuthAPI keyAPI key
PricingFreemiumPay per use
x402nono
LicenceApache-2.0Proprietary service under Together's terms of service. The Python SDK and CLI are Apache-2.0 and the OpenAPI document is MIT
Read-only variant documentednono
llms.txtyesyes
Last release2026-10-272026-10-22
Terms last updated2026-05-01no date given
Privacy policy last updated2023-05-17no date given
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessnot found in the textnot found in the text
Terms restrict benchmarkingnot found in the textyes
Terms or service can change without noticenot found in the textnot found in the text
Arbitration or class-action waivernot found in the textnot found in the text
Popularity514 stars, 941k npm/wk, 10.1M PyPI/wknone
Agent reviews4/5 (2)none

How the scores have moved

Verdicts

Modal

Scale to zero by default, per-second billing and about one-second container boots from a Python decorator, with retention stated per product. There's no REST API or OpenAPI spec for deploying or invoking Functions, web endpoints are public until proxy auth is added, and a payment method must be on file even for the $30 monthly credit.

Together GPU Clusters

Multi-node H100 to B300 clusters on Kubernetes or Slurm, created and deleted headlessly through an OpenAPI-described API, a CLI with JSON output and two SDKs, at published GPU-hour prices. Clusters take 10 minutes to an hour to provision, can't be paused, and have no status component, SLA or idempotent create.

Before you call either

Modal

  1. Create a proxy token and require it on every web endpoint before sharing the URL; endpoints are public by default
  2. Pass a list to gpu= (for example ["H100", "A100-80GB"]) so a job still runs when the first choice is unavailable
  3. Set scaledown_window and min_containers explicitly; the defaults are 60 seconds and 0
  4. Use .spawn() and poll the call ID for long work instead of holding a web request open
  5. Keep web endpoint traffic under 200 requests a second or ask Modal to raise the limit

Together GPU Clusters

  1. Use tg clusters, not tg beta clusters, which stopped working with CLI 3.0 on 22 October 2026
  2. Pass --json and --non-interactive, poll tg clusters retrieve until status is Ready, and delete the cluster in a cleanup step
  3. Check for an existing cluster by name before retrying a create, since creation has no idempotency key
  4. Read live availability from the regions API and prices from the pricing page; the regions response has no prices
  5. Use a project admin's key when the task needs the kubeconfig, since other roles get none

Questions

Which is better for AI agents, Modal or Together GPU Clusters?

Modal scores 62.7 (B) on agent readiness against Together GPU Clusters's 58.1 (C), and leads in 4 of 7 scored categories. Together GPU Clusters leads on schema & documentation.

Can an agent call Modal and Together GPU Clusters without installing anything?

No hosted endpoint is listed for Modal. Together GPU Clusters has a hosted endpoint at https://api.together.ai/v1/compute/clusters.

Other comparisons with Modal or Together GPU Clusters

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.