pyCPA is a pragmatic Python implementation of Compositional Performance Analysis (CPA) used for research in worst-case response-time and end-to-end latency analysis. Given, you have a (distributed) real-time system and you want to know about worst-case (end-to-end) timing behavior, then you can use pyCPA to obtain these bounds. You provide your architecture in the form of resources such as busses and CPUs and the corresponding scheduling policies. In a second step, you define your task graph which is a specification of precedence relations and tasks’ properties (best/worst-case execution times, activation patterns). From a research and prototyping perspective, pyCPA demonstrates the huge benefit of combining a modular methodology (CPA) with a modular implementation: It easily deals with complex heterogeneous systems that you face in realistic scenarios. Here, different scheduling and communication strategies are present that often require distinct analysis techniques, which can be easily combined and tested within the pyCPA’s framework.
Link to the bitbucket repository