Paul Bauer activity https://gitlab.com/acmnpv 2026-03-20T18:31:28Z tag:gitlab.com,2026-03-20:5227470147 Paul Bauer commented on merge request !5855 at GROMACS / GROMACS 2026-03-20T18:31:28Z acmnpv Paul Bauer

well, if I can trust the changes I'm going to upload in a bit, then the previous custom setup was wrong and we need to regenerate the reference data for using the correct setup. Still investigating

tag:gitlab.com,2026-03-20:5226910116 Paul Bauer pushed to project branch 5589-refactor-gpu-nbnxm-fep-tests at GROMACS / GROMACS 2026-03-20T15:38:26Z acmnpv Paul Bauer

Paul Bauer (cd480c76) at 20 Mar 15:38

Fix buffer pinning

tag:gitlab.com,2026-03-20:5226857189 Paul Bauer approved merge request !5761: Use Matrix3x3 in ekinstate_t at GROMACS / GROMACS 2026-03-20T15:25:48Z acmnpv Paul Bauer

Fixes #5559

tag:gitlab.com,2026-03-20:5226694348 Paul Bauer deleted project branch bh-multiple-settle at GROMACS / GROMACS 2026-03-20T14:48:18Z acmnpv Paul Bauer

Paul Bauer (d03953d5) at 20 Mar 14:48

tag:gitlab.com,2026-03-20:5226693932 Paul Bauer pushed to project branch main at GROMACS / GROMACS 2026-03-20T14:48:12Z acmnpv Paul Bauer

Paul Bauer (1f1ca835) at 20 Mar 14:48

Allow for multiple identical SETTLE setups

tag:gitlab.com,2026-03-20:5226693824 Paul Bauer accepted merge request !5851: Allow for multiple identical SETTLE setups at GROMACS / GROMACS 2026-03-20T14:48:10Z acmnpv Paul Bauer
tag:gitlab.com,2026-03-20:5226512439 Paul Bauer pushed to project branch bh-multiple-settle at GROMACS / GROMACS 2026-03-20T14:06:09Z acmnpv Paul Bauer

Paul Bauer (d03953d5) at 20 Mar 14:06

Apply 1 suggestion(s) to 1 file(s)

... and 5 more commits

tag:gitlab.com,2026-03-20:5226467562 Paul Bauer commented on merge request !5855 at GROMACS / GROMACS 2026-03-20T13:55:28Z acmnpv Paul Bauer

marking as draft, because things seem to have gotten broken in a serious way

tag:gitlab.com,2026-03-20:5226387060 Paul Bauer commented on merge request !5856 at GROMACS / GROMACS 2026-03-20T13:36:17Z acmnpv Paul Bauer

or should this condition be something else, as it was for the old code?

tag:gitlab.com,2026-03-20:5226386983 Paul Bauer commented on merge request !5856 at GROMACS / GROMACS 2026-03-20T13:36:16Z acmnpv Paul Bauer

why did you place the assert inside the branch here? It can by definition never be false if we entered the branch

tag:gitlab.com,2026-03-20:5226371884 Paul Bauer pushed to project branch 5589-refactor-gpu-nbnxm-fep-tests at GROMACS / GROMACS 2026-03-20T13:32:41Z acmnpv Paul Bauer

Paul Bauer (9c4eb363) at 20 Mar 13:32

Need to use filler particles

tag:gitlab.com,2026-03-20:5226323493 Paul Bauer approved merge request !5817: Introduce PME-PP comm manager at GROMACS / GROMACS 2026-03-20T13:21:19Z acmnpv Paul Bauer

This is pure refactoring, no behaviour changes apart from not rushing to destruct PmePpCommGpu.

Now a single object coordinates both communication and force-reduction aspects of PP ranks when they use a separate PME-only rank. Direct-GPU communication is handled by an object it owns. It keeps track of init- and repartition-time constants so these no longer have to be passed by do_force() every step.

The new object does not depend on t_forcerec, interaction_const_t, or StatePropagatorGpu (which the old code did).

Send-parameters and send-coordinates commands embed their own communication logic rather than call a common function that had little in common.

Signal-reset, switch-grid, and finish commands now send simple blocking MPI messages, rather than delegate to that common function, so their methods can be const.

