Skip to content

Commit c52fb80

Browse files
committed
checkpoint
1 parent 27009a1 commit c52fb80

File tree

10 files changed

+184
-202
lines changed

10 files changed

+184
-202
lines changed

docs/source/advanced_topics.rst

Lines changed: 0 additions & 60 deletions
This file was deleted.

docs/source/appendix.rst

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/source/client_api.rst

Lines changed: 78 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,20 @@ It includes the types, core layer functions, properties, containers,
88
objects, and region management functions. Use the links below to
99
quickly navigate to each subsection:
1010

11-
- :ref:`client_api_types` - Types used in the Client API
12-
- :ref:`client_api_layer` - Initialization and shutdown functions for the PDC layer
13-
- :ref:`client_api_properties` - Functions for creating and closing properties
14-
- :ref:`client_api_containers` - Functions for creating and managing containers
15-
- :ref:`client_api_objects` - Functions for creating and managing objects
16-
- :ref:`client_api_object_tags` - Functions for creating and managing object tags
17-
- :ref:`client_api_regions` - Functions for creating and managing regions
18-
- :ref:`client_api_object_data_transfers` - Functions for object data transfers
19-
20-
.. _client_api_types:
21-
22-
**4.1.** Types
23-
--------------
11+
- :ref:`client_api_data_types` - Data types used in the Client API.
12+
- :ref:`client_api_layer` - Initialization and shutdown functions for the PDC layer.
13+
- :ref:`client_api_properties` - Functions for creating and closing properties.
14+
- :ref:`client_api_containers` - Functions for creating and managing containers.
15+
- :ref:`client_api_objects` - Functions for creating and managing objects.
16+
- :ref:`client_api_object_tags` - Functions for creating and managing object tags.
17+
- :ref:`client_api_regions` - Functions for creating and managing regions.
18+
- :ref:`client_api_object_data_transfers` - Functions for object data transfers.
19+
- :ref:`client_api_object_data_querying` - Functions for querying object data.
20+
21+
.. _client_api_data_types:
22+
23+
**4.1.** Data Types
24+
-------------------
2425

2526
.. doxygentypedef:: pdcid_t
2627
:project: PDC
@@ -40,10 +41,28 @@ quickly navigate to each subsection:
4041
.. doxygenenum:: pdc_lifetime_t
4142
:project: PDC
4243

43-
.. doxygenenum:: pdc_prop_type_t
44+
.. doxygenenum:: pdc_consistency_t
4445
:project: PDC
4546

46-
.. doxygenenum:: pdc_consistency_t
47+
.. doxygenenum:: pdc_prop_name_t
48+
:project: PDC
49+
50+
.. doxygenenum:: pdc_query_op_t
51+
:project: PDC
52+
53+
.. doxygenenum:: pdc_query_combine_op_t
54+
:project: PDC
55+
56+
.. doxygenenum:: pdc_query_get_op_t
57+
:project: PDC
58+
59+
.. doxygentypedef:: pdc_selection_t
60+
:project: PDC
61+
62+
.. doxygentypedef:: pdc_query_constraint_t
63+
:project: PDC
64+
65+
.. doxygentypedef:: pdc_query_t
4766
:project: PDC
4867

4968
.. _client_api_layer:
@@ -198,4 +217,48 @@ quickly navigate to each subsection:
198217
:project: PDC
199218

