Skip to content

Integrate el - #78

Open
harikrishna1410 wants to merge 6 commits into
radical-cybertools:devfrom
harikrishna1410:integrate_EL
Open

Integrate el#78
harikrishna1410 wants to merge 6 commits into
radical-cybertools:devfrom
harikrishna1410:integrate_EL

Conversation

@harikrishna1410

Copy link
Copy Markdown

Adding a new EnsembleExecutionBackend that uses EnsembleLauncher 1. This backend provides various capabilities

  1. Extreme scalability: Tested to whole machine of Aurora.
  2. Flexibility: Can seamlessly coschedule heterogenous ensembles
  3. Custom-scheduling policies: provides an interface to implement custom scheduling policies.

@review-notebook-app

Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request introduces the EnsembleBackend execution backend to support MPI-based distributed execution via the Ensemble Launcher framework, along with corresponding unit tests and a tutorial notebook. The review feedback highlights several robust and safety improvements for the new backend, including: preventing type confusion and cancellation issues with task["future"], handling fragile string splitting on task results, correcting a type mismatch in __all__, guarding against None from os.cpu_count(), running blocking cleanup calls in separate threads, and avoiding potential ZeroDivisionError, AttributeError, and KeyError exceptions during task building.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread src/rhapsody/backends/execution/el.py Outdated
Comment thread src/rhapsody/backends/execution/el.py Outdated
Comment thread src/rhapsody/backends/__init__.py Outdated
Comment thread src/rhapsody/backends/execution/el.py Outdated
Comment thread src/rhapsody/backends/execution/el.py Outdated
Comment thread src/rhapsody/backends/execution/el.py
Comment thread src/rhapsody/backends/execution/el.py Outdated
Comment thread src/rhapsody/backends/execution/el.py Outdated
Comment thread src/rhapsody/backends/execution/el.py Outdated
)
cpus = cpus or list(range(os.cpu_count()))
ngpus = len(gpus) if gpus is not None else 0
gpus = gpus or []

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

What is the difference between gpus and ngpus. A docstring would be great to express these differences.

@AymenFJA

Copy link
Copy Markdown
Contributor

Hey @harikrishna1410, thanks for the great work.

Few comments (besides the Gemini caught issues/refinements):

  1. Whenever possible, can you add some docstrings to each method, please?
  2. Pre-commit and ruff are failing, which you can be pretty easy to check and (even fix for you automatically):
    pre-commit run --show-diff-on-failure --color=always --all-files
  3. I also added a couple of comments on the code base.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants