Source code for lightning.fabric.plugins.environments.kubeflow
# Copyright The Lightning AI team.## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.importloggingimportosfromlightning.fabric.plugins.environments.cluster_environmentimportClusterEnvironmentlog=logging.getLogger(__name__)
[docs]classKubeflowEnvironment(ClusterEnvironment):"""Environment for distributed training using the `PyTorchJob`_ operator from `Kubeflow`_ .. _PyTorchJob: https://www.kubeflow.org/docs/components/training/pytorch/ .. _Kubeflow: https://www.kubeflow.org """@propertydefcreates_processes_externally(self)->bool:returnTrue@propertydefmain_address(self)->str:returnos.environ["MASTER_ADDR"]@propertydefmain_port(self)->int:returnint(os.environ["MASTER_PORT"])
[docs]@staticmethoddefdetect()->bool:"""Returns ``True`` if the current process was launched using Kubeflow PyTorchJob."""required_env_vars={"KUBERNETES_PORT","MASTER_ADDR","MASTER_PORT","WORLD_SIZE","RANK"}# torchelastic sets these. Make sure we're not in torchelasticexcluded_env_vars={"GROUP_RANK","LOCAL_RANK","LOCAL_WORLD_SIZE"}env_vars=os.environ.keys()returnrequired_env_vars.issubset(env_vars)andexcluded_env_vars.isdisjoint(env_vars)
To analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. Read PyTorch Lightning's Privacy Policy.