200219
.. doxygenfunction:: PDCobj_get_data
220+
:project: PDC
221+
222+
.. _client_api_object_data_querying:
223+
224+
**4.9** Object Data Querying
225+
----------------------------
226+
227+
.. doxygenfunction:: PDCquery_create
228+
:project: PDC
229+
230+
.. doxygenfunction:: PDCquery_and
231+
:project: PDC
232+
233+
.. doxygenfunction:: PDCquery_or
234+
:project: PDC
235+
236+
.. doxygenfunction:: PDCquery_sel_region
237+
:project: PDC
238+
239+
.. doxygenfunction:: PDCquery_get_selection
240+
:project: PDC
241+
242+
.. doxygenfunction:: PDCquery_get_data
243+
:project: PDC
244+
245+
.. doxygenfunction:: PDCquery_get_histogram
246+
:project: PDC
247+
248+
.. doxygenfunction:: PDCselection_free
249+
:project: PDC
250+
251+
.. doxygenfunction:: PDCquery_free
252+
:project: PDC
253+
254+
.. doxygenfunction:: PDCquery_free_all
255+
:project: PDC
256+
257+
.. doxygenfunction:: PDCquery_print
258+
:project: PDC
259+
260+
.. doxygenfunction:: PDCselection_print
261+
:project: PDC
262+
263+
.. doxygenfunction:: PDCselection_print_all
201264
:project: PDC

docs/source/core_concepts.rst

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,7 @@ Regions
8080
-------------------
8181

8282
Properties determine how objects, containers, etc., behave.
83-
A property list is created using ``PDCprop_create(x)``, where ``x`` is
84-
the entity type (``PDC_CONTAINER``, ``PDC_OBJ``, etc.). Once created, the
85-
property list can be configured through additional function calls that
83+
Once created, the property list can be configured through additional function calls that
8684
append or modify properties. These customized property lists can then be
8785
used in later calls to control the behavior of the associated entities. Some
8886
examples of configurable properties are shown below.

docs/source/developer_guide.rst

Lines changed: 0 additions & 58 deletions
This file was deleted.

docs/source/index.rst

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,17 @@ Use the table of contents below to explore the sections in more detail
2626
introduction
2727
core_concepts
2828
using_pdc
29-
.. advanced_topics
3029

3130
.. toctree::
3231
:maxdepth: 2
3332
:caption: Client API/Tools & Develop Guide
3433

3534
client_api
3635
client_tools
37-
.. developer_guide
3836

3937
.. toctree::
4038
:maxdepth: 1
4139
:caption: Community and Contributions
4240

4341
contributing
44-
.. appendix
42+
roadmap

docs/source/introduction.rst

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,13 @@ PDC offers the following methods for installing core dependencies:
3535

3636
PDC offers the following installation targets:
3737

38-
1. :ref:`C API <c-api>`
38+
1. `C API`
3939
2. :ref:`Python API (PDCpy) <python-api-pdc-py>`
4040
3. :ref:`HDF5 VOL Connector (VOL-PDC) <hdf5-vol-connector>`
4141

4242
.. figure:: ../_static/image/pdc-installation.png
4343
:alt: PDC Installation Diagram
4444
:align: center
45-
:class: bordered-image
4645

4746
Installation workflow to install the client targets offered by PDC.
4847

@@ -353,6 +352,22 @@ Legend:
353352
- 🟡 = Partially/experimentally supported
354353
- 🔴 = Not supported or currently disabled
355354

355+
Several parameters can be specified at compile-time
356+
and then subsequently overwritten at runtime by
357+
setting the appropriate environment variable.
358+
359+
Runtime Options
360+
~~~~~~~~~~~~~~~
361+
362+
- PDC_DATA_LOC: Data directory path.
363+
- PDC_TMPDIR: Metadata directory path.
364+
- PDC_BB_LOC: Burst buffer directory path.
365+
- PDC_SERVER_CACHE_MAX_SIZE: Max server side cache size (GB).
366+
- PDC_SERVER_IDLE_CACHE_FLUSH_TIME: Time interval of the server side cache inactivity before automatic flush (sec).
367+
- PDC_SERVER_CACHE_NO_FLUSH: Disable the flushing of the server side cache.
368+
- HG_TRANSPORT: Specifies the Mercury communication transport protocol.
369+
- HG_HOST: Defines the hostname or IP address used by the Mercury network layer.
370+
356371
.. note::
357372

358373
``-DCMAKE_C_COMPILER=mpicc -DMPI_RUN_CMD=mpiexec`` may need to be
@@ -398,11 +413,6 @@ using the ``-L serial`` parameter:
398413
on a compute node, you can submit an interactive job on Perlmutter:
399414
``salloc --nodes 1 --qos interactive --time 01:00:00 --constraint cpu --account=mxxxx``
400415

