In complex systems that consist of many software modules deployed onto the various components of a System on Chip (SoC), it is hard to keep an eye on the whole picture. We can help with this by providing an independent expert view on the problem.
Specifically, we helped one customer to reduce the system load by architecture-level optimizations like better scheduling of individual processes, appropriately pinning them to cores to avoid high cost of data transfer and reduce the overall number of threads in the system. Subsequently, we identified the most expensive user applications and communication gateways and helped the respective teams to optimize them. Our efforts reduced the load on the customer’s overburdened system by the equivalent of one CPU cluster.
Quick facts
Hardware:
- SoC: Texas Instruments™ TDA4
- CPUs: Two clusters of Arm® Cortex®-A72
Operating System:
- Blackberry® QNX®
Compiler:
- Blackberry QNX compiler (GCC-based)
Summary of our results:
- System-level architectural optimizations like scheduling of processes, core pinning and reduction of number of threads
- Optimization of most expensive user applications and communication gateways
- Reduced resource usage by the equivalent of one cluster of Arm Cortex-A72.