Eliminated fields of gmx_domdec_t that related primarily to PP-PME communication. The DD builder still prepares the data needed to create PmePpComm, which can only be created after GPU task assignment is complete, so PmePpCommSettings is introduced to hold that data. The PmePpCommSettings is built in a new method of the DD builder, refactored out of setupGroupCommunication().

The NVSHMEM helper needs to know the rank of a possible PME-only rank, which is now supplied by a getter of PmePpComm rather than via gmx_domdec_t.

PME load balancing now directs PmePpComm to switch grids.

MPI requests are now handled in a std::vector

Fewer objects are made on the heap

Include statements have been adjusted to minimize dependencies

More const correctness

Refs #5539

tag:gitlab.com,2026-03-20:5226082476 Paul Bauer commented on merge request !5855 at GROMACS / GROMACS 2026-03-20T12:19:41Z acmnpv Paul Bauer

my fault for only building with HIP locally

tag:gitlab.com,2026-03-20:5226081679 Paul Bauer pushed to project branch 5589-refactor-gpu-nbnxm-fep-tests at GROMACS / GROMACS 2026-03-20T12:19:26Z acmnpv Paul Bauer

Paul Bauer (ea03f50e) at 20 Mar 12:19

Apply 1 suggestion(s) to 1 file(s)

tag:gitlab.com,2026-03-20:5225711977 Paul Bauer opened merge request !5855: Draft: Deduplicate NBNxM FEP GPU test setup at GROMACS / GROMACS 2026-03-20T10:42:13Z acmnpv Paul Bauer

Move towards using more of the existing code instead of reimplementing what already exists.

Closes #5589

tag:gitlab.com,2026-03-20:5225529201 Paul Bauer approved merge request !5851: Allow for multiple identical SETTLE setups at GROMACS / GROMACS 2026-03-20T09:58:27Z acmnpv Paul Bauer
tag:gitlab.com,2026-03-20:5225528356 Paul Bauer approved merge request !5817: Introduce PME-PP comm manager at GROMACS / GROMACS 2026-03-20T09:58:18Z acmnpv Paul Bauer

This is pure refactoring, no behaviour changes apart from not rushing to destruct PmePpCommGpu.

Now a single object coordinates both communication and force-reduction aspects of PP ranks when they use a separate PME-only rank. Direct-GPU communication is handled by an object it owns. It keeps track of init- and repartition-time constants so these no longer have to be passed by do_force() every step.

The new object does not depend on t_forcerec, interaction_const_t, or StatePropagatorGpu (which the old code did).

Send-parameters and send-coordinates commands embed their own communication logic rather than call a common function that had little in common.

Signal-reset, switch-grid, and finish commands now send simple blocking MPI messages, rather than delegate to that common function, so their methods can be const.

Eliminated fields of gmx_domdec_t that related primarily to PP-PME communication. The DD builder still prepares the data needed to create PmePpComm, which can only be created after GPU task assignment is complete, so PmePpCommSettings is introduced to hold that data. The PmePpCommSettings is built in a new method of the DD builder, refactored out of setupGroupCommunication().

The NVSHMEM helper needs to know the rank of a possible PME-only rank, which is now supplied by a getter of PmePpComm rather than via gmx_domdec_t.

PME load balancing now directs PmePpComm to switch grids.

MPI requests are now handled in a std::vector

Fewer objects are made on the heap

Include statements have been adjusted to minimize dependencies

More const correctness

Refs #5539

tag:gitlab.com,2026-03-20:5225417900 Paul Bauer pushed new project branch 5589-refactor-gpu-nbnxm-fep-tests at GROMACS / GROMACS 2026-03-20T09:32:43Z acmnpv Paul Bauer

Paul Bauer (2d83cf6f) at 20 Mar 09:32

Deduplicate NBNxM FEP GPU test setup

tag:gitlab.com,2026-03-20:5225405473 Paul Bauer commented on merge request !5753 at GROMACS / GROMACS 2026-03-20T09:29:56Z acmnpv Paul Bauer

it was supposed to be used for EXCLUSION_FORCES, but that is not needed for the FEP kernel. I still want to use it for the regular kernels, but will do that in a follow-up. Removed now

tag:gitlab.com,2026-03-20:5225405370 Paul Bauer commented on merge request !5753 at GROMACS / GROMACS 2026-03-20T09:29:54Z acmnpv Paul Bauer

sorry, I misunderstood your earlier comment then. I can move things back then as you suggest