Checklist for Success with Multicore · Make sure your team has access to the right training,...

10
Checklist for Success with Multicore Top Five Questions That Can Help Ensure Successful Multicore Adoption Marc Brown Vice President, VxWorks Product Strategy and Marketing, Wind River

Transcript of Checklist for Success with Multicore · Make sure your team has access to the right training,...

Page 1: Checklist for Success with Multicore · Make sure your team has access to the right training, services, and tech support to help you make the transition quickly and correctly. Ask,

Checklist for Success with MulticoreTop Five Questions That Can Help Ensure Successful Multicore Adoption

Marc BrownVice President, VxWorks Product Strategy and Marketing, Wind River

Page 2: Checklist for Success with Multicore · Make sure your team has access to the right training, services, and tech support to help you make the transition quickly and correctly. Ask,

2 | Checklist for Success with Multicore

“While multicore processors are desirable for many reasons, their use can also be extremely challenging. Many organizations rush into multicore adoption, excited about what multicore can provide to their particular market or device, without thoroughly assessing the complexities and pitfalls.” Jim Johnson, Elix Technologies, VP Sales

Multicore processors have the potential to bring tremendous value to device

manufacturers and their customers in many markets, including telecommunications,

industrial, medical, consumer, and aerospace and defense. They offer the potential

to get more processing done while reducing power consumption, increase capa-

bilities and performance, and, in general, do more with less.

While multicore processors are desirable for many reasons, their use can also be

extremely challenging. Many organizations rush into multicore adoption, excited

about what multicore can provide to their particular market or device, without

thoroughly assessing the complexities and pitfalls. More importantly, they fail to

consider whether their software platform has what it takes to deliver on the

promise of multicore. And all too often the result is not only failure to achieve the

expected benefits but also a low-quality end product or user experience, budget

overruns, and missed market windows.

You can dramatically increase your organization’s chances of successful multicore

adoption by focusing on these five key questions:

1. Is your software platform truly optimized for multicore?

2. Is your platform scalable over the life cycle of your devices?

3. Are you taking full advantage of virtualization?

4. Is your software optimized for your hardware platform?

5. Do you have access to expert multicore support services?

Executive Summary

“ Multicore and hypervisor can help you deal with complexity and boost

performance. But to really take advantage, you need tools, software, and

support that are all optimized for multicore.”

– Tomas Evensen, Chief Technology Officer, Wind River

2 | Checklist for Success with Multicore

Page 3: Checklist for Success with Multicore · Make sure your team has access to the right training, services, and tech support to help you make the transition quickly and correctly. Ask,

3 | Checklist for Success with Multicore

Is your software platform truly optimized for multicore?

Many vendors claim to offer “multicore-

optimized” solutions. It is important to look at

the multicore-readiness of the entire platform,

not just point products or individual solution

components. Be sure to consider not only the

level of optimization of the operating system

and middleware but also the tools.

Each of these elements must be designed from

the ground up for multicore to ensure the best

results:

• TheOS must be able to run in both symmetric

multiprocessing (SMP) and asymmetric multi-

processing (AMP) modes. Both modes are

important to satisfy the range of requirements

for today’s systems. Equally important, your

multicore platform should provide support

for multiple operating systems, ranging from

hard real-time to general purpose (GPOS).

The reason: There are many situations where

a single SMP OS does not deliver the level of

safety, security, performance, or scalability

required. Many devices in the industrial and

medical spaces, for example, require an RTOS

paired up with Microsoft Windows or Linux.

And it is not as simple as just providing the

operating system; the operating systems

need to collaborate, share devices, share

memory, communicate, and be analyzable

and debuggable. You need all of these key

capabilities pre-integrated, readily available,

and supported for your multicore projects—

whether they require one OS or multiple

operating systems.

• Middleware must be able to leverage the

acceleration possible with SMP and AMP

architectures. After all, a multicore processor

may have more raw processing power, but

if your middleware can’t take advantage of

those extra cores, your application could end

up running at the same speed or even slower

than on a single-core processor.

Look at the multicore-

readiness of the entire

platform, not just point

products or individual

solution components.

#1

Page 4: Checklist for Success with Multicore · Make sure your team has access to the right training, services, and tech support to help you make the transition quickly and correctly. Ask,

#1

4 | Checklist for Success with Multicore

• Toolsformulticoredevelopment must

simplify porting and optimization while also

providing the level of visibility and assurance

you’re accustomed to. And they must deliver

new capabilities beyond the traditional edit/

compile/debug cycle:

– Issues with parallelism, performance, and

cache coherency are real—and you need

tools that allow you to find these quickly on

your platform.

– Multicore tools must address new chal-

lenges around configuration, prototyping,

and simulation, and they must support

diagnosis, analysis, and testing. Having

tools that give visibility into the inter-

action between the application, the

operating system, and the chip is essen-

tial to achieving your performance and

quality goals, so you need tools that give

