Lightning-AI / Lightning-AI/pytorch-lightning

MLFlow Logger Makes a New Run When Resuming from hpc Checkpoint

Open
#6,205 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug checkpointing environment: slurm help wanted logger: mlflow priority: 2 won't fix
Dominant language
Python
Stars
31.4k
Forks
3.8k
Avg merge
6d 7h
Merged PRs (30d)
6

Description

🐛 Bug

Currently the MLFlowLogger creates a new run when resuming from an hpc checkpoint, e.g., after preemption by slurm and requeuing. Runs are an MLFlow concept that groups things in their UI, so when resuming after requeue, it should really be reusing the run ID. I think this can be patched into the hpc checkpoint using the logger which I believe exposes the run ID. This can also be seen on the v_num on the progress bar which changes after preemption (in general that v_num probably shouldnt be changing in this case). I'm happy to attempt to PR this if the owners agree that it's a bug.

To Reproduce

Use MLFlowLogger on a slurm cluster and watch the mlflow UI when preemption happens, there will be a new run created.

Expected behavior

Runs are grouped neatly on the MLFlow UI

Environment
  • CUDA:
    - GPU:
    - available: False
    - version: 10.2
  • Packages:
    - numpy: 1.20.1
    - pyTorch_debug: False
    - pyTorch_version: 1.7.1
    - pytorch-lightning: 1.2.0
    - tqdm: 4.57.0
  • System:
    - OS: Linux
    - architecture:
    - 64bit
    - ELF
    - processor: x86_64
    - python: 3.8.1
    - version: #1 SMP Thu Jan 21 16:15:07 EST 2021

cc @awaelchli @ananthsub @ninginthecloud @rohitgr7 @tchaton @akihironitta

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with MLFlowLogger on a Slurm cluster, then trace the MLFlowLogger and hpc checkpoint integration described in the report. Done means a resumed run reuses its MLFlow run ID and the progress-bar v_num does not change after preemption; verify the result in the MLFlow UI.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
hpc, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.