As modern hardware trends shift towards multi-core architectures, Automation Software 6 (AS6) has evolved to fully leverage these capabilities. This article outlines the technical implementation of multicore processing in AS6, its integration into runtime environments, and practical considerations for developers.
Why Multicore?
- CPU frequency has plateaued, and single-core performance improvements are marginal.
- Core counts are increasing, making parallel execution essential for performance gains.
AS6 adapts to this trend by enabling parallel task execution across multiple cores.
Runtime Architecture: From Single-Core to Multicore
Traditional Single-Core Execution
Tasks are queued and executed based on priority. Only one task runs at a time, limiting performance.
Multicore Execution Model
Tasks are distributed across available cores. Parallel execution of high-priority tasks is now possible. Dynamic load balancing ensures optimal CPU utilization.
Evolution Processing in AS6 Timeline
Release | Key Features |
---|---|
AR 6.1 | Multicore platform for mapp packages, Automation Runtime API |
AR 6.3 | Multicore diagnostics (Profiler, SDM) |
AR 6.4 | Full multicore support for non-hard RT system tasks |
AR 6.x | More to come ![]() |
Runtime Integration
Automation Runtime API enables system-level multicore control. RT Class-based task scheduling allows fine-grained priority management. Background tasks are dynamically distributed across cores.
Technology Package Multicore Support
Multicore support is integrated into several key packages:
- mapp View 6.1
- OPC UA FX 6.1
- OPC UA Client/Server
- mapp Robotics 6.2
- mapp Track (comming soon)
Tasks are automatically balanced across the least utilized cores, improving responsiveness and throughput. Tasks may be automatically migrated from one core to another at runtime based on system load.
OPC UA FX & OPC UA C/S 6.1
- Multicore Processing activated by default (configurable) – tasks balanced on least utilized cores
mapp View 6.1
- Multicore Processing activated by default - tasks balanced on least utilized cores
Real-World Example: mapp Robotics
Using Codian Delta Robots on APC3200:
- With multicore support, up to 7 robots can be handled simultaneously.
- CPU load is distributed across cores, significantly reducing bottlenecks on Core 0.
- Demonstrates scalability and efficiency of multicore task scheduling.
Diagnostics and Profiling
From AR 6.3 onwards:
- System Diagnostics Manager (SDM) and Automation Studio Profiler provide visibility into core usage.
- Developers can identify bottlenecks and optimize task distribution.
Hardware Compatibility
Not all B&R hardware supports multicore. BIOS settings and I/O system configurations may reserve cores. Refer to System Datasheets for supported targets and configurations.
Case Studies
- IO scheduler can not benefit from multicore processing
- Task classes parallelization will come in one of upcoming AR version
Unsuitable Project (AR 6.4)
High cyclic load (44.38%) not parallelizable. Only 12.4% of tasks could benefit from multicore. Minimal performance gain.
Suitable Project (AR 6.4)
45.5% of system tasks were multicore-ready. Real-world reduction of 30–40% in Core 0 load. Significant performance improvement.
Application Code Considerations
Pitfall: Priority-Based Synchronization
On single-core systems, task execution is serialized. On multicore systems, simultaneous access to shared memory can lead to race conditions.
Solution: Use memory locks or synchronization primitives (e.g., AsSem Standard Library) to ensure data integrity.
QnA
-
How Multicore Processing is handled with a Hypervisor System?
- Starting with AR 6.4 and AS 6.5 the Cores of an APC can be assigned to either GPOS or Automation Runtime
-
Is debugger ready for that ? will the all cores be stopped if it reach a breakpoint in one core ??
- Yes. The debugger stops tasks, not cores — tasks are stopped no matter which core they are running on
-
Is ARsim also using multicore?
- yes
-
Does the “mappCNC” also support multicore processing (Since mappRobotics supports..)?
- Yes
-
Is multicore functionality supported on X20CP0410 and X20CP0411?
- No, there is only a license for one core on these CPUs.