Skip to content

#586: Investigate erratic and unpredictable CI error regarding synthetic case (NEW)#590

Merged
ppebay merged 14 commits into
developfrom
586-investigate-erratic-and-unpredictable-CI-error-regarding-synthetic-case-NEW
Apr 2, 2026
Merged

#586: Investigate erratic and unpredictable CI error regarding synthetic case (NEW)#590
ppebay merged 14 commits into
developfrom
586-investigate-erratic-and-unpredictable-CI-error-regarding-synthetic-case-NEW

Conversation

@cwschilly

Copy link
Copy Markdown
Contributor

Fixes #586

@cwschilly
cwschilly force-pushed the 586-investigate-erratic-and-unpredictable-CI-error-regarding-synthetic-case-NEW branch from d2a2b79 to 96a3368 Compare February 7, 2025 21:28
@cwschilly
cwschilly marked this pull request as draft February 7, 2025 21:29
@cwschilly cwschilly self-assigned this Feb 7, 2025
@ppebay

ppebay commented Feb 8, 2025

Copy link
Copy Markdown
Contributor

Running 100 times the corresponding case (with only 8 iterations and 1 object per transfer):

for run in {1..100}; do python LBAF_app.py -c synthetic-acceptance.yaml; (cat ../../../output/imbalance.txt; echo) >> res; done

on macOS 14.3 with Python 3.9.19 yields:

awk '{ sum += $1 } END { print sum }' res
0

In other all 100 runs correctly converged to an imbalance of 0.0.

This seems to indicate rather a problem with the CI system itself, and specifically with Python 3.8
@cwschilly

@ppebay

ppebay commented Feb 9, 2025

Copy link
Copy Markdown
Contributor

In keeping with the above comment, I created a Python 3.8 environment and performed the same test (100 runs):

for run in {1..100}; do python LBAF_app.py -c synthetic-acceptance.yaml; (cat ../../../output/imbalance.txt; echo) >> res; done

and obtained as well

awk '{ sum += $1 } END { print sum }' res
0

i.e., all 100 runs passed the test.

Specifically the version of Python is:

 python --version
Python 3.8.20

@cwschilly can we verify if this is the same version that runs in CI?

@cwschilly

cwschilly commented Feb 10, 2025

Copy link
Copy Markdown
Contributor Author

@ppebay The CI uses Python 3.8.18. I have been able to recreate the problem locally by running tox with Python 3.8.19, so I don't think it's just a problem with CI.

@cwschilly
cwschilly marked this pull request as ready for review February 17, 2025 20:12
@cwschilly
cwschilly requested a review from ppebay February 17, 2025 20:12
@cwschilly
cwschilly marked this pull request as draft February 18, 2025 20:30
@cwschilly

Copy link
Copy Markdown
Contributor Author

After changes to the ordering of ranks, Python 3.8 acceptance passed several times in a row. However, Python 3.11 failed: https://github.com/DARMA-tasking/LB-analysis-framework/actions/runs/13397121375/job/37418861102?pr=590

@ppebay ppebay left a comment

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.

Approving and resolving conflicts

@ppebay
ppebay force-pushed the 586-investigate-erratic-and-unpredictable-CI-error-regarding-synthetic-case-NEW branch from e42ebd6 to be608fa Compare March 27, 2026 15:28
@ppebay
ppebay marked this pull request as ready for review March 27, 2026 15:29
@ppebay ppebay assigned ppebay and unassigned cwschilly Mar 27, 2026
@ppebay
ppebay self-requested a review March 27, 2026 15:33
@ppebay
ppebay marked this pull request as draft March 27, 2026 15:33
@ppebay
ppebay removed their request for review March 27, 2026 15:33
@ppebay

ppebay commented Mar 27, 2026

Copy link
Copy Markdown
Contributor

@cwschilly do you mind checking the changes I made to this PR? I can't make you a reviewer of your own PR.

@cwschilly

Copy link
Copy Markdown
Contributor Author

@ppebay All changes look good, although I never succeeded in identifying the underlying issue

@ppebay

ppebay commented Mar 27, 2026

Copy link
Copy Markdown
Contributor

Thanks, and I am thinking of modifying the test slightly to ensure convergence in all cases (even probabilistically).

@ppebay
ppebay marked this pull request as ready for review March 31, 2026 18:36
@ppebay

ppebay commented Mar 31, 2026

Copy link
Copy Markdown
Contributor

As part of this PR the upper-bound update formulae for memory footprint, valid for both node-based (e.g. max 36 per node):

synthetic-dataset-blocks4

and rank-based memory constraints (e.g. max 18 per rank):

synthetic-dataset-blocks3

now correct.

@ppebay
ppebay requested a review from lifflander March 31, 2026 18:40
@ppebay
ppebay merged commit 17f04ee into develop Apr 2, 2026
13 of 15 checks passed
@ppebay
ppebay deleted the 586-investigate-erratic-and-unpredictable-CI-error-regarding-synthetic-case-NEW branch April 2, 2026 07:06
github-actions Bot pushed a commit that referenced this pull request Apr 2, 2026
…tic case (NEW) (#590)

* #586: restored synthetic acceptance case to single object per transfer

* #586: temporary change: log in debug mode on acceptance test

* #586: print rank id instead of enumeration in debug logs

* #586: fix failing test

* #586: ordering: sort phase_ranks before loops when in deterministic mode

* #586: ordering: use set operation when possible

* #586: fix formatting

* #586: ordering: sort phase_ranks before loops when in deterministic mode

* #586: ordering: use set operation when possible

* #586: fix formatting

* #586: restored a configuration that is actually feasible!

* #586: finally fixed bug in bounds

* #586: WS cleanup

* #586: add unit testing for node and rank level bounds

---------

Co-authored-by: Philippe P. Pébaÿ <philippe.pebay@ng-analytics.com>
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.

Investigate erratic and unpredictable CI error regarding synthetic case

2 participants