PolyCore Software’s Poly-Platform, comprised of development tools and run-time solutions, provides a programming model to simplify application design and improve productivity for multicore, and multi-processor architectures. By using a message based programming model, the application can be enabled for SMP and AMP configurations and have a basis to scale from one to many cores.
Poly-Platform provides the runtime performance and features for data plane applications, and, offers the flexibility for control plane applications to communicate with the data plane. With Poly-Platform, the software architects, systems engineers and developers can work together towards the goal of attaining wirespeed performance by building an optimized application for the hardware platform. Performance is achieved through user configurable parameters for communications and mechanisms for sharing data between application modules. The data sharing may be specified as zero copy or multiple buffering, and data movement policies, such as pacing, may be included. If available, hardware accelerators are used, as configured by the developer.
By abstracting the application from the hardware topology, systems engineers are now able to develop a workflow in Linux or Windows, and easily reconfigure the application’s communications topology for the target platform. By using Poly-Platform’s mapping component, the developer could develop and test a multicore application’s flow on a host computer. The communications between the application’s nodes can then be re-configured for the target hardware. Assuming initialization and OS specifics have been managed, the same application source code could be run on both the target platform and the host development environment.
Poly-Platform’s optimized runtime and configurability simplifies heterogeneous communication between different processors and operating systems. The developer can quickly enable the application for more than one software topology and then identify the software topology, which yields the best performance for a specific hardware architecture. Application performance is further tuned by the developer through Poly-Platform’s message passing policies and memory usage mechanisms.