Multicore: Simplify by understanding key use cases

By Bill Graham

graham_lg.jpgWind River's CTO, Tomas Evensen gave a keynote at the Multicore Expo in San Jose entitled "Surviving the Software Avalanche: Simplifying Multicore". There certainly has been much discussion of multicore by many people (myself included) over the years but we are getting to a point now that we are seeing multicore use cases coalescing in the marketplace. I think a lot of us learn better by example and when we see multicore used in a real customer use cases, we see the benefit and value much more.

Our customers are turning to multicore mainly because of economics. In some cases their performance requirements have multiplied in a few short years and in order to satisfy those requirements the computing power of their systems needs to increase significantly. But not for more cost per unit and not by consuming more power or producing more heat. One such example of this is our recently announced Network Acceleration Platform (NAP) which provides a ready-to-use network processing platform for multicore systems. The NAP greatly simplifies creating high performance networking components by encapsulating our key multicore technologies into a single bundle that is pre-integrated for particular hardware platforms. My colleague Mark Guinther goes into more detail about the industry challenges that NAP aims to address in this blog post.

Another common use case for multicore is consolidation of complicated multi-device systems into one. Combining multiple systems into a single hardware unit means less cost but also less complicated supply chain and easier support and maintenance. Multicore is not the only enabler for consolidation but it has removed previous barriers such as performance and power limitations. Our customers can now leverage our Hypervisor technology to run multiple operating systems on a single core or multicore devices to consolidate two or more systems onto a single board. The cost savings are potentially huge and these new hardware platforms are typically more powerful than previous generations and allow our customers to do much more than the previous systems allowed (i.e. consolidating several systems but also leveraging increased processing power to increase functionality).

A third driver for multicore adoption is safety and security. In highly secure systems, the secure and insecure parts of the system must be physically separate – usually by having multiple individual systems to achieve it. Modern secure systems are doing more with less by leveraging secure separation with virtualization, ie a secure Hypervisor. This ensures separation on a single system eliminating the need for multiple (and expensive) systems.

In safety critical systems it’s important to separate certified parts of the system from non-safety critical elements. For example, an industrial control system may need a safety critical control system that also provides a Linux-based user interface. The Linux and safety critical parts can both be run on the same system but separated via certified Hypervisor technology. Certainly when consolidating operating systems on a single board we want separation but in safety or security certified systems, we want guaranteed separation including data and cache. This is a specialized case of consolidation but the distinction is important since the systems of this type will require safety and security certification.

Why is understanding these use cases important? I think it puts things into perspective. Once the context of the problem is set, the block diagrams on the whiteboard make more sense. Moreover, it helps customers think about multicore from the point of view of their problems, technical and business. Is your product being outpaced by competing products? Does a new multicore hardware and software platform provide the kind of performance AND business advantage (cost, time to market, etc) that you need? It's no longer a case of multicore is a cool parallel programming demo, it’s multicore as a business solution.