• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

quaquel / EMAworkbench / 6708238519
81%
master: 93%

Build:
Build:
LAST BUILD BRANCH: 3.0
DEFAULT BRANCH: master
Ran 31 Oct 2023 02:58PM UTC
Jobs 1
Files 34
Run time 4s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

31 Oct 2023 02:48PM UTC coverage: 80.817% (-0.08%) from 80.893%
6708238519

Pull #299

github

EwoutH
Fix MPIEvaluator pool not initializating multiple times

Addressed an issue where initializing the MPIEvaluator pool multiple times with a common initializer was causing a 'BrokenExecutor' error.

Details:
- Observed that using the MPIPoolExecutor twice in a row with an initializer function would lead to a 'BrokenExecutor: cannot run initializer' error on the second run.
- Reproduced the issue with simplified examples to confirm that the problem was due to the initializer function in conjunction with MPIPoolExecutor.
- Decided to remove the common initializer function from the MPIEvaluator to prevent this error.

Changes:
- Removed the global `experiment_runner` and the `mpi_initializer` function.
- Modified the MPIEvaluator's `initialize` method to not use the initializer arguments.
- Updated the `run_experiment_mpi` function to create the `ExperimentRunner` directly, ensuring each experiment execution has its fresh instance.

Examples:

Before:
```python
with MPIEvaluator(model) as evaluator:
    results = evaluator.perform_experiments(scenarios=24)
with MPIEvaluator(model) as evaluator:
    results2 = evaluator.perform_experiments(scenarios=48)

This would fail on the second invocation with a 'BrokenExecutor' error.

with MPIEvaluator(model) as evaluator:
    results = evaluator.perform_experiments(scenarios=24)
with MPIEvaluator(model) as evaluator:
    results2 = evaluator.perform_experiments(scenarios=48)

Now, both invocations run successfully without errors.

TL;DR:
By removing the common initializer, we have resolved the issue with re-initializing the MPIEvaluator pool. Users can now confidently use the MPIEvaluator multiple times in their workflows without encountering the 'BrokenExecutor' error.
Pull Request #299: Introducing MPIEvaluator: Run on multi-node HPC systems using mpi4py

41 of 41 new or added lines in 2 files covered. (100.0%)

4647 of 5750 relevant lines covered (80.82%)

0.81 hits per line

Jobs
ID Job ID Ran Files Coverage
1 6708238519.1 31 Oct 2023 02:58PM UTC 0
80.82
Source Files on build 6708238519
Detailed source file information is not available for this build.
  • Back to Repo
  • Pull Request #299
  • PR Base - master (#6652898322)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc