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

Ray Cluster features #50

Merged
merged 131 commits into from
Oct 11, 2021
Merged
Show file tree
Hide file tree
Changes from 124 commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
52c3ddc
Adds notebook to run head_node.
al-rigazzi Apr 13, 2021
34ca15c
Add Ray notebook which can start cluster head node.
al-rigazzi Apr 16, 2021
4fbd5a1
Workarounds for Ray/Jupyter resource problems.
al-rigazzi Apr 23, 2021
fa36f4e
Working setup for XC.
al-rigazzi Apr 23, 2021
168b9fe
Insert CPU control for SLURM Ray.
al-rigazzi Apr 28, 2021
7d73ad5
Adds Ray cluster setup.
al-rigazzi May 5, 2021
f0aafa3
Refactor RayWorker and RayHead.
al-rigazzi May 7, 2021
a65b710
Adds batch capabilities to Ray Slurm launcher.
al-rigazzi May 9, 2021
0fb644f
Add preamble to batch_settings
al-rigazzi May 10, 2021
ab2c6eb
Fixes some issues on CCM for Ray
al-rigazzi May 13, 2021
a79d143
Redirect cmd server output for Ray.
al-rigazzi May 13, 2021
4c56512
Avoid Ray workers overlapping with head.
al-rigazzi May 14, 2021
c47c5ed
Change Slurm configuration for Ray.
al-rigazzi May 17, 2021
bead0b2
Remove command server and use Ray client.
al-rigazzi May 18, 2021
14f0197
Add ray cluster for PBS batch.
al-rigazzi May 19, 2021
c4723dc
Adds PBS functionalities for Ray cluster.
al-rigazzi May 24, 2021
6abb6fa
Adds Ray starter script.
al-rigazzi May 25, 2021
dc1f8f5
Merge branch 'rl' of https://github.com/al-rigazzi/SmartSim into rl
al-rigazzi May 25, 2021
f55aae5
Add new starter for Ray
al-rigazzi May 25, 2021
f0d4192
Fix batch args bug for RayCluster
al-rigazzi May 26, 2021
bd248b6
Merge remote-tracking branch 'CrayLabs/develop' into rl
al-rigazzi May 26, 2021
465995a
Add preamble mechanism to BatchSettings.
al-rigazzi May 26, 2021
376e289
Remove old ray starter script.
al-rigazzi May 26, 2021
705436e
Fixes tests for new interface.
al-rigazzi May 26, 2021
bbeb03a
Fix entity utils test.
al-rigazzi May 26, 2021
f7fb211
Delete issues.md
al-rigazzi May 26, 2021
397d125
Add local launcher and test for Ray.
al-rigazzi Jun 4, 2021
a105693
Merge branch 'rl' of https://github.com/al-rigazzi/SmartSim into rl
al-rigazzi Jun 4, 2021
a3bccfe
Delete 05_starting_ray.ipynb
al-rigazzi Jun 4, 2021
c4e0c80
Delete manual-start.sh
al-rigazzi Jun 4, 2021
732868d
Delete start-head.sh
al-rigazzi Jun 4, 2021
6575a47
Delete start-worker.sh
al-rigazzi Jun 4, 2021
810f0a3
Update requirements.
al-rigazzi Jun 4, 2021
d46f73f
Remove check for slurm launcher and rely on exception.
al-rigazzi Jul 2, 2021
d0faeae
Merge branch 'develop' into rl
al-rigazzi Jul 2, 2021
0d30c31
Address reviewer's comments. Add ray_args.
al-rigazzi Jul 3, 2021
2a8088f
Merge branch 'develop' into rl
al-rigazzi Jul 20, 2021
81f9a99
Modify Ray tutorial.
al-rigazzi Jul 20, 2021
44a147f
Merge branch 'develop' into rl
al-rigazzi Jul 20, 2021
4a7dd91
Merge branch 'rl' of https://github.com/al-rigazzi/SmartSim into rl
al-rigazzi Jul 20, 2021
7d605e4
Merge branch.
al-rigazzi Jul 20, 2021
ed192d9
Adds Ray to manifest.
al-rigazzi Jul 20, 2021
f2bfb82
Fix to raystarter.py
al-rigazzi Jul 20, 2021
dcf4827
Add manifest.ray_clusters to exp.stop()
al-rigazzi Jul 22, 2021
3b57a62
Removes egg files.
al-rigazzi Jul 22, 2021
932a563
Fixes wrong option for Ray and aprun
al-rigazzi Jul 22, 2021
5b4981b
Address review, add flexibility to ray cluster
al-rigazzi Jul 27, 2021
87d6e29
Add API functions to RayCluster
al-rigazzi Jul 27, 2021
d997cac
Fix for internal ray args
al-rigazzi Jul 27, 2021
7731867
Add dashboard port to raystarter args.
al-rigazzi Jul 27, 2021
e22610a
Apply styling.
al-rigazzi Jul 28, 2021
22f7e39
Merge remote-tracking branch 'upstream/develop' into rl
al-rigazzi Jul 29, 2021
f706f27
Add tests for ray on slurm
al-rigazzi Jul 29, 2021
0aaa3b3
Fix slurm in alloc ray test
al-rigazzi Jul 29, 2021
8a5f9c0
ADD new information to README and OA tutorial
Jul 30, 2021
860f96f
Link Online Analysis example into docs
Jul 30, 2021
3097a26
Add visualization to README
Jul 30, 2021
2b4ea74
Add PBS tests and pass ray_exe to raystarter
al-rigazzi Jul 30, 2021
4ecffc8
Remove expand_exe option
al-rigazzi Jul 30, 2021
59fc8fa
Remove duplicate function
al-rigazzi Jul 30, 2021
b29db44
Remove unused ray template
al-rigazzi Jul 30, 2021
2275fce
Merge branch 'develop' of https://github.com/CrayLabs/SmartSim into rl
al-rigazzi Jul 30, 2021
47a8869
Add egg-info to gitignore
al-rigazzi Jul 30, 2021
ada1709
Remove expand_exe from RayCluster
al-rigazzi Jul 30, 2021
4629f3d
Fix exe_path
al-rigazzi Jul 30, 2021
ff6a95b
Merge branch 'new-docs' of https://github.com/spartee/SmartSim into r…
al-rigazzi Jul 30, 2021
5bc9794
Adds ray API to docs
al-rigazzi Jul 30, 2021
a5b44c9
Move set_cpus out of launch tests.
al-rigazzi Jul 31, 2021
85ba1a5
Fix characters in options for PBSOrchestrator
al-rigazzi Jul 31, 2021
15e29fb
Fix non utf8 chars in options
al-rigazzi Jul 31, 2021
e25ada4
Fix Cobalt options
al-rigazzi Jul 31, 2021
0cbe771
Fix options in AprunSettings.
al-rigazzi Jul 31, 2021
b1434d5
Allow multiple trials for Ray tests
al-rigazzi Aug 1, 2021
194c54b
Fix ray launch summary
al-rigazzi Aug 3, 2021
c28320f
Address local launcher for Ray
Aug 5, 2021
9260103
Make RayCluster closer to SmartSim paradigm
al-rigazzi Aug 6, 2021
7fe95ef
Modifies starter to bind dashboard to all interfaces
al-rigazzi Aug 6, 2021
b94be58
Revert port for dashboard, update github wf
al-rigazzi Aug 7, 2021
2120a84
Add password option to RayCluster
al-rigazzi Aug 9, 2021
a7334f0
Remove output from Notebook
al-rigazzi Aug 9, 2021
6ee94f4
Remove log level env from ray notebook
al-rigazzi Aug 9, 2021
dfd0a85
Adapt ray tests.
al-rigazzi Aug 10, 2021
2186b37
Bump up ray version
al-rigazzi Aug 10, 2021
2546172
Merge remote-tracking branch 'upstream/develop' into rl
al-rigazzi Aug 10, 2021
b56c669
Remove unused launch branch, fix ray summary
al-rigazzi Aug 10, 2021
677fab6
Remove unused launcher branch
al-rigazzi Aug 10, 2021
d3290ea
Apply styling
al-rigazzi Aug 10, 2021
f460fa9
Remove notebook output
al-rigazzi Aug 10, 2021
efd7747
Remove block_in_batch feature
al-rigazzi Aug 10, 2021
af85bf0
Fix ALPS regression introduced in this branch
al-rigazzi Aug 10, 2021
93fcdcf
Fix settings
al-rigazzi Aug 10, 2021
a958d22
Fix docstring
al-rigazzi Aug 10, 2021
b8d17ba
Add ignore flag for ray batch tests.
al-rigazzi Aug 10, 2021
4fbe440
Change ray_started args
al-rigazzi Aug 10, 2021
70a492c
Update docstrings
al-rigazzi Aug 10, 2021
5fd61e8
Update TODO list in raycluster.py
al-rigazzi Aug 10, 2021
11934a7
Add disclaimer to notebook, license to raycluster
al-rigazzi Aug 10, 2021
0b4321f
Make RayCluster error more useful
al-rigazzi Aug 10, 2021
b857157
Add ray.shutdown to tests.
al-rigazzi Aug 10, 2021
2570cc3
Add interface to Ray PBS tests. Apply styling
al-rigazzi Aug 10, 2021
733deb2
Remove useless _vars from RayCluster
al-rigazzi Aug 10, 2021
217c28f
Remove unused attributes from RayCluster
al-rigazzi Aug 10, 2021
4cf8163
Remove ray_head variable
al-rigazzi Aug 10, 2021
19c1a2c
Fix new variables for RayCluster
al-rigazzi Aug 10, 2021
d8d7a37
Merge branch 'rl_cleanup' into rl
al-rigazzi Aug 10, 2021
e3db4db
Make RayCluster functions static
al-rigazzi Aug 10, 2021
09ee09e
Modify notebook
al-rigazzi Aug 10, 2021
aa8ad2e
Update Ray path to exp
al-rigazzi Aug 11, 2021
8d7fe10
Update docs, removed unused function
al-rigazzi Aug 11, 2021
0ca9c0c
Extend wait time for Ray head log
al-rigazzi Aug 11, 2021
b1628ba
Merge branch 'develop' into rl
al-rigazzi Aug 26, 2021
3e884f3
Remove node retrieval for Ray
al-rigazzi Aug 26, 2021
6fc8281
Merge remote-tracking branch 'origin/ray_docs' into rl
al-rigazzi Aug 26, 2021
968a95a
Update notebook and summary for RayCluster
al-rigazzi Aug 27, 2021
2993b7d
Fixes to Ray docs
al-rigazzi Aug 27, 2021
191288a
Add interface to Ray tests
al-rigazzi Aug 27, 2021
7330d3c
Merge branch 'rl' of https://github.com/al-rigazzi/SmartSim into rl
al-rigazzi Aug 27, 2021
a239a5a
Apply styling
al-rigazzi Aug 27, 2021
7674d01
Address reviewer's comments
al-rigazzi Oct 5, 2021
086cb91
Merge branch 'develop' of https://github.com/CrayLabs/SmartSim into rl
al-rigazzi Oct 5, 2021
84f4069
Apply styling
al-rigazzi Oct 5, 2021
a6fb7f2
Add SSH tunneling instructions to Ray notebook
al-rigazzi Oct 5, 2021
b694c25
Change workers parameter to num_nodes for clarity
al-rigazzi Oct 5, 2021
be4f7e2
Update Ray tests
al-rigazzi Oct 5, 2021
fb3d899
Add review's suggestions and dashboard host fix
al-rigazzi Oct 11, 2021
2b06c1c
Update Ray tutorial
al-rigazzi Oct 11, 2021
4b325b7
Restrict dashboard option to head only
al-rigazzi Oct 11, 2021
0aec403
Correct typo in Ray notebook
al-rigazzi Oct 11, 2021
ce03a9e
Add some info to notebook.
al-rigazzi Oct 11, 2021
5bd5b91
Fix typo in notebook
al-rigazzi Oct 11, 2021
149edaf
Merge branch 'develop' of https://github.com/CrayLabs/SmartSim into rl
al-rigazzi Oct 11, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/run_local_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ jobs:
if: matrix.python-version != '3.9'
run: |
echo "$(brew --prefix)/opt/make/libexec/gnubin" >> $GITHUB_PATH
python -m pip install -vvv .[dev,ml]
python -m pip install -vvv .[dev,ml,ray]

