Skip to content

Commit

Permalink
Remove deprecated CobaltProvider (#3667)
Browse files Browse the repository at this point in the history
This follows on from PR #3101

# Changed Behaviour

Cobalt users will not be able to use new Parsl versions.

## Type of change

- Code maintenance/cleanup
  • Loading branch information
benclifford authored Oct 29, 2024
1 parent 1e27234 commit 06b4f28
Show file tree
Hide file tree
Showing 17 changed files with 14 additions and 476 deletions.
1 change: 0 additions & 1 deletion .wci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ execution_environment:
- Slurm
- LSF
- PBS
- Cobalt
- Flux
- GridEngine
- HTCondor
Expand Down
6 changes: 3 additions & 3 deletions docs/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -257,15 +257,15 @@ There are a few common situations in which a Parsl script might hang:

.. code-block:: python
from libsubmit.providers import Cobalt
from parsl.config import Config
from parsl.providers import SlurmProvider
from parsl.executors import HighThroughputExecutor
config = Config(
executors=[
HighThroughputExecutor(
label='ALCF_theta_local',
provider=Cobalt(),
label='htex',
provider=SlurmProvider(),
worer_port_range=('50000,55000'),
interchange_port_range=('50000,55000')
)
Expand Down
1 change: 0 additions & 1 deletion docs/reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,6 @@ Providers
:nosignatures:

parsl.providers.AWSProvider
parsl.providers.CobaltProvider
parsl.providers.CondorProvider
parsl.providers.GoogleCloudProvider
parsl.providers.GridEngineProvider
Expand Down
5 changes: 0 additions & 5 deletions docs/userguide/configuring.rst
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,6 @@ Stepping through the following question should help formulate a suitable configu
| Torque/PBS based | * `parsl.executors.HighThroughputExecutor` | `parsl.providers.TorqueProvider` |
| system | * `parsl.executors.WorkQueueExecutor` | |
+---------------------+-----------------------------------------------+----------------------------------------+
| Cobalt based system | * `parsl.executors.HighThroughputExecutor` | `parsl.providers.CobaltProvider` |
| | * `parsl.executors.WorkQueueExecutor` | |
+---------------------+-----------------------------------------------+----------------------------------------+
| GridEngine based | * `parsl.executors.HighThroughputExecutor` | `parsl.providers.GridEngineProvider` |
| system | * `parsl.executors.WorkQueueExecutor` | |
+---------------------+-----------------------------------------------+----------------------------------------+
Expand Down Expand Up @@ -185,8 +182,6 @@ Stepping through the following question should help formulate a suitable configu
| `parsl.providers.TorqueProvider` | Any | * `parsl.launchers.AprunLauncher` |
| | | * `parsl.launchers.MpiExecLauncher` |
+-------------------------------------+--------------------------+----------------------------------------------------+
| `parsl.providers.CobaltProvider` | Any | * `parsl.launchers.AprunLauncher` |
+-------------------------------------+--------------------------+----------------------------------------------------+
| `parsl.providers.SlurmProvider` | Any | * `parsl.launchers.SrunLauncher` if native slurm |
| | | * `parsl.launchers.AprunLauncher`, otherwise |
+-------------------------------------+--------------------------+----------------------------------------------------+
Expand Down
20 changes: 9 additions & 11 deletions docs/userguide/execution.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ retrieve the status of an allocation (e.g., squeue), and cancel a running
job (e.g., scancel). Parsl implements providers for local execution
(fork), for various cloud platforms using cloud-specific APIs, and
for clusters and supercomputers that use a Local Resource Manager
(LRM) to manage access to resources, such as Slurm, HTCondor,
and Cobalt.
(LRM) to manage access to resources, such as Slurm and HTCondor.

Each provider implementation may allow users to specify additional parameters for further configuration. Parameters are generally mapped to LRM submission script or cloud API options.
Examples of LRM-specific options are partition, wall clock time,
Expand All @@ -39,15 +38,14 @@ parameters include access keys, instance type, and spot bid price
Parsl currently supports the following providers:

1. `parsl.providers.LocalProvider`: The provider allows you to run locally on your laptop or workstation.
2. `parsl.providers.CobaltProvider`: This provider allows you to schedule resources via the Cobalt scheduler. **This provider is deprecated and will be removed by 2024.04**.
3. `parsl.providers.SlurmProvider`: This provider allows you to schedule resources via the Slurm scheduler.
4. `parsl.providers.CondorProvider`: This provider allows you to schedule resources via the Condor scheduler.
5. `parsl.providers.GridEngineProvider`: This provider allows you to schedule resources via the GridEngine scheduler.
6. `parsl.providers.TorqueProvider`: This provider allows you to schedule resources via the Torque scheduler.
7. `parsl.providers.AWSProvider`: This provider allows you to provision and manage cloud nodes from Amazon Web Services.
8. `parsl.providers.GoogleCloudProvider`: This provider allows you to provision and manage cloud nodes from Google Cloud.
9. `parsl.providers.KubernetesProvider`: This provider allows you to provision and manage containers on a Kubernetes cluster.
10. `parsl.providers.LSFProvider`: This provider allows you to schedule resources via IBM's LSF scheduler.
2. `parsl.providers.SlurmProvider`: This provider allows you to schedule resources via the Slurm scheduler.
3. `parsl.providers.CondorProvider`: This provider allows you to schedule resources via the Condor scheduler.
4. `parsl.providers.GridEngineProvider`: This provider allows you to schedule resources via the GridEngine scheduler.
5. `parsl.providers.TorqueProvider`: This provider allows you to schedule resources via the Torque scheduler.
6. `parsl.providers.AWSProvider`: This provider allows you to provision and manage cloud nodes from Amazon Web Services.
7. `parsl.providers.GoogleCloudProvider`: This provider allows you to provision and manage cloud nodes from Google Cloud.
8. `parsl.providers.KubernetesProvider`: This provider allows you to provision and manage containers on a Kubernetes cluster.
9. `parsl.providers.LSFProvider`: This provider allows you to schedule resources via IBM's LSF scheduler.



Expand Down
1 change: 0 additions & 1 deletion parsl/executors/high_throughput/executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@

GENERAL_HTEX_PARAM_DOCS = """provider : :class:`~parsl.providers.base.ExecutionProvider`
Provider to access computation resources. Can be one of :class:`~parsl.providers.aws.aws.EC2Provider`,
:class:`~parsl.providers.cobalt.cobalt.Cobalt`,
:class:`~parsl.providers.condor.condor.Condor`,
:class:`~parsl.providers.googlecloud.googlecloud.GoogleCloud`,
:class:`~parsl.providers.gridEngine.gridEngine.GridEngine`,
Expand Down
12 changes: 0 additions & 12 deletions parsl/executors/high_throughput/mpi_resource_management.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ class Scheduler(Enum):
Unknown = 0
Slurm = 1
PBS = 2
Cobalt = 3


def get_slurm_hosts_list() -> List[str]:
Expand All @@ -37,22 +36,13 @@ def get_pbs_hosts_list() -> List[str]:
return [line.strip() for line in f.readlines()]


def get_cobalt_hosts_list() -> List[str]:
"""Get list of COBALT hosts from envvar: COBALT_NODEFILE"""
nodefile_name = os.environ["COBALT_NODEFILE"]
with open(nodefile_name) as f:
return [line.strip() for line in f.readlines()]


def get_nodes_in_batchjob(scheduler: Scheduler) -> List[str]:
"""Get nodelist from all supported schedulers"""
nodelist = []
if scheduler == Scheduler.Slurm:
nodelist = get_slurm_hosts_list()
elif scheduler == Scheduler.PBS:
nodelist = get_pbs_hosts_list()
elif scheduler == Scheduler.Cobalt:
nodelist = get_cobalt_hosts_list()
else:
raise RuntimeError(f"mpi_mode does not support scheduler:{scheduler}")
return nodelist
Expand All @@ -64,8 +54,6 @@ def identify_scheduler() -> Scheduler:
return Scheduler.Slurm
elif os.environ.get("PBS_NODEFILE"):
return Scheduler.PBS
elif os.environ.get("COBALT_NODEFILE"):
return Scheduler.Cobalt
else:
return Scheduler.Unknown

Expand Down
2 changes: 0 additions & 2 deletions parsl/providers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Cloud Providers
from parsl.providers.aws.aws import AWSProvider
from parsl.providers.azure.azure import AzureProvider
from parsl.providers.cobalt.cobalt import CobaltProvider
from parsl.providers.condor.condor import CondorProvider
from parsl.providers.googlecloud.googlecloud import GoogleCloudProvider
from parsl.providers.grid_engine.grid_engine import GridEngineProvider
Expand All @@ -15,7 +14,6 @@
from parsl.providers.torque.torque import TorqueProvider

__all__ = ['LocalProvider',
'CobaltProvider',
'CondorProvider',
'GridEngineProvider',
'SlurmProvider',
Expand Down
2 changes: 1 addition & 1 deletion parsl/providers/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class ExecutionProvider(metaclass=ABCMeta):
"""Execution providers are responsible for managing execution resources
that have a Local Resource Manager (LRM). For instance, campus clusters
and supercomputers generally have LRMs (schedulers) such as Slurm,
Torque/PBS, Condor and Cobalt. Clouds, on the other hand, have API
Torque/PBS, and Condor. Clouds, on the other hand, have API
interfaces that allow much more fine-grained composition of an execution
environment. An execution provider abstracts these types of resources and
provides a single uniform interface to them.
Expand Down
Empty file removed parsl/providers/cobalt/__init__.py
Empty file.
236 changes: 0 additions & 236 deletions parsl/providers/cobalt/cobalt.py

This file was deleted.

Loading

0 comments on commit 06b4f28

Please sign in to comment.