your developers everything they need to

effectively prototype, simulate, develop,

analyze, and diagnose multicore software.

This applies whether they are working

on a single OS single-core design, or a

single OS SMP design, or in the most

complex environments involving multi-OS

supervised AMP/SMP configurations with

multiple collaborating operating systems

and a virtualization layer—all interacting

through built-in interprocess communica-

tion or intercore communication.

– The ability to do system-level debugging

of multicore systems is critical for in-depth

analysis of programming bugs, perfor-

mance issues, and measuring optimization

tweaks. A comprehensive tool solution

must provide a rich integrated develop-

ment environment (IDE), multicore analysis,

and on-chip debugging.

continued

“ With a platform that is optimized for multicore, it becomes easier for developers

to enable next-generation applications that really deliver on both real-time and

services-oriented connected requirements.”

– Ton Steenman, Vice President, Digital Enterprise Group, Intel

Page 5: Checklist for Success with Multicore · Make sure your team has access to the right training, services, and tech support to help you make the transition quickly and correctly. Ask,

#2

Multicore capabilities will continue to evolve

and grow more sophisticated—just like the

features of your devices. As the number of

cores on a processor continues to increase,

you’ll need a platform that can scale up to

accommodate the new capabilities. It is also

important to remember that many next-

generation devices will have a lifespan of 18

months to 30 years and will exist through many

years of revisions and upgrades. Many

organizations either neglect these facts or

concentrate too narrowly on today’s

requirements.

Your multiprocessing platform should also

have the ability to support various designs and

devices. A design based on a single SMP

real-time operating system (RTOS) may be an

excellent choice for today, but as the hardware

architectures evolve, new hybrid architectures

are likely. A platform including multiple oper-

ating systems, possibly a mix of SMP and AMP,

plus virtualization and supervisors for AMP

architectures, is key to future-proofing

your systems.

For example, a current design based on a

four-core multicore processor may be ideal for

a Linux-based SMP architecture. However, as

throughput requirements increase, it may not

be feasible to scale to eight and 16 cores for

the system using SMP. Using virtualization

technology, you can dedicate specific cores for

highest throughput packet processing while

other cores maintain your Linux-based control

plane. Creating this type of architecture from

an existing design should not be disruptive.

5 | Checklist for Success with Multicore

Is your platform scalable over the life cycle of your devices?

Many next-generation

devices will have a lifespan

of 18 months to 30 years …

so a platform including

multiple operating systems

is key to future-proofing

your systems.

Page 6: Checklist for Success with Multicore · Make sure your team has access to the right training, services, and tech support to help you make the transition quickly and correctly. Ask,

#3

6 | Checklist for Success with Multicore

Multicore processors need virtualization (a

hypervisor) to deliver maximum efficiency,

flexibility, and reliability. For many people, that

is a controversial statement. There is a common

belief that as the incremental cost of processor

cores continues to decrease, virtualization will

become economically unnecessary. However,

this argument ignores the crucial fact that as

the number of cores increases, hypervisors will

make systems easier to configure, more robust,

easier to debug, and more suitable for future

expansion.

The hypervisor maps physical cores to virtual

resources (logical processors seen by guest

operating systems), making it configure

resources to specific subsystems or to consoli-

date complete systems onto a single core,

shared by multiple OSes, when demand is low.

The right hypervisor solution can not only open

up new opportunities for cost savings through

hardware consolidation, it can allow developers

to leverage multiple operating systems in a

single device so they can expand and enhance

device functionality. Hypervisor technology can

provide the new software configuration options

required to architect next-generation

embedded devices.

The right hypervisor solution can deliver real-

time values such as high performance, small

footprint, determinism, low latency, and high

Multicore software configurations

reliability. It can also be highly optimized for

and integrated with a range of operating

systems and support a broad range of

processor architectures. Security and protec-

tion is another important value a hypervisor can

bring in to the software design when multiple

operating systems are running on the same

hardware.

For multicore developers, the hypervisor is a vital

enabling technology. It can allow you to build

more functionality into smaller form factors, build

more scalable and reliable multicore systems, and

consolidate with confidence—with all the effi-

ciencies of a unified development environment. It

can also take full advantage of the multicore

hardware processing power by offering managed

operating systems in a single piece of hardware.

Are you taking full advantage of virtualization?

“Traditional” Virtualization

SMP Supervised AMP (sAMP)

OS OS

Hypervisor

OS

CPU

CPU

OS OS

Supervisor

OS

Core 1 Core 1

Core 1 Core 1

Page 7: Checklist for Success with Multicore · Make sure your team has access to the right training, services, and tech support to help you make the transition quickly and correctly. Ask,

#4

Before multicore, OS vendors offered broad OS

support over several architectures. Operating

systems provided a set of generic capabilities

and were built on top of common, generic

central processing units (CPUs).

Now many multicore devices have vertically

focused embedded hardware in their proces-

sors. Not only do these processors have