- name: Install SmartSim
if: matrix.python-version == '3.9'
run: |
echo "$(brew --prefix)/opt/make/libexec/gnubin" >> $GITHUB_PATH
python -m pip install -vvv .[dev]
python -m pip install -vvv .[dev,ray]

- name: Install ML Runtimes with Smart (with pt and tf)
if: contains(matrix.os, 'macos')
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ __pycache__
.pytest_cache/
.coverage*
htmlcov
smartsim.egg-info

# Dependencies
third-party
Expand Down
8 changes: 4 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -103,23 +103,23 @@ cov:
# help: test - Build and run all tests
.PHONY: test
test:
@cd ./tests/; python -m pytest --ignore=full_wlm/
@cd ./tests/; python -m pytest --ignore=full_wlm/ --ignore=with_ray/full_wlm/
Copy link
Contributor

Choose a reason for hiding this comment

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

put ray with full_wlm


# help: test-verbose - Build and run all tests [verbosely]
.PHONY: test-verbose
test-verbose:
@cd ./tests/; python -m pytest -vv --ignore=full_wlm/
@cd ./tests/; python -m pytest -vv --ignore=full_wlm/ --ignore=with_ray/full_wlm/

# help: test-cov - run python tests with coverage
.PHONY: test-cov
test-cov:
@cd ./tests/; python -m pytest --cov=../smartsim -vv --cov-config=${COV_FILE} --ignore=full_wlm/
@cd ./tests/; python -m pytest --cov=../smartsim -vv --cov-config=${COV_FILE} --ignore=full_wlm/ --ignore=with_ray/full_wlm/


