---
title: LSFEnvironment
description: An environment for running on clusters managed by the LSF resource manager.
canonical: >-
  https://lightning.ai/docs/pytorch/stable/optional-api/api/lightning.pytorch.plugins.environments.LSFEnvironment
---
# LSFEnvironment {#lsfenvironment}

### `class lightning.pytorch.plugins.environments.LSFEnvironment` {#lightning.pytorch.plugins.environments.LSFEnvironment}

Bases: [`ClusterEnvironment`](/docs/pytorch/2.6.6/optional-api/api/lightning.pytorch.plugins.environments.ClusterEnvironment.md#lightning.pytorch.plugins.environments.ClusterEnvironment "lightning.fabric.plugins.environments.cluster_environment.ClusterEnvironment")

An environment for running on clusters managed by the LSF resource manager.

It is expected that any execution using this ClusterEnvironment was executed using the Job Step Manager i.e. `jsrun`.

This plugin expects the following environment variables:

`LSB_JOBID`

The LSF assigned job ID

`LSB_DJOB_RANKFILE`

The OpenMPI compatible rank file for the LSF job

`JSM_NAMESPACE_LOCAL_RANK`

The node local rank for the task. This environment variable is set by `jsrun`

`JSM_NAMESPACE_SIZE`

The world size for the task. This environment variable is set by `jsrun`

`JSM_NAMESPACE_RANK`

The global rank for the task. This environment variable is set by `jsrun`

#### `static detect()` {#lightning.pytorch.plugins.environments.LSFEnvironment.detect}

Returns `True` if the current process was launched using the `jsrun` command.

Return type:

[`bool`](https://docs.python.org/3/builtins/functions.html#bool "(in Python v3.15)")

#### `global_rank()` {#lightning.pytorch.plugins.environments.LSFEnvironment.global_rank}

The world size is read from the environment variable `JSM_NAMESPACE_RANK`.

Return type:

[`int`](https://docs.python.org/3/builtins/functions.html#int "(in Python v3.15)")

#### `local_rank()` {#lightning.pytorch.plugins.environments.LSFEnvironment.local_rank}

The local rank is read from the environment variable JSM\_NAMESPACE\_LOCAL\_RANK.

Return type:

[`int`](https://docs.python.org/3/builtins/functions.html#int "(in Python v3.15)")

#### `node_rank()` {#lightning.pytorch.plugins.environments.LSFEnvironment.node_rank}

The node rank is determined by the position of the current hostname in the OpenMPI host rank file stored in `LSB_DJOB_RANKFILE`.

Return type:

[`int`](https://docs.python.org/3/builtins/functions.html#int "(in Python v3.15)")

#### `world_size()` {#lightning.pytorch.plugins.environments.LSFEnvironment.world_size}

The world size is read from the environment variable `JSM_NAMESPACE_SIZE`.

Return type:

[`int`](https://docs.python.org/3/builtins/functions.html#int "(in Python v3.15)")

#### `property creates_processes_externally: bool` {#lightning.pytorch.plugins.environments.LSFEnvironment.creates_processes_externally}

LSF creates subprocesses, i.e., PyTorch Lightning does not need to spawn them.

#### `property main_address: str` {#lightning.pytorch.plugins.environments.LSFEnvironment.main_address}

The main address is read from an OpenMPI host rank file in the environment variable `LSB_DJOB_RANKFILE`.

#### `property main_port: int` {#lightning.pytorch.plugins.environments.LSFEnvironment.main_port}

The main port is calculated from the LSF job ID.

---

**Navigation**

- Parent: [Api](/docs/pytorch/2.6.6/optional-api/api.md)
