Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove DataLoader serialization (under fault tolerance) #16533

Merged
merged 7 commits into from
Jan 30, 2023

Conversation

carmocca
Copy link
Contributor

@carmocca carmocca commented Jan 27, 2023

What does this PR do?

Fault-tolerance is composed of several items:

  1. Automatic DataLoader state serialization (this)
  2. Manual DataLoader state serialization (this)
  3. Metrics/Logging results state (Remove result serialization (under fault tolerance) #16516)
  4. Sigterm handling to signal to terminate gracefully (SIGTERM handling is now unrelated to fault tolerance #16501)
  5. Save a checkpoint when it is signaled to terminate gracefully (Make the FaultToleranceCheckpoint callback opt-in #16512)

This PR removes (1) and (2). Parts of this might re-land in the future

This is the last of the fault-tolerance items.

Does your PR introduce any breaking changes? If yes, please list them.

Removes support for serializing the DataLoader state under the PL_FAULT_TOLERANCE_TRAINING environment variable

cc @carmocca @akihironitta @Borda @justusschock @awaelchli

@carmocca carmocca added refactor breaking change Includes a breaking change fault tolerance experimental pl Generic label for PyTorch Lightning package labels Jan 27, 2023
@carmocca carmocca added this to the 2.0 milestone Jan 27, 2023
@carmocca carmocca self-assigned this Jan 27, 2023
@github-actions github-actions bot added the ci Continuous Integration label Jan 27, 2023
@carmocca carmocca marked this pull request as ready for review January 30, 2023 12:41
@github-actions
Copy link
Contributor

github-actions bot commented Jan 30, 2023

⚡ Required checks status: All passing 🟢

Groups summary

🟢 pytorch_lightning: Tests workflow
Check ID Status
pl-cpu (macOS-11, pytorch, 3.8, 1.11) success
pl-cpu (macOS-11, pytorch, 3.9, 1.12) success
pl-cpu (macOS-11, pytorch, 3.10, 1.13) success
pl-cpu (macOS-11, pytorch, 3.8, 1.10, oldest) success
pl-cpu (ubuntu-20.04, pytorch, 3.8, 1.10) success
pl-cpu (ubuntu-20.04, pytorch, 3.9, 1.11) success
pl-cpu (ubuntu-20.04, pytorch, 3.10, 1.12) success
pl-cpu (ubuntu-20.04, pytorch, 3.10, 1.13) success
pl-cpu (ubuntu-20.04, pytorch, 3.7, 1.10, oldest) success
pl-cpu (windows-2022, pytorch, 3.9, 1.11) success
pl-cpu (windows-2022, pytorch, 3.10, 1.12) success
pl-cpu (windows-2022, pytorch, 3.10, 1.13) success
pl-cpu (windows-2022, pytorch, 3.7, 1.10, oldest) success
pl-cpu (slow, macOS-11, pytorch, 3.7, 1.11) success
pl-cpu (slow, ubuntu-20.04, pytorch, 3.7, 1.11) success
pl-cpu (slow, windows-2022, pytorch, 3.7, 1.11) success
pl-cpu (macOS-11, lightning, 3.8, 1.13) success
pl-cpu (ubuntu-20.04, lightning, 3.8, 1.13) success
pl-cpu (windows-2022, lightning, 3.8, 1.13) success

These checks are required after the changes to src/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py, src/pytorch_lightning/loops/epoch/training_epoch_loop.py, src/pytorch_lightning/trainer/connectors/data_connector.py, src/pytorch_lightning/trainer/connectors/logger_connector/result.py, src/pytorch_lightning/trainer/states.py, src/pytorch_lightning/trainer/supporters.py, src/pytorch_lightning/trainer/trainer.py, src/pytorch_lightning/utilities/auto_restart.py, src/pytorch_lightning/utilities/data.py, src/pytorch_lightning/utilities/enums.py, src/pytorch_lightning/utilities/fetching.py, src/pytorch_lightning/utilities/imports.py, tests/tests_pytorch/loops/optimization/test_optimizer_loop.py, tests/tests_pytorch/loops/test_loops.py, tests/tests_pytorch/models/test_restore.py, tests/tests_pytorch/trainer/test_supporters.py, tests/tests_pytorch/utilities/test_auto_restart.py, tests/tests_pytorch/utilities/test_fetching.py.

🟢 pytorch_lightning: Azure GPU
Check ID Status
pytorch-lightning (GPUs) success

These checks are required after the changes to .azure/gpu-tests-pytorch.yml, examples/run_pl_examples.sh, src/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py, src/pytorch_lightning/loops/epoch/training_epoch_loop.py, src/pytorch_lightning/trainer/connectors/data_connector.py, src/pytorch_lightning/trainer/connectors/logger_connector/result.py, src/pytorch_lightning/trainer/states.py, src/pytorch_lightning/trainer/supporters.py, src/pytorch_lightning/trainer/trainer.py, src/pytorch_lightning/utilities/auto_restart.py, src/pytorch_lightning/utilities/data.py, src/pytorch_lightning/utilities/enums.py, src/pytorch_lightning/utilities/fetching.py, src/pytorch_lightning/utilities/imports.py, tests/tests_pytorch/loops/optimization/test_optimizer_loop.py, tests/tests_pytorch/loops/test_loops.py, tests/tests_pytorch/models/test_restore.py, tests/tests_pytorch/trainer/test_supporters.py, tests/tests_pytorch/utilities/test_auto_restart.py, tests/tests_pytorch/utilities/test_fetching.py.

🟢 pytorch_lightning: Azure HPU
Check ID Status
pytorch-lightning (HPUs) success

These checks are required after the changes to src/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py, src/pytorch_lightning/loops/epoch/training_epoch_loop.py, src/pytorch_lightning/trainer/connectors/data_connector.py, src/pytorch_lightning/trainer/connectors/logger_connector/result.py, src/pytorch_lightning/trainer/states.py, src/pytorch_lightning/trainer/supporters.py, src/pytorch_lightning/trainer/trainer.py, src/pytorch_lightning/utilities/auto_restart.py, src/pytorch_lightning/utilities/data.py, src/pytorch_lightning/utilities/enums.py, src/pytorch_lightning/utilities/fetching.py, src/pytorch_lightning/utilities/imports.py, tests/tests_pytorch/loops/optimization/test_optimizer_loop.py, tests/tests_pytorch/loops/test_loops.py, tests/tests_pytorch/models/test_restore.py, tests/tests_pytorch/trainer/test_supporters.py, tests/tests_pytorch/utilities/test_auto_restart.py, tests/tests_pytorch/utilities/test_fetching.py.

🟢 pytorch_lightning: Azure IPU
Check ID Status
pytorch-lightning (IPUs) success

These checks are required after the changes to src/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py, src/pytorch_lightning/loops/epoch/training_epoch_loop.py, src/pytorch_lightning/trainer/connectors/data_connector.py, src/pytorch_lightning/trainer/connectors/logger_connector/result.py, src/pytorch_lightning/trainer/states.py, src/pytorch_lightning/trainer/supporters.py, src/pytorch_lightning/trainer/trainer.py, src/pytorch_lightning/utilities/auto_restart.py, src/pytorch_lightning/utilities/data.py, src/pytorch_lightning/utilities/enums.py, src/pytorch_lightning/utilities/fetching.py, src/pytorch_lightning/utilities/imports.py, tests/tests_pytorch/loops/optimization/test_optimizer_loop.py, tests/tests_pytorch/loops/test_loops.py, tests/tests_pytorch/models/test_restore.py, tests/tests_pytorch/trainer/test_supporters.py, tests/tests_pytorch/utilities/test_auto_restart.py, tests/tests_pytorch/utilities/test_fetching.py.

🟢 pytorch_lightning: Docs
Check ID Status
make-doctest (pytorch) success
make-html (pytorch) success

These checks are required after the changes to src/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py, src/pytorch_lightning/loops/epoch/training_epoch_loop.py, src/pytorch_lightning/trainer/connectors/data_connector.py, src/pytorch_lightning/trainer/connectors/logger_connector/result.py, src/pytorch_lightning/trainer/states.py, src/pytorch_lightning/trainer/supporters.py, src/pytorch_lightning/trainer/trainer.py, src/pytorch_lightning/utilities/auto_restart.py, src/pytorch_lightning/utilities/data.py, src/pytorch_lightning/utilities/enums.py, src/pytorch_lightning/utilities/fetching.py, src/pytorch_lightning/utilities/imports.py.

🟢 mypy
Check ID Status
mypy success

These checks are required after the changes to src/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py, src/pytorch_lightning/loops/epoch/training_epoch_loop.py, src/pytorch_lightning/trainer/connectors/data_connector.py, src/pytorch_lightning/trainer/connectors/logger_connector/result.py, src/pytorch_lightning/trainer/states.py, src/pytorch_lightning/trainer/supporters.py, src/pytorch_lightning/trainer/trainer.py, src/pytorch_lightning/utilities/auto_restart.py, src/pytorch_lightning/utilities/data.py, src/pytorch_lightning/utilities/enums.py, src/pytorch_lightning/utilities/fetching.py, src/pytorch_lightning/utilities/imports.py.

🟢 install
Check ID Status
install-pkg (ubuntu-22.04, app, 3.7) success
install-pkg (ubuntu-22.04, app, 3.10) success
install-pkg (ubuntu-22.04, fabric, 3.7) success
install-pkg (ubuntu-22.04, fabric, 3.10) success
install-pkg (ubuntu-22.04, pytorch, 3.7) success
install-pkg (ubuntu-22.04, pytorch, 3.10) success
install-pkg (ubuntu-22.04, lightning, 3.7) success
install-pkg (ubuntu-22.04, lightning, 3.10) success
install-pkg (ubuntu-22.04, notset, 3.7) success
install-pkg (ubuntu-22.04, notset, 3.10) success
install-pkg (macOS-12, app, 3.7) success
install-pkg (macOS-12, app, 3.10) success
install-pkg (macOS-12, fabric, 3.7) success
install-pkg (macOS-12, fabric, 3.10) success
install-pkg (macOS-12, pytorch, 3.7) success
install-pkg (macOS-12, pytorch, 3.10) success
install-pkg (macOS-12, lightning, 3.7) success
install-pkg (macOS-12, lightning, 3.10) success
install-pkg (macOS-12, notset, 3.7) success
install-pkg (macOS-12, notset, 3.10) success
install-pkg (windows-2022, app, 3.7) success
install-pkg (windows-2022, app, 3.10) success
install-pkg (windows-2022, fabric, 3.7) success
install-pkg (windows-2022, fabric, 3.10) success
install-pkg (windows-2022, pytorch, 3.7) success
install-pkg (windows-2022, pytorch, 3.10) success
install-pkg (windows-2022, lightning, 3.7) success
install-pkg (windows-2022, lightning, 3.10) success
install-pkg (windows-2022, notset, 3.7) success
install-pkg (windows-2022, notset, 3.10) success

These checks are required after the changes to src/pytorch_lightning/loops/epoch/evaluation_epoch_loop.py, src/pytorch_lightning/loops/epoch/training_epoch_loop.py, src/pytorch_lightning/trainer/connectors/data_connector.py, src/pytorch_lightning/trainer/connectors/logger_connector/result.py, src/pytorch_lightning/trainer/states.py, src/pytorch_lightning/trainer/supporters.py, src/pytorch_lightning/trainer/trainer.py, src/pytorch_lightning/utilities/auto_restart.py, src/pytorch_lightning/utilities/data.py, src/pytorch_lightning/utilities/enums.py, src/pytorch_lightning/utilities/fetching.py, src/pytorch_lightning/utilities/imports.py.

🟢 link-check
Check ID Status
markdown-link-check success

These checks are required after the changes to src/pytorch_lightning/CHANGELOG.md.


Thank you for your contribution! 💜

Note
This comment is automatically generated and updates for 60 minutes every 180 seconds. If you have any other questions, contact carmocca for help.

@mergify mergify bot added the ready PRs ready to be merged label Jan 30, 2023
Copy link
Contributor

@akihironitta akihironitta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change in CI looks good to me!

@carmocca carmocca enabled auto-merge (squash) January 30, 2023 15:11
@carmocca carmocca merged commit a78412f into master Jan 30, 2023
@carmocca carmocca deleted the refactor/remove-dataloader-state-serialization branch January 30, 2023 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking change Includes a breaking change ci Continuous Integration experimental fault tolerance pl Generic label for PyTorch Lightning package ready PRs ready to be merged refactor
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants