Skip to content

Conversation

@dawson6
Copy link
Member

@dawson6 dawson6 commented Jan 9, 2026

Update to map arbitrary strings in the ats 'same_node" option to an actual physical node at run time.

See the test/HelloSameNode directory for test cases.

Basically, one can specify that independent tests are required to run on the same node, and assign an arbitrary string
to specify the node. If two tests have the same string, they will run on the same node. For example:

t1=test (..., same_node='nodeA')
t2=testif(..., same_node='nodeA')
t3=test (..., same_node='nodeB')
t4=testif(..., same_node='nodeB')
t5=test (..., same_node='nodeC')
t6=testif(..., same_node='nodeC')

test 1 and 2 will run on the same node.
test 3 and 4 will run on the same node
test 5 and 6 will run on the same node

The number of node strings is allowed to be greater than the number of physical nodes. The above would work on a 2 node allocation. The ats flux module will wrap around when assigning the tests to nodes. So nodeA and nodeC would be on the same allocation as well (the first node in the allocation). nodeB would be on the seconde node in the allocation.

@dawson6
Copy link
Member Author

dawson6 commented Jan 9, 2026

Also, I bumped the ats version number to 7.0.122 so I could do a public beta install and test the fix.
I apologize, that should have been a separate bump.
The actual files changes are

M ats/atsMachines/fluxScheduled.py
M test/HelloSameNode/READ.ME
A test/HelloSameNode/test_get_node_names.py

@dawson6 dawson6 self-assigned this Jan 9, 2026
Call get_physical_nodes during init.

Need to call this immediately to cache
the hardware nodes before any jobs
start running. The logic inspects
the 'free' nodes reported by flux, which
will change during the run, so inspect
it immediately, before starting jobs
then save the list of hardware nodes.
@dawson6 dawson6 force-pushed the feature/dawson/2026-01-08-samenode branch from 641e558 to b4e9580 Compare January 9, 2026 22:52
@dawson6 dawson6 merged commit f5bd1ac into main Jan 9, 2026
18 checks passed
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