Parallel File System
PB-scale POSIX file system mountable on GPU pods. Throughput tiers from 1 GB/s to 1 TB/s.
What it is
When object storage isn't enough — when your training script does random reads, mmap, or hits the file system harder than the warm-pool loader can mask — mount a parallel file system into your pod. POSIX semantics, no application changes.
When to use it
- Training datasets too large for local NVMe but too random-access for object storage.
- Shared scratch space across nodes in a multi-node job.
- Long-running notebook environments with heavy filesystem use.
Quickstart
asc pfs create scratch --region apac --capacity 100Ti --throughput 50GBs
asc pods run --gpu h100 --image my/img --mount-pfs scratch:/scratchfs = client.pfs.create(name='scratch', region='apac', capacity_tib=100, throughput_gbs=50)
client.pods.run(image='my/img', gpu='h100', mounts=[{'pfs': fs.id, 'path': '/scratch'}])const fs = await client.pfs.create({ name: 'scratch', region: 'apac', capacityTib: 100, throughputGbs: 50 });
await client.pods.run({ image: 'my/img', gpu: 'h100', mounts: [{ pfs: fs.id, path: '/scratch' }] });Limits & quotas
| Limit | Default | Burst | Notes |
|---|---|---|---|
| Min capacity | 10 TiB | — | |
| Max capacity | 10 PiB | — | Lift via sales |
| Throughput tiers | 1 / 10 / 50 / 200 / 1000 GB/s | — |
Pricing
See pricing. Pay-as-you-go, billed monthly via Stripe.
API surface
POST /v1/pfs— createGET /v1/pfs— listDELETE /v1/pfs/{id}— delete
Required scope(s): storage:write. See Scopes.
Security
All access is authenticated and scoped. See Auth & scopes and Network controls.