Standardize Collective Client Calls#310
Open
TheAssembler1 wants to merge 9 commits into
Open
Conversation
eda317b to
0c908ff
Compare
There was a problem hiding this comment.
Pull request overview
This PR standardizes the PDC client API for MPI-collective operations by renaming collective variants to use a _coll suffix and (intended) adding an explicit communicator parameter as the last argument, then updates call sites across tools, examples, tests, and docs accordingly.
Changes:
- Renamed collective APIs (e.g.,
*_mpi/*_col) to*_colland updated call sites across the repo. - Updated container/object/region-transfer headers and implementations to reflect the standardized collective signatures.
- Updated documentation to reference the new API names/signatures.
Reviewed changes
Copilot reviewed 47 out of 47 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| src/tools/pdc_query_eqsim.c | Updates object creation call to new _coll API. |
| src/tools/pdc_import_eqsim.c | Updates object creation call to new _coll API. |
| src/tools/pdc_access_eqsim.c | Updates object open call to new _coll API (introduces non-MPI build concern). |
| src/tests/tags/kvtag_query.c | Updates container creation to _coll with MPI guard. |
| src/tests/obj/write_obj_shared.c | Renames collective object create call to _coll. |
| src/tests/obj/read_obj.c | Updates collective container/object create calls to _coll. |
| src/tests/obj/read_obj_shared.c | Updates collective container/object create calls to _coll. |
| src/tests/obj/open_obj_round_robin.c | Updates collective container create call to _coll. |
| src/tests/obj/obj_round_robin_io.c | Updates collective container create call to _coll with MPI guard. |
| src/tests/obj/obj_round_robin_io_all.c | Updates collective container create call to _coll with MPI guard. |
| src/tests/obj/obj_life.c | Updates collective container create call to _coll with MPI guard. |
| src/tests/obj/create_obj_scale.c | Updates collective container create call to _coll. |
| src/tests/obj/create_obj_coll.c | Renames collective object create calls to _coll. |
| src/tests/misc/vpicio.c | Updates container/object create and transfer-start-all collective calls to _coll. |
| src/tests/misc/read_write_perf.c | Adjusts MPI timing guards around transfer start/wait calls. |
| src/tests/misc/read_write_col_perf.c | Renames collective object create call to _coll and adjusts MPI timing guards. |
| src/tests/misc/producer_waitall.c | Updates collective container create call to _coll. |
| src/tests/misc/bdcats.c | Updates collective object open and start-all collective calls to _coll. |
| src/tests/deprecated/vpicio_v2.c | Updates collective container/object create calls to _coll. |
| src/tests/deprecated/vpicio_old.c | Updates collective container/object create calls to _coll. |
| src/tests/deprecated/obj_transformation.c | Renames collective object create calls to _coll. |
| src/tests/deprecated/buf_obj_map_mpi.c | Renames collective object create call to _coll. |
| src/tests/deprecated/buf_map_mpi_v2.c | Renames collective object create call to _coll. |
| src/tests/deprecated/blocked_lock.c | Updates collective object create call to _coll (currently missing comm argument). |
| src/tests/cont/open_cont.c | Updates collective container create call to _coll with MPI guard. |
| src/tests/cont/create_cont_coll.c | Updates collective container create call to _coll. |
| src/tests/cont/cont_getid.c | Updates collective container create call to _coll with MPI guard. |
| src/api/pdc_region/pdc_region_transfer.c | Renames region transfer collective entry points to _coll. |
| src/api/pdc_region/include/pdc_region.h | Updates public prototypes to renamed _coll transfer APIs. |
| src/api/pdc_obj/pdc_obj.c | Adds PDCobj_open_coll API shape (comm parameter currently unused). |
| src/api/pdc_obj/pdc_mpi.c | Renames MPI object-create implementation to PDCobj_create_coll. |
| src/api/pdc_obj/pdc_cont.c | Adds *_coll container APIs with comm parameter (comm currently unused). |
| src/api/pdc_obj/include/pdc_obj.h | Updates public object header to expose _coll API (currently syntactically broken). |
| src/api/pdc_obj/include/pdc_mpi.h | Renames MPI object-create prototype to PDCobj_create_coll. |
| src/api/pdc_obj/include/pdc_cont.h | Updates public container header to expose _coll APIs (currently breaks non-MPI builds). |
| examples/vpicio.c | Updates example to new _coll container/object creation calls. |
| examples/vpicio_old.c | Updates example to new _coll container/object creation calls. |
| examples/vpicio_batch.c | Updates example to new _coll container/object creation calls. |
| examples/tileio.c | Updates example to new _coll object/container calls. |
| examples/tileio_v2.c | Updates example to new _coll object/container calls. |
| examples/read_write_col_perf.c | Updates example to new _coll object creation call. |
| examples/haccio.c | Updates example to new _coll object/container calls. |
| examples/haccio_v2.c | Updates example to new _coll object/container calls. |
| examples/bdcats.c | Updates example to new _coll object-open calls. |
| examples/bdcats_batch.c | Updates example to new _coll object-open calls. |
| docs/source/using_pdc.rst | Updates docs to new _coll API names/signatures (snippet inconsistency present). |
| docs/source/client_api.rst | Updates doxygen listing to new _coll container-create API name. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
28
to
+32
| #include "pdc_public.h" | ||
| #include "pdc_mpi.h" | ||
| #ifdef ENABLE_MPI | ||
| #include <mpi.h> | ||
| #endif |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
33b6f1b to
1ae0290
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issues / Pull Requests
List all related issues and/or pull requests if there are any
#288 (comment)
#290 (comment)
Summary
This PR standardizes the naming and signature of all collective MPI operations in the PDC client API across 47 files. The convention is now consistent: collective variants use a
_collsuffix and always take an MPI communicator (MPI_Comm comm) as their last parameter.Changes
API standardization (src/api/):
Examples updated (examples/):
Tests updated (src/tests/):
Tools updated (src/tools/):
Docs updated (docs/):
Convention
Before this PR, collective calls were inconsistently named and some did not expose the MPI communicator to the caller. The new standard is:
Example:
Before: PDCcont_create(name, prop)
After: PDCcont_create_coll(name, prop, comm)
Include a brief summary of the proposed changes.
What changes are proposed in this pull request?
Checklist: