StructGen provides a language to specify data structures at a high level.
Based on this specification it can generate:
- C code to specify memory layout of the data structures,
- Python helper routines for reading and writing these structures,
- Java helper routines for reading and writing these structures,
- MPI helper routines to move the data across MPI ranks,
- OpenMP helper routines to move the data across NUMA nodes, and
- CUDA helper routines to move the data to and from GPUs.