Skip to content

Skip reconciliate_processes if used within a cluster environment that creates processes externally#9389

Merged
ananthsub merged 27 commits intoLightning-AI:masterfrom
ananthsub:fix/reconciliate-process-cluster-env
Sep 15, 2021
Merged

Skip reconciliate_processes if used within a cluster environment that creates processes externally#9389
ananthsub merged 27 commits intoLightning-AI:masterfrom
ananthsub:fix/reconciliate-process-cluster-env

Conversation

@ananthsub
Copy link
Copy Markdown
Contributor

@ananthsub ananthsub commented Sep 9, 2021

What does this PR do?

Fixes #9388

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

Before submitting

  • Was this discussed/approved via a GitHub issue? (not for typos and docs)
  • Did you read the contributor guideline, Pull Request section?
  • Did you make sure your PR does only one thing, instead of bundling different changes together?
  • Did you make sure to update the documentation with your changes? (if necessary)
  • Did you write any new necessary tests? (not for typos and docs)
  • Did you verify new and existing tests pass locally with your changes?
  • Did you list all the breaking changes introduced by this pull request?
  • Did you update the CHANGELOG? (not for typos, docs, test updates, or internal minor changes/refactorings)

PR review

Anyone in the community is welcome to review the PR.
Before you start reviewing make sure you have read Review guidelines. In short, see the following bullet-list:

  • Is this pull request ready for review? (if not, please submit in draft mode)
  • Check that all items from Before submitting are resolved
  • Make sure the title is self-explanatory and the description concisely explains the PR
  • Add labels and milestones (and optionally projects) to the PR so it can be classified

Did you have fun?

Make sure you had fun coding 🙃

@ananthsub ananthsub added bug Something isn't working distributed Generic distributed-related topic labels Sep 9, 2021
@ananthsub ananthsub changed the title [RFC] Skip reconciliate_processes if used within a cluster environment that creates processes externally Skip reconciliate_processes if used within a cluster environment that creates processes externally Sep 9, 2021
@ananthsub ananthsub marked this pull request as ready for review September 9, 2021 21:19
@ananthsub ananthsub added this to the v1.4.x milestone Sep 9, 2021
awaelchli
awaelchli previously approved these changes Sep 10, 2021
Copy link
Copy Markdown
Contributor

@awaelchli awaelchli left a comment

Choose a reason for hiding this comment

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

req. review from @tchaton

Comment thread CHANGELOG.md Outdated
@mergify mergify Bot added the ready to be merged PRs ready to be merged label Sep 10, 2021
@codecov
Copy link
Copy Markdown

codecov Bot commented Sep 10, 2021

Codecov Report

Merging #9389 (d1804bc) into master (81687aa) will decrease coverage by 4%.
The diff coverage is 0%.

❗ Current head d1804bc differs from pull request most recent head 93b389a. Consider uploading reports for the commit 93b389a to get more accurate results

@@           Coverage Diff           @@
##           master   #9389    +/-   ##
=======================================
- Coverage      93%     89%    -4%     
=======================================
  Files         180     180            
  Lines       14965   15065   +100     
=======================================
- Hits        13904   13370   -534     
- Misses       1061    1695   +634     

Copy link
Copy Markdown
Contributor

@tchaton tchaton left a comment

Choose a reason for hiding this comment

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

LGTM !

@ananthsub ananthsub enabled auto-merge (squash) September 10, 2021 15:39
@ananthsub
Copy link
Copy Markdown
Contributor Author

ananthsub commented Sep 10, 2021

@tchaton
Copy link
Copy Markdown
Contributor

tchaton commented Sep 11, 2021

Hey @ananthsub. Interesting. Mind taking CustomException out of the test ? The test should run as special one, so without TorchElastic.

@ananthsub ananthsub disabled auto-merge September 11, 2021 18:34
@ananthsub
Copy link
Copy Markdown
Contributor Author

