Embedded.com Tech Focus Newsletter (6-25-12): Time to leave sequential coding of multicores behind? - Embedded.com

Embedded.com Tech Focus Newsletter (6-25-12): Time to leave sequential coding of multicores behind?

Embedded Newsletter for 06-25-2012

» Click here to view online I » Forward to a friend I » Sign up for an EE Times Newsletter

Share this Newsletter:

facebook linkedin twitter digg

June 25, 2012

Tech Focus: Time to leave sequential coding of multicores behind?

HIGHLIGHTS

Using Java to deal with multicore programming complexity: Part 1

ParaSail: Less is more with multicore

Thread synchronization techniques for better multicore system power/performance tradeoffs


Editor's Note

Bernard Cole Bernard Cole
Site Editor
Embedded.com

The authors of my Editor's Top Picks for this week – Atego's Kelvin Nilsen and Adacore's S. Tucker Taft – believe that despite all the tools that allow embedded systems developers to maintain traditional sequential C programming techniques in the highly parallel environment of multicore design, it is now time to leave those methods behind and move on.

In “Using Java to deal with multicore programming complexity , ” a three part series on Embedded.com this week, Nilsen first looks at the advantages of Java as a multicore programming environment, then how to transition legacy C code to Java, and finally how to achieve deterministic multicore performance using a combination of C and Java.

In “ParaSail: less is more with multicore,” Taft takes another approach to migrating to a more efficient parallel programming environment. He says Parasail will allow embedded developers to stick with some of the traditional sequential programming methods because it has been designed to eliminate many of gotchas faced in multithreaded multicore designs, such as global variables, parameter aliasing, explicit threads, lock/unlock and race conditions, and pointers.

If you are not convinced, here are a number of recent articles, white papers and webinars on the full range of traditional techniques that developers currently use, including message passing methods such as MCAPI, parallel programming extensions such as OpenMP, virtual machine execution environments using hypervisors, and interprocess communications protocols. Of these some further Editor's Favorites are:

Thread synchronization for better multicore system tradeoffs
Managing multiple processes in a deterministic multicore design
Pick the right multicore virtualization use case for your design


Design How-Tos

Using Java to deal with multicore programming complexity: Part 1

Atego's Kelvin Nilsen surveys some of the special issues that must be addressed when writing software for multiprocessor hardware and how Java can ease the transition.

ParaSail: Less is more with multicore

Adacore's S. Tucker Taft surveys the impediments developers face in doing effective multicore programming, discusses the problems they create, and illustrates how parallel programming in ParaSail is simplified by doing without them.

Multicore programming: it's all in the messaging

By making use of familiar software development frameworks such as those based on message passing, Sven Brehmer thinks the transition to embedded designs based on multicore architectures can be considerably simplified.

Thread synchronization techniques for better multicore system power/performance tradeoffs

An in-depth look at a thread synchronization mechanism based on hardware supplied primitives for use in multicore designs to guarantee both power savings and improved system performance as well as RTOS overhead.

Manage multiple processes and processors in a deterministic multicore design

How should processes running on different RTOSes communicate in systems with more than one operating system? The author suggests you can manage inter-process communications with global-object networking.

A decision-tree approach to picking the right embedded multicore software architecture

Freescale's Robert Oshana walks the embedded software developer through a multicore “decision tree” for selecting software components best suited to the app, such as RTOS, Linux, RT-Linux, or none.

Useful design patterns for building embedded multicore systems

Anderson MacKay provides a brief tutorial on design patterns you may find useful as starting points for thinking about how to implement a multicore into your embedded system.

Analyzing multithreaded applications—Identifying performance bottlenecks on multicore systems

Here's a step by step method for identifying and analyzing bottlenecks in multithreaded applications on multicore systems.

Multicore networking in Linux user space with no performance overhead

In this Product How-To Design article, the Freescale authors discuss multi-core network SoCs and how to leverage them efficiently for data path processing, the limitations of current software programming models, and how to use the VortiQa zero-overhead user space software framework in designs based on the QorIQ processor family.

Pick the right multicore virtualization use case for your design

According to Rob Oshana and Stuart Yoder of Freescale, while virtualization enables the sharing of hardware resources on a single computer system, allowing multiple OSes to simultaneously share the system, the trick is picking the use case that best matches your application.

Virtualization options for embedded multicore systems

There are a number of paths to virtualization for embedded systems. After a tour of those options, Freescale Semiconductor's Syed Shah makes the case for the bare metal hypervisor-based approach — coupled with hardware virtualization assists in the core, the memory subsystem and the I/O — as the best-performing option.

Transitioning to multicore processing

Hesitating to make the shift from single- to multiple-core processing in your design? Here's a guide to making the transition.

Use OpenMP for programming parallel threads in multicore applications: Part 1

In the first of four articles, Intel's Shameem Akhter and Jason Roberts present the case for the OpenMP API as a way to write code for highly parallel multicore and multithreaded designs.

Using MCAPI to lighten an MPI load

High-performance computing (HPC) relies on large numbers of computers to get a tough job done. Often, one computer will act as a master, parceling out data to processes that may be located anywhere in the world. The Message Passing Interface (MPI) provides a way to move the data from one place to the next.


2012 Embedded Market Survey webinar

UBM Electronics' 17th annual survey of embedded systems designers worldwide shows trends in software and hardware usage. The 2012 Embedded Market Survey also looks at languages, productivity, and the challenges design teams rank as most important. A webinar on Friday April 20 will examine the results from over 1,700 respondents from across the embedded industry, the dataset enables a deep analysis to track key changes in this important electronics industry segment. There will also be the opportunity to ask questions online. To register click here .


Products

Freescale adds low end processors to i.MX 6 family for industrial multimedia

Freescale Semiconductor is introducing two lower cost processors that are pin-compatible with the existing i.MX 6 family of devices for industrial and embedded multimedia applications.

Freescale ups ante with quad-core Qorivva

Freescale Semiconductor said its new quad-core Qorivva MPC5746M microcontroller boost performance up to 5-times plus includes specialized circuitry for safety, security and input/output including on-chip Ethernet.

Poly-Platform 2.0 features enhanced memory management for multicore apps

PolyCore Software, Inc. (PSI) has added significant functionality to Version 2.0 of its Poly-Platform multicore software platform.

Mentor Graphics extends Power Management Framework with Hibernate

The first devices with support for Mentor Graphics enhanced power management frame work will be the Freescale i.MX family of multimedia processors.


Commentary

Multicore madness

Here's one speed limit that's heavily enforced.

Nulticore Continued

If SMP multicore isn't a solution, what is?

Multicore processors: Now a movement

Multicore processors aren't just the odd anomaly, and not a mere trend, but in late 2010 multicore has turned into a movement – a full-fledged 1960's Arlo Guthrie society-changing movement.

Ten quotes on parallel programming

Here's ten quotes from the great and the good on parallel programming.


Sponsored White Papers

A Case for MCAPI: CPU-TO-CPU Communications in Multicore Designs

Developing Software in a Multicore and Multiprocessor World

Facilitating Multicore Migration with the Enea Hypervisor

Maximizing Multicore Efficiency with Navigator Runtime

Multiple Programming Approaches in NI LabVIEW


Courses and Webinars

Optimize Multicore Solutions with Model Driven Development

Hazards of Multi-threaded and Multi-core Software Development

Addressing Software Challenges on Multicore and Multiprocessor Platforms

MCAPI: Simplifying Multicore Development

Leveraging Multicore & Virtualization

Fundamentals of Multicore Programming for Embedded

CPU-to-CPU Communications in M

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.