PaddlePaddle/PARL

A high-performance distributed training framework for Reinforcement Learning

What it solves

PARL provides a flexible and high-efficiency framework for reinforcement learning (RL), addressing the difficulty of implementing reproducible algorithms and scaling training across large-scale compute resources like multi-GPU and CPU clusters.

How it works

The framework uses three primary abstractions to organize the RL process:

  • Model: Defines the forward network (policy or critic networks).
  • Algorithm: Manages the mechanism for updating the model parameters.
  • Agent: Acts as the data bridge, handling I/O and preprocessing between the environment and the algorithm.

For scaling, PARL uses a decorator-based API (@parl.remote_class) and a connection method (parl.connect) to offload computation to remote CPUs or machines, allowing users to write distributed code as if it were multi-threaded.

Who it’s for

It is designed for researchers and developers building RL agents for complex tasks, ranging from simple problems like CartPole to advanced applications like autonomous driving simulation.

Highlights

  • Reproducible: Includes implementations of many influential RL algorithms.
  • Large Scale: Supports high-performance parallelization across thousands of CPUs and multiple GPUs.
  • Reusable: Algorithms can be adapted to new tasks by simply defining a new forward network.
  • Extensible: Allows for the quick creation of new algorithms by inheriting abstract base classes.
  • Distributed Training: Simplifies the transition to parallel versions of code via a compact API.

Related

  • Project
  • Project
  • Project
  • Project