XPDL

Extensible Platform Description Language for Heterogeneous Computer Systems

Features Publications Download License Code Examples Ongoing Work Contact Acknowledgments

A platform description is a human- and machine-readable data sheet describing the main structure and parameters of a computer system's hardware and system software for retargetable toolchains for analysis and optimization.

XPDL is a formal modeling language for describing the structure and properties of computer systems as far as relevant for modeling, analysis and optimization of programs and system configurations for improved performance and energy usage.
XPDL allows to model the structure of clusters, servers with accelerators, embedded computing devices, processors, accelerators and memory units and their interconnects, as well as static principles of their behavior, such as power domains and power state machines. Beyond hardware modeling, platform specifications also include descriptions of installed system software, such as libraries, compilers, runtime systems and operating systems.

XPDL allows for modeling at the meta-level (e.g., new processor types) as well as instantiations at the base level (e.g., concrete server installations).
XPDL uses XML syntax; its hierarchical structure reflects the hierarchy of complex computer systems.
XPDL leverages inheritance and hyperlinks to increase reuse of submodels and to create a world-wide web of platform specifications,

The main purpose of XPDL is to promote retargetability in generic toolchains for performance and energy optimization, as being developed e.g. in the EU FP7 EXCESS project.



Main Features



XPDL poster

Publications

Other Material:


XPDL Toolchain Source Code and Documentation



Software License

LGPL v3



Code Examples

See the above publications for XPDL example models.



Ongoing work

XPDL is a work in progress. Future work includes adding support for modeling more features and properties, supporting model visualization and graphical editing, and conversion tools.

If you would like to contribute, please let us know.



Contact

For reporting bugs, please email to "<firstname> DOT <lastname> AT liu DOT se".


Acknowledgments

This work was partly funded by the EU FP7 project EXCESS and by SeRC project OpCoReS.