PDC (Proactive Data Containers) is a software-defined data management system meant for high performance computing systems with several layers of storage, aiming to minimize overhead of moving data between memory and storage layers.
Its existing interface is written in C, but with the rise of Python in scientific computing applications, PDC would be much more accessible with a python interface.
This repository contains that interface, its documentation, and unit tests.
This project was originally developed as part of Google Summer of Code 2022 (project page), and was supported by CROSS.
PDCpy is compatible with openmpi and mpich. If neither compiler is installed, it will attempt to compile without mpi support, which will fail if you compile pdc with mpi support.
-
Install PDC: Follow the instructions on the PDC repository:
https://pdc.readthedocs.io/en/latest/getting_started.html#installing-pdc-from-source-code
After installing PDC, ensure the following:
$PDC_DIR
and$MERCURY_DIR
are set to their correct locations.pdc_server
is on yourPATH
.$LD_LIBRARY_PATH
has the location oflibpdc.so
.- You installed the
develop
branch, NOT thestable
branch.
-
Install PDCpy:
pip install PDCpy
If you prefer to build PDCpy manually, follow these steps:
- Install build dependencies:
pip install Cython numpy setuptools wheel
- Build the Cython extensions:
This will compile the Cython source files and place the compiled
python3 setup.py build_ext --inplace
.so
(or.pyd
on Windows) files directly in thepdc/
directory.