# help: test-full - run all WLM tests with Python coverage (full test suite)
# help: WARNING: do not run test-full on shared systems.
.PHONY: test-full
test-full:
@cd ./tests/; python -m pytest --cov=../smartsim -vv --cov-config=${COV_FILE}
@cd ./tests/; python -m pytest --cov=../smartsim -vv --cov-config=${COV_FILE} --ignore=with_ray/full_wlm/


78 changes: 78 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ independently.
- [Local Launch](#local-launch)
- [Interactive Launch](#interactive-launch)
- [Batch Launch](#batch-launch)
- [Ray](#ray)
- [Ray on Slurm](#ray-on-slurm)
- [Ray on PBS](#ray-on-pbs)
- [SmartRedis](#smartredis)
- [Tensors](#tensors)
- [Datasets](#datasets)
Expand Down Expand Up @@ -288,6 +291,7 @@ python hello_ensemble_pbs.py

# Infrastructure Library Applications
- Orchestrator - In-memory data store and Machine Learning Inference (Redis + RedisAI)
- Ray - Distributed Reinforcement Learning (RL), Hyperparameter Optimization (HPO)

## Redis + RedisAI

Expand Down Expand Up @@ -415,6 +419,80 @@ exp.stop(db_cluster)
python run_db_pbs_batch.py
```

-----
## Ray

Ray is a distributed computation framework that supports a number of applications
- RLlib - Distributed Reinforcement Learning (RL)
- RaySGD - Distributed Training
- Ray Tune - Hyperparameter Optimization (HPO)
- Ray Serve - ML/DL inference
As well as other integrations with frameworks like Modin, Mars, Dask, and Spark.

Historically, Ray has not been well supported on HPC systems. A few examples exist,
but none are well maintained. Because SmartSim already has launchers for HPC systems,
launching Ray through SmartSim is a relatively simple task.

### Ray on Slurm

Below is an example of how to launch a Ray cluster on a Slurm system and connect to it.
In this example, we set `batch=True`, which means that the cluster will be started
requesting an allocation through Slurm. If this code is run within a sufficiently large
interactive allocation, setting `batch=False` will spin the Ray cluster on the
allocated nodes.

```Python
import ray

from smartsim import Experiment
from smartsim.ext.ray import RayCluster

exp = Experiment("ray-cluster", launcher='slurm')
# 3 workers + 1 head node = 4 node-cluster
cluster = RayCluster(name="ray-cluster", run_args={},
ray_args={"num-cpus": 24},
launcher=launcher, workers=3, batch=True)

exp.generate(cluster, overwrite=True)
exp.start(cluster, block=False, summary=True)

# Connect to the Ray cluster
ray.util.connect(cluster.head_model.address+":10001")

# <run Ray tune, RLlib, HPO...>
```


### Ray on PBS

Below is an example of how to launch a Ray cluster on a PBS system and connect to it.
In this example, we set `batch=True`, which means that the cluster will be started
requesting an allocation through Slurm. If this code is run within a sufficiently large
interactive allocation, setting `batch=False` will spin the Ray cluster on the
allocated nodes.

```Python
import ray

from smartsim import Experiment
from smartsim.ext.ray import RayCluster

exp = Experiment("ray-cluster", launcher='pbs')
# 3 workers + 1 head node = 4 node-cluster
cluster = RayCluster(name="ray-cluster", run_args={},
ray_args={"num-cpus": 24},
launcher=launcher, workers=3, batch=True)

exp.generate(cluster, overwrite=True)
exp.start(cluster, block=False, summary=True)

# Connect to the ray cluster
ray.util.connect(cluster.head_model.address+":10001")

# <run Ray tune, RLlib, HPO...>
```


------
# SmartRedis

Expand Down
18 changes: 18 additions & 0 deletions doc/api/smartsim_api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -490,3 +490,21 @@ Slurm

.. automodule:: smartsim.launcher.slurm.slurm
:members:


Ray
===

.. currentmodule:: smartsim.exp.ray

.. _ray_api:

``RayCluster`` is used to launch a Ray cluster
and can be launched as a batch or in an interactive allocation.

.. autoclass:: RayCluster
:show-inheritance:
:members:
:inherited-members:
:undoc-members:
:exclude-members: batch set_path type
3 changes: 2 additions & 1 deletion doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@
'sphinxfortran.fortran_domain',
'sphinxfortran.fortran_autodoc',
'breathe',
'nbsphinx'
'nbsphinx',
'myst_parser'
Copy link
Contributor

Choose a reason for hiding this comment

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

dont need this

]


Expand Down
2 changes: 2 additions & 0 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
:caption: Tutorials

tutorials/01_getting_started/01_getting_started
tutorlals/03_online_analysis/03_online_analysis
tutorials/05_starting_ray/05_starting_ray
tutorials/using_clients
tutorials/lattice_boltz_analysis
tutorials/inference
Expand Down
2 changes: 2 additions & 0 deletions doc/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,7 @@ Note that SmartSim and SmartRedis will be downloaded to the working directory
from which these instructions are executed.

.. code-block:: bash

# setup Python and build environment
module load open-ce
conda create -p /ccs/home/$USER/.conda/envs/smartsim --clone open-ce-1.2.0-py38-0
Expand Down Expand Up @@ -471,6 +472,7 @@ When executing SmartSim, if you want to use the PyTorch backend in the orchestra
you will need to add the PyTorch library path to the environment with:

.. code-block:: bash

export LD_LIBRARY_PATH=/ccs/home/$USER/.conda/envs/smartsim/lib/python3.8/site-packages/torch/lib/:$LD_LIBRARY_PATH


Expand Down
2 changes: 2 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ doc=
sphinx-fortran==1.1.1
nbsphinx>=0.8.2

ray=
ray==1.6

[options.packages.find]
exclude =
Expand Down
2 changes: 1 addition & 1 deletion smart
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ def clean(install_path, _all=False):
rai_path = lib_path.joinpath("redisai.so")
if rai_path.is_file():
rai_path.unlink()
print("Succesfully removed existing RedisAI installation")
print("Successfully removed existing RedisAI installation")

backend_path = lib_path.joinpath("backends")
if backend_path.is_dir():
Expand Down
32 changes: 31 additions & 1 deletion smartsim/control/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -247,9 +247,11 @@ def init_launcher(self, launcher):
elif launcher == "pbs":
self._launcher = PBSLauncher()
self._jobs.set_launcher(self._launcher)
# Init Cobalt launcher
elif launcher == "cobalt":
self._launcher = CobaltLauncher()
self._jobs.set_launcher(self._launcher)
# Init LSF launcher
elif launcher == "lsf":
self._launcher = LSFLauncher()
self._jobs.set_launcher(self._launcher)
Expand All @@ -275,6 +277,9 @@ def _launch(self, manifest):
raise SmartSimError(msg)
self._launch_orchestrator(orchestrator)

for rc in manifest.ray_clusters:
self._launch_ray_cluster(rc)

# create all steps prior to launch
steps = []

Expand Down Expand Up @@ -345,6 +350,31 @@ def _launch_orchestrator(self, orchestrator):
self._save_orchestrator(orchestrator)
logger.debug(f"Orchestrator launched on nodes: {orchestrator.hosts}")

def _launch_ray_cluster(self, ray_cluster):
Copy link
Contributor

Choose a reason for hiding this comment

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

could this be the normal launching function?

"""Launch a Ray Cluster instance
This function will launch the Ray Cluster instance and
if on WLM, find the nodes where it was launched and
set them in the JobManager

:param orchestrator: ray cluster to launch
Copy link
Contributor

Choose a reason for hiding this comment

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

orchestrator?

:type orchestrator: RayCluster
"""
# if the Ray cluster was launched as a batch workload
ray_cluster._update_workers()

if ray_cluster.batch:
ray_batch_step = self._create_batch_job_step(ray_cluster)
self._launch_step(ray_batch_step, ray_cluster)

else:
ray_steps = [
(self._create_job_step(ray_node), ray_node) for ray_node in ray_cluster
]
for ray_step in ray_steps:
self._launch_step(*ray_step)

logger.info("Ray cluster launched.")

def _launch_step(self, job_step, entity):
"""Use the launcher to launch a job stop

Expand Down Expand Up @@ -498,7 +528,7 @@ def _orchestrator_launch_wait(self, orchestrator):
if not self._jobs.actively_monitoring:
self._jobs.check_jobs()

# _jobs.get_status aquires JM lock for main thread, no need for locking
# _jobs.get_status acquires JM lock for main thread, no need for locking
statuses = self.get_entity_list_status(orchestrator)
if all([stat == STATUS_RUNNING for stat in statuses]):
ready = True
Expand Down
11 changes: 10 additions & 1 deletion smartsim/control/manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,12 @@
from ..entity import EntityList, SmartSimEntity
from ..error import SmartSimError
from ..error.errors import SmartSimError
from ..exp.ray import RayCluster

# List of types derived from EntityList which require specific behavior
# A corresponding property needs to exist (like db for Orchestrator),
# otherwise they will not be accessible
entity_list_exception_types = [Orchestrator]
entity_list_exception_types = [Orchestrator, RayCluster]


class Manifest:
Expand Down Expand Up @@ -83,6 +84,14 @@ def ensembles(self):

return _ensembles

@property
def ray_clusters(self):
_ray_cluster = []
for deployable in self._deployables:
if isinstance(deployable, RayCluster):
_ray_cluster.append(deployable)
return _ray_cluster

def _check_names(self, deployables):
used = []
for deployable in deployables:
Expand Down
2 changes: 0 additions & 2 deletions smartsim/entity/entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

import os.path as osp


class SmartSimEntity:
def __init__(self, name, path, run_settings):
Expand Down
3 changes: 1 addition & 2 deletions smartsim/entity/entityList.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@ def batch(self):
try:
if self.batch_settings:
return True
else:
return False
return False
# local orchestrator cannot launch with batches
except AttributeError:
return False
Expand Down
1 change: 1 addition & 0 deletions smartsim/exp/ray/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .raycluster import RayCluster, parse_ray_head_node_address
Loading