ah @tchaton @awaelchli - I believe it's due to the check in the LightningEnvironment here: https://github.com/PyTorchLightning/pytorch-lightning/blob/b294c5760eee30a995fcd400127be209b12c4d7c/pytorch_lightning/plugins/environments/lightning_environment.py#L43-L49

LOCAL_RANK is added to the environment here: https://github.com/PyTorchLightning/pytorch-lightning/blob/b294c5760eee30a995fcd400127be209b12c4d7c/pytorch_lightning/plugins/training_type/ddp.py#L198

So while cluster_environment.creates_children() is False at the beginning of the script, it is True at the point of deadlock detection. This leads to the deadlock detection being disabled, causing the test to fail.

This was added in #7480

Comment thread pytorch_lightning/plugins/environments/lightning_environment.py Outdated
@awaelchli
Copy link
Copy Markdown
Contributor

So while cluster_environment.creates_children() is False at the beginning of the script, it is True at the point of deadlock detection. This leads to the deadlock detection being disabled, causing the test to fail.

This was added in #7480

You are right, I should have captured the value like you do in this PR

@mergify mergify Bot removed the has conflicts label Sep 15, 2021
Comment thread pytorch_lightning/plugins/training_type/ddp.py Outdated
Comment thread pytorch_lightning/plugins/training_type/ddp.py Outdated
Comment thread pytorch_lightning/plugins/environments/lightning_environment.py Outdated
@tchaton tchaton requested a review from awaelchli September 15, 2021 08:06
@tchaton
Copy link
Copy Markdown
Contributor

tchaton commented Sep 15, 2021

Hey @ananthsub,

Do you see blockers to introduce an env variable to enable Lightning to kill the processes even with a cluster env.

Something like PL_PREVENT_DEADLOCK_MECHANISM='1'

I believe this would be useful for Grid.ai.

Best,
T.C

Comment thread pytorch_lightning/plugins/training_type/ddp.py Outdated
Comment thread pytorch_lightning/plugins/training_type/ddp.py Outdated
@mergify mergify Bot added the ready to be merged PRs ready to be merged label Sep 15, 2021
@ananthsub
Copy link
Copy Markdown
Contributor Author

Hey @ananthsub,

Do you see blockers to introduce an env variable to enable Lightning to kill the processes even with a cluster env.

Something like PL_PREVENT_DEADLOCK_MECHANISM='1'

I believe this would be useful for Grid.ai.

Best,
T.C

@tchaton @awaelchli could you take another look to confirm the opt-in deadlock detection looks reasonable?

Comment thread pytorch_lightning/plugins/training_type/ddp.py Outdated
Copy link
Copy Markdown
Contributor

@tchaton tchaton left a comment

Choose a reason for hiding this comment

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

LGTM !

Comment thread CHANGELOG.md
Comment thread CHANGELOG.md
Comment thread pytorch_lightning/plugins/training_type/ddp.py
Comment thread pytorch_lightning/plugins/training_type/ddp.py
Comment thread pytorch_lightning/plugins/training_type/ddp.py Outdated
@ananthsub ananthsub merged commit 08b591f into Lightning-AI:master Sep 15, 2021
tchaton pushed a commit that referenced this pull request Sep 21, 2021
… creates processes externally (#9389)

* [RFC] Skip reconciliate_processes if used within a cluster environment that creates processes externally
carmocca pushed a commit that referenced this pull request Sep 21, 2021
… creates processes externally (#9389)

* [RFC] Skip reconciliate_processes if used within a cluster environment that creates processes externally
lexierule pushed a commit that referenced this pull request Sep 22, 2021
… creates processes externally (#9389)

* [RFC] Skip reconciliate_processes if used within a cluster environment that creates processes externally
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working distributed Generic distributed-related topic ready to be merged PRs ready to be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[DDP] Process that runs pytorch lightning trainer SIGKILLs its peers

4 participants