Exploiting Multi-Core with CoreDX Data Distribution Service

573 views

Published on

It has been said that change is the only constant. In the computing world, hunger for more performance is a constant. The increase in multicore processors that squeeze more performance from less power is a constant. And with these constants come the need for applications that can deliver more performance on these advanced processor cores.

CoreDX DDS™ is designed to address this need. CoreDX DDS™ utilizes multi-core hardware. Architected from the ground-up to exploit multicore resources, the CoreDX DDS™ middleware provides a clean interface to these parallel and dis-tributed programming environments.
CoreDX DDS™ is a communications mid-dleware. It is an implementation of the Data Distribution Service: a Publish-Subscribe data communications standard managed by the OMG. The DDS standard includes support for Type-Safe application defined data types; dynamic discovery of publishers, subscribers, and topics; and rich Quality of Service policy configuration.
With an internal threading model that is tuned to run on multiple cores and a flexi-
3
ble programming interface, CoreDX DDS™ offers distinct advantages to system architects. The CoreDX DDS™ API supports different data access models: polling, synchronous event no-tification, and asynchronous event noti-fication. This flexibility, coupled with robust Quality of Service policy con-figuration, makes CoreDX DDS™ highly relevant to multicore applica-tions.
This paper explores the application of CoreDX DDS to multicore applications, and presents some design patterns to help exploit those additional cores.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
573
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Exploiting Multi-Core with CoreDX Data Distribution Service

  1. 1. Exploiting Multi-Core with CoreDX Data Distribution Service January 2012 1
  2. 2. In the computing world, hunger for more performance is a constant. There is a need for applications that can deliver more performance on advanced processor cores. CoreDX DDS™ Communications Middleware is designed to address this need. CoreDX DDS™ utilizes multicore hardware. Architected from the ground-up to exploit multicore resources, CoreDX DDS™ middleware provides a clean interface to these parallel and distributed programming environments. Introduction
  3. 3.  Parallel-programming environments raise significant complexity challenges.  CoreDX DDS™ offers a valuable abstraction layer that insulates from the complexity of parallel and distributed programming. Multicore Challenges Figure 1 - Single Threaded Application with no Middleware. Additional cores are underutilized.
  4. 4. Application software that supports parallel programming is complex and fragile  Complexity arises from the need to address critical section protection, thread synchronization, library thread-safety, synchronous versus asynchronous event notification, processor affinity, cache management, and the debugging challenges presented by multi- threaded systems.  Middleware components that are not architected to support multicore programming environments are of little help. These middleware components (see Figure 2) are restricted to a single core, and do not assist the developer with pipelining the data flow. Previous Options Figure 2 - Single Threaded Application with Single Threaded Middleware. Additional cores are underutilized.
  5. 5.  Implementing a multi-threaded application on top of a single-threaded middleware layer is ineffective. The internal synchronization of the single-threaded middleware layer will serialize the process, again resulting in underutilized cores.  Even a multi-threaded application is serialized to a single core if the middleware technology is not designed to facilitate data pipelining. Previous Options Cont. Figure 3 - Multi-Threaded Application with Single Threaded Middleware. Additional cores are still underutilized.
  6. 6.  The following items are critical for successful multicore optimization:  Non-blocking data publication  (A)synchronous event notification  Arbitrary data access  Loose-coupling CoreDX DDS™ Solution
  7. 7.  With non-blocking data publication, an application can present data to CoreDX DDS™ middleware for publication, and then continue to perform additional processing.  The application thread is not blocked while the middleware performs the distribution of the data. Non-Blocking Data Publication
  8. 8. Application software event notifications:  The combination of WaitSets and Conditions supports single threaded access to middleware events. ▪ An application simply blocks on a WaitSet until the requested events have been detected.  Listener callbacks allows the application developer to expand the threading model of the application and embodies an Event Driven Architecture (EDA). ▪ This architecture model is very flexible, and promotes Open Architecture principles. Synchronous and Asynchronous Event Notification
  9. 9.  With CoreDX DDS™ applications are not required to access data samples in the order that they arrive.  The application can choose to access data in a natural manner.  Further, the developer can request that the middleware maintain historical data, relieving the application code from this task. Arbitrary Data Access
  10. 10.  CoreDX DDS™ features a multi-threaded core, employing an advanced threading architecture to support data pipelining and event notification.  This technology directly addresses the need of system architects to fully harness multicore processing power, resulting in:  full utilization of available cores  reduced data latency  simplified application architecture Multi-Threaded Core Figure 4 - Multi-Threaded Application with CoreDX DDS Multi- Threaded Middleware. All cores are utilized.
  11. 11.  Because of the flexible API and advanced multi-threaded architecture of CoreDX DDS™ middleware, applications can be single or multi-threaded and still utilize multiple cores.  The application can use synchronous or asynchronous event notification, or can poll for events as necessary.  The dynamic discovery aspects of the DDS protocol promote Open Architecture goals.  With an internal threading model that is tuned to run on multiple cores and a flexible programming interface, CoreDX DDS™ offers distinct advantages to system architects.  The CoreDX DDS™ API supports different data access models: polling, synchronous event notification, and asynchronous event notification.  This flexibility, coupled with robust Quality of Service policy configuration, makes CoreDX DDS™ highly relevant to multicore applications. Summary
  12. 12. Twin Oaks Computing, Inc. is a company dedicated to developing and delivering quality software solutions. Our staff has extensive experience developing and supporting robust communication architectures. We leverage this world-class technical experience to provide innovative and useful communication software systems. We build the software that collects, manages, and distributes information in a wide range of industries. Our software is in use around the world supporting critical missions. Equally important, our clients are amazed and totally satisfied with our super responsive customer service. One of our early customers in China states, “Twin Oaks Computing [provided] great porting work during very short period of time (each porting for about 2-3 weeks). This made me really appreciate the portability framework of CoreDX DDS.” - Mr. Huang “There is nothing I don’t like about working with Twin Oaks Computing. In particular, working with Nina is a singular pleasure in today’s world of technical support - she is very responsive and helpful.” - Dr. Michael Mezzino Super-small and blazingly fast, our flagship product, CoreDX DDS is the leading Publish-Subscribe middleware available for small-footprint and embedded systems. For more information please visit www.twinoakscomputing.com. About Twin Oaks Computing
  13. 13. For Additional Information

×