401-
.. _c-api:
402-
403-
**1.3.** C API
404-
--------------
405-
406416
.. _python-api-pdc-py:
407417

408418
**1.4.** Python API (PDCpy)
@@ -756,4 +766,14 @@ No Provider Found
756766
Mercury was unable to find a valid provider based on your hostname (``ta1-pc`` in this case).
757767
Please review the connection string (``ofi+tcp://ta1-pc:7000``) and ensure that the appropriate
758768
transport and host are set. If you're unsure which transport or host to use, you can run ``fi_info``
759-
(found in the ``bin`` directory of your libfabric installation) to list available network providers.
769+
(found in the ``bin`` directory of your libfabric installation) to list available network providers.
770+
771+
772+
**1.9.** Contact and Additional Information
773+
-------------------------------------------
774+
775+
For questions, collaborations, or feedback, please open an issue on the project's GitHub page.
776+
You can also explore the **PDC Dashboard** for an evaluation of **VPIC**, a particle simulation I/O kernel.
777+
778+
- **Project Page:** `https://github.com/hpc-io/pdc <https://github.com/hpc-io/pdc>`_
779+
- **PDC Dashboard:** `Google Sheets Link <https://docs.google.com/spreadsheets/d/1Ho5W4U56lT03OHS5AVFhn9hT6eJIfBj-sCa20F--3VY/edit?gid=1616818039#gid=1616818039>`_

docs/source/roadmap.rst

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
**7.** PDC Project Roadmap
2+
===========================
3+
4+
**7.1.** Overview
5+
-----------------
6+
7+
This roadmap outlines the current focus areas, near-term development goals, and long-term
8+
vision for PDC.
9+
10+
**7.2.** Current Focus (Ongoing)
11+
--------------------------------
12+
13+
- **Stability and Performance**
14+
- Continue improving metadata and data transfer scalability across large-scale HPC systems.
15+
- Optimize communication via Mercury and MPI layers.
16+
- Enhance fault tolerance and recovery mechanisms for PDC servers.
17+
18+
- **User Experience**
19+
- Streamline configuration with clearer environment variables and default parameters.
20+
- Expand documentation and example workflows for common HPC use cases.
21+
22+
- **Interoperability**
23+
- Strengthen integration with HDF5, ADIOS, and other I/O frameworks.
24+
- Improve support for various network transports through Mercury (``ofi``, ``tcp``, ``verbs``, etc.).
25+
26+
**7.3.** Short-Term Goals (Next 6-12 Months)
27+
--------------------------------------------
28+
29+
- Implement enhanced **data caching and eviction policies** to reduce I/O latency.
30+
- Improve **burst buffer management** for hybrid memory/storage architectures.
31+
- Extend **metadata indexing** and search capabilities.
32+
- Add more comprehensive **unit and integration tests** in CI pipelines.
33+
- Expand **PDC client APIs** in C and Python with better documentation and examples.
34+
35+
**7.4.** Medium-Term Goals (1-2 Years)
36+
--------------------------------------
37+
38+
- Introduce **multi-tier data management** (memory, SSD, disk, object storage).
39+
- Develop **asynchronous data movement and prefetching** mechanisms.
40+
- Enhance **seurity and authentication** (e.g., Cray DRC, token-based access).
41+
- Support **federated PDC deployments** across distributed sites.
42+
43+
**7.5.** Long-Term Vision (Beyond 2 Years)
44+
------------------------------------------
45+
46+
- Enable **self-optimizing data placement** based on access patterns and system telemetry.
47+
- Integrate with **workflow and data provenance frameworks** for end-to-end data lifecycle management.
48+
- Expand **AI-driven data management features**, such as automated cache tuning and prediction-based prefetching.
49+
- Achieve production-grade stability and adoption across DOE and large HPC facilities.
50+
51+
*Last updated: November 2025*

0 commit comments

Comments
 (0)