Resource allocation#

canary uses a ProcessPoolExecutor to execute tests asynchronously using N workers[1]. Tests are submitted to the executor such that the number of occupied slots of a resource remains less than or equal to the total number slots available. Resources across compute nodes are specified within a “resource pool” using a structured JSON format[2].