multiple processing cores, they have offload

engines designed to accelerate specific func-

tions. One example is the Freescale P4080, with

a built-in datapath acceleration architecture

specific to 3G and 4G wireless networks. The

Freescale Datapath Acceleration Architecture

(DPAA) has a set of unique, networking

equipment-specific functions built into the

processor. Cavium, NTI, NRMI, and Intel are

also building components into their multicore

chips to create hardware acceleration engines

unique to a particular vertical market.

Today’s operating systems for multicore should

also be specifically optimized for unique

processor chip capabilities. Many modern

processors include coprocessors (e.g., DSP,

graphics, or encryption engines) and a multicore,

general purpose processor. Operating systems

need to be optimized to take advantage of

these coprocessor capabilities. Flexibility isn’t

enough. The platform has to be designed from

the start to take advantage of the hardware-

acceleration capabilities that semiconductor

organizations are investing a lot of time and

money in to better serve vertical markets.

Is your software optimized for your hardware platform?

“ The biggest challenge around multicore and virtualization in the embedded

space has been the requirement for customers to move a significant amount

of code to really take advantage. We see an opportunity to accelerate this

process by partnering with leaders in the multicore environment from a silicon

perspective and a software perspective—strong companies such as Wind River

that can deliver a true partnership and integrated solutions.”

– Anthony Ambrose, Vice President, RadiSys

7 | Checklist for Success with Multicore

Today’s operating systems

for multicore should also

be specifically optimized

for unique processor chip

capabilities.

Page 8: Checklist for Success with Multicore · Make sure your team has access to the right training, services, and tech support to help you make the transition quickly and correctly. Ask,

#5

Probably the most crucial element of any

migration from single-core to multicore

architectures is the experience and skill

vendors bring to the table to support you.

Make sure your team has access to the right

training, services, and tech support to help you

make the transition quickly and correctly. Ask,

for example, whether the vendor has experi-

ence with AMP, SMP, and hypervisor solutions.

Is the vendor experienced with offload accel-

eration and optimization? Does it have tools to

support the services? Is it able to work with you

as a trusted advisor to tackle the disruption

that multicore brings to the embedded industry

and use this disruption to your commercial

benefit? The list of questions is long, but the

key element is experience with all aspects of

multicore—including architecture, tools, and

optimization.

8 | Checklist for Success with Multicore

Do you have access to expert multicore support services?

Make sure your team has

access to the right training,

services, and tech support

to help you make the

transition quickly and

correctly.

“ Through our collaboration with Wind River, we’ve been able to migrate from single

core to multicore and grow the business for our customers. They are able to come

up with new products with much higher value, much faster than in the past.”

– Behrooz Abdi, Executive Vice President, NetLogic Microsystem

Page 9: Checklist for Success with Multicore · Make sure your team has access to the right training, services, and tech support to help you make the transition quickly and correctly. Ask,

Conclusion

The benefits of multicore are numerous, but to realize them you must avoid the common pitfalls

by planning carefully and selecting a platform with the required level of optimization, flexibility,

and integration.

So before you rush into multicore, spend some time with this checklist and make sure that the

platform and vendor you choose has the breadth, depth, and quality you’ll need at every level:

from the multicore-optimization and scalability of the software platform, to hardware optimiza-

tion, to the virtualization solution, to the service and support expertise. Make sure your

prospective vendor can truly provide everything you need to transform the “potential” of multi-

core into solid business results—today and into the future.

For more information about Wind River’s multicore solutions and support capabilities,

visit www.windriver.com/multicore.

“Wind River is the only company with all the different technologies to solve the

very tricky problems around multicore and virtualization. We’ve got the operating

systems, Wind River Linux and VxWorks, that can configure in different ways

depending on your needs. We have the middleware, such as very high-

performance network stacks. We’ve got professional services that will tie all

these things together, and we’ve got world-class tools that will help you solve

the problems with multicore and virtualization.”

– Tomas Evensen, Chief Technology Officer, Wind River

9 | Checklist for Success with Multicore

Page 10: Checklist for Success with Multicore · Make sure your team has access to the right training, services, and tech support to help you make the transition quickly and correctly. Ask,

Wind River is the global leader in Device Software Optimization (DSO). We enable companies to develop, run, and manage device software faster, better, at lower cost, and more reliably. www.windriver.com

© 2010 Wind River Systems, Inc. The Wind River logo is a trademark of Wind River Systems, Inc., and Wind River and VxWorks are registered trademarks of Wind River Systems, Inc. Other marks used herein are the property of their respective owners. For more information, see www.windriver.com/company/terms/trademark.html. Rev. 01/2010

Multicore Success Checklist

Is your software platform truly optimized for multicore?

Is your platform scalable over the life cycle of your devices?

Are you taking full advantage of virtualization?

Is your software optimized for your hardware platform?

Do you have access to expert multicore support services?

#1

#2

#3

#4

#5