# solvers.CheckpointModel { #mlsysim.solvers.CheckpointModel }

```python
solvers.CheckpointModel()
```

Analyzes the storage constraints and I/O burst penalties of saving model states.

Training massive models requires saving hundreds of gigabytes (Weights +
Optimizer States) to persistent storage. This model calculates the time
spent blocked on I/O, subtracting from the cluster's Model FLOPs Utilization.

Literature Source:
1. Eisenman et al. (2022), "Check-N-Run: A Checkpointing System for
   Training Large Language Models."

## Methods

| Name | Description |
| --- | --- |
| [solve](#mlsysim.solvers.CheckpointModel.solve) | Solves for checkpoint size, write time, and resulting MFU penalty. |

### solve { #mlsysim.solvers.CheckpointModel.solve }

```python
solvers.CheckpointModel.solve(
    model,
    hardware,
    optimizer='adam',
    checkpoint_interval_hours=4.0,
    n_writers=1,
    filesystem_limit_gbs=500.0,
)
```

Solves for checkpoint size, write time, and resulting MFU penalty.

#### Parameters {.doc-section .doc-section-parameters}

| Name                 | Type   | Description                                                                                                                   | Default   |
|----------------------|--------|-------------------------------------------------------------------------------------------------------------------------------|-----------|
| n_writers            | int    | Number of parallel checkpoint writers (default 1). Distributed checkpointing (e.g., FSDP) shards the write across workers.    | `1`       |
| filesystem_limit_gbs | float  | Maximum aggregate filesystem write bandwidth in GB/s (default 500). Prevents over-optimistic scaling when n_writers is large. | `500.0`   |
