  Tangled Program Graph (TPG) is a reinforcement learning technique based on
genetic programming concepts. On state-of-the-art learning environments, TPGs
have been shown to offer comparable competence with Deep Neural Networks
(DNNs), for a fraction of their computational and storage cost. This lightness
of TPGs, both for training and inference, makes them an interesting model to
implement Artificial Intelligences (AIs) on embedded systems with limited
computational and storage resources. In this paper, we introduce the Gegelati
library for TPGs. Besides introducing the general concepts and features of the
library, two main contributions are detailed in the paper: 1/ The
parallelization of the deterministic training process of TPGs, for supporting
heterogeneous Multiprocessor Systems-on-Chips (MPSoCs). 2/ The support for
customizable instruction sets and data types within the genetically evolved
programs of the TPG model. The scalability of the parallel training process is
demonstrated through experiments on architectures ranging from a high-end
24-core processor to a low-power heterogeneous MPSoC. The impact of
customizable instructions on the outcome of a training process is demonstrated
on a state-of-the-art reinforcement learning environment. CCS Concepts:
$\bullet$ Computer systems organization $\rightarrow$ Embedded systems;
$\bullet$ Computing methodologies $\rightarrow$ Machine learning.
