Standards simplify life in computing by providing commonality for interactions between different components of computing platforms as well as by broadening the access to tools and run-time software.
Life is further simplified when complementary standards collaborate. In the multicore and multiprocessor community, inter processor and inter core communications is made easier by combining the use of the RapidIO® standard and the MCAPI standard.
The Multicore Association (MCA) provides standard APIs for multicore applications. The MCA has developed MCAPI (Multicore Communications API), for standardized communications and synchronization between closely distributed cores and processors. The application platform may be a mix of cores/processors, transports and operating systems, working in an SMP, AMP or combined SMP/AMP environment. The MCA work is complementary with that of the RapidIO Trade Association. MCAPI is an application communications API which can operate over the RapidIO interconnect.
By using MCAPI, the application software can easily and transparently communicate in homogeneous and heterogeneous environments. Similar to an e-mail finding the receiver’s email application over any transport, a multicore application ideally communicates without having to deal with the specifics of the underlying physical transports, which could be shared memory for inter-core communication and RapidIO for inter-chip communication.
Development tools that support these standards simplify the generation of software to run on homogeneous and heterogeneous processing environments. These tools define and generate the communications infrastructure for the application topology that binds with a runtime module to move the data, resulting in a highly efficient development and runtime environment.
An example is Poly-Platform from PolyCore Software which provides a graphical tool for placing nodes and communications links on a topology map. A node represents a group of one or more functions and the links represent the data paths, together representing the application flow(s). The node’s operational characteristics such as processor type and operating system are defined via drop down menus. The relationship between the nodes is denoted by a connecting arrow, which is also used to identify the data movement and the communications links (transports) between the nodes.
Poly-Platform directly supports RapidIO and shared memory as transports. Using the graphical tools, the programmer selects and configures the transport using the link configuration. For the RapidIO link shown in Figure 1, the programmer selects messaging Type 9 or 11 and specifies address parameters. When using Poly-Platform, the developer can use the RapidIO and shared memory transports simply by configuring the links. The communications infrastructure is generated by Poly-Platform, freeing the programmer from writing the code.
A typical application using RapidIO is likely to also use shared memory as a transport. Such an application, using Poly-Platform, could be developed independently from the target transports. The transports are then reconfigured for the target using the same application source code. Poly-Platform works from the configuration settings enabling full transport transparency.
Another Poly-Platform tool provides MCAPI coding support, with a wizard based GUI, which can be used to insert MCAPI calls in the application source code, effectively building the communication functionality between application functions (nodes).
Standards and tools have simplified, and continue to streamline multicore and multiprocessor application development.
Ted Gribb, Vice President Sales, PolyCore Software
For more information, please visit www.PolyCoreSoftware.com and http://www.multicore-association.org/workgroup/comapi.php