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

Share this Newsletter:

facebook linkedin twitter digg

September 24, 2012

Tech Focus

OpenMP, MCAPI & embedded multicore software design

What the new OpenMP standard brings to embedded multicore software design

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

Multicores, software tools, languages and the Charge of the Light Brigade

The Nulticore effect


Editor's Note

Bernard Cole Bernard Cole
Site Editor
Embedded.com
bccole@acm.org
Read his blog

As noted in the 2012 Embedded Market Study, only a small minority of embedded systems developers have made the move to multicore SoCs even though a typical embedded systems design often makes use of anywhere from two to 10 or more MCUs.

As Jack Ganssle continues to hammer on in columns such as "The Nulticore effect," part of the reason is that it just does not make sense in many deeply embedded MCU designs. But another reason may be the reluctance of developers to give up well understood sequential C programming methods until there is a clear platform independent roadmap that allows migration of their code to the much more parallelism-intensive multicore environment.

For some developers, the OpenMP standard has offered a way out, as noted in a "Use OpenMP for programming parallel threads in multicore applications ," a four part series by Shameem Akhter and Jason Roberts, despite the fact that it is a standard developed for high performance computing where there are fewer constraints on memory and CPU resources. Now, however, there may be hope for the rest of the embedded developer community whose much more resource-constrained designs have ruled out the use of OpenMP.

In "What the new OpenMP standard brings to embedded multicore software design," Sunita Chandrasekaran and Barbara Chapman describe the progress that has been made in the newest version of the OpenMP standard towards making it more embedded systems friendly. In it, the authors also report on progress being made toward integrating OpenMP with the Multicore Association's MCAPI specifications to provide mechanisms by which OpenMP can be used in a wide variety of more resource -constrained embedded MCU designs.

In addition of a variety of white papers, webinars, online classes and development articles included here, my Editor's Top Picks of recent papers from conferences and journal proceedings on the use of OpenMP and MCAPI in embedded designs are:

OpenMP Implementation & Performance on an Embedded Renesas M32R
Implementing OpenMP on a high performance embedded multicore MPSoC
Using MCAPI to lighten an MPI load
Software standards for the multicore era

(Editor's Note: In addition to a new newsletter format, Embedded.com also undergone a major redesign as part of its relaunch as an independent online site. Read "Welcome Home" by Colin Holland for more details.)


Development

What the new OpenMP standard brings to embedded multicore software design

The authors describe how the OpenMP shared memory muliticore programming model is being adapted to the needs of embedded systems designs.

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 OpenMP for programming parallel threads in multicore applications: Part 2

In the second 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. This week: managing shared and private data.

Using OpenMP for programming parallel threads in multicore applications: Part 3

In the third of four articles on the OpenMP API as a way to write code for highly parallel multicore and multithreaded designs, Intel's Shameem Akhter and Jason Roberts discuss performance-oriented programming.

Using OpenMP for programming parallel threads in multicore applications: Part 4

In the final of four articles on the OpenMP API as a way to write code for highly parallel multicore and multithreaded designs, Intel's Shameem Akhter and Jason Roberts discuss the OpenMP Library Functions and how to use them.

Evaluating the performance of multi-core processors- Part 1

In a two part series, Max Domeika, author of "Software Development for Embedded Multi-core Systems" evaluates the various processor benchmark suite available, with examples of how to estimate application performance. Part 1: Choosing the right benchmark suite.

Threading through the parallel code optimization maze: Part 1

In this three part series, Max Domeika, author of "Software Development for Embedded Multicore Systems," outlines how to use multithreading to parallelize code for use in multicore apps. Part 1: A parallelization and threading Primer

Common multicore programming problems: Part 1 -Threads, data races, deadlocks and live locks

In this four part series, Shameem Akhter and Jason Roberts survey common multi-core programming problems and provide some insight into their solution. First up: Too many threads, data races, deadlocks and livelocks.

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.

Embedded multicore needs communications standards

Multicore systems are popular but problematic. The authors describe the problem with communications APIs and what the Multicore Association is doing about it.

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.

Getting started with multicore programming: Part 1

Guidelines to finding the parallelism in your multicore design and developing a methodology that starts with sequential C-code and incrementally adds parallelism. Part 1: what makes parallelizing code so hard.



Products

DESIGN East - aicas releases Realtime, Multicore JamaicaVM for VxWorks

aicas announces the release of Realtime Multicore JamaicaVM development toolchain and runtime for Wind River Systems VxWorks Realtime Operating System.

Sierraware introduces a paravirtualization hypervisor for ARM architectures

The open source SierraVisor Hypervisor from Sierraware allows multiple operating systems, to run concurrently on any ARM11, Cortex-A9, or Cortex-A15 platform.

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.

New version of PLS Universal Debug Engine simplifies multicore control and debugging

PLS Universal Debug Engine (UDE) 3.2 features new functions for multicore control, unique visualization capabilities at system level, and dedicated support for a wide range of the latest 32-bit SoCs from different manufacturers.

Software engineers get early access for C-code parallelization

Vector Fabrics has added vfLabs to its cloud-based tool suite for parallelizing sequential C code that gives software engineers an early opportunity to try out functionality as it is developed.


Insights

Nulticore Continued

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

Multicore madness

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

The state of multicore software

The hardware's ready. Now the software has to catch up.

Finding a better way to manage multicore resources

Chris Main of TenAsys suggests that a better way to manage inter-process communications (IPC) in multiprocessor designs is by the use of global object networking, so that an application can be dynamically distributed across one or several CPUs at load time.


TechOnline Library

Tech Papers

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

Fundamentals of Multicore Development

The Toolbox for High-Performance CPU Design

Exploring real-time thread parallelism for embedded SMP

Fundamental Concepts of Parallel Programming

Parallel Processor Software Design

Webinars & Courses

2012 Embedded Market Study

Discover MCAPI 2.0

MCAPI: Simplifying Multicore Development

Multicore Migration: Preserve Legacy while Developing for the Future

Addressing Software Challenges on Multicore and Multiprocessor Platforms



An All New Embedded.com
From chips to software, embedded is your playground. See the site and subscribe tonewsletters.
Learn more.


This email was sent to: @{Email Name}@

To subscribe to UBM Electronics emails or change your email preferences please click here.

Go to Embedded.com
A UBM Electronics Newsletter © 2012. All rights reserved.
Privacy Policy I Advertising Information I Unsubscribe
UBM Electronics, 303 Second Street, Suite 900 South, San Francisco, CA 94107