The divide and conquer technique is a time tested process for problem solving which is taking small steps to solve problem. For refactoring applications, a first step could be to identify two parts of the application for separate modules (nodes). Ideally, the data sharing would be for one application node to pass data to the other module. When the two-part application is successfully operational, then identify another application segment that could operate as a separate module. The steps would be repeated until the application is re-factored to meet the requirements.
Applications may have a code segment that runs more frequently and or consumes a substantially higher amount of compute time. These code segments (nodes) are ideal for replication onto cores where the computation is performed in parallel with other computation and control algorithms.
The method of data sharing between nodes affects performance. Nodes on the same chip will likely use common memory to share data. Since the cores can process the data faster than the data can be moved to the core, the developer needs to consider memory contention as a bottle neck. When using memory to share data, Poly-Platform allows the developer to configure several data sharing methods which include:
- Share by reference
- Copy to local memory
- Copy from local memory to the another core’s local memory
- Chip manufacturer supplied data sharing accelerators