editor's blog
Subscribe Now

Managing Multicore Tasks

We’ve looked in the past at some of the APIs put together by the Multicore Association, notably the MCAPI communications API (and its update) and the MRAPI resource management API. In the same spirit, they are now taking up the issue of task management.

The whole idea with multicore software is that a program can be decomposed into multiple pieces that can be run concurrently. How you do that partitioning can be a hard problem, and is receiving some tools attention as the multicore design process gets some automation. You might think of these pieces as threads, but, in fact, threads are typically a specific implementation in SMP systems. Alternative parallel configurations can include multiple independent programs (rather than threads), each with its own OS, or even simple run-to-completion programs on “bare metal,” i.e., with no OS (and, hence, no threading services) at all.

So rather than getting bogged down in worrying about whether these “pieces” of the program are threads or programs or whatever, they can be generically referred to as tasks. And, while SMP OSes can handle the management and scheduling of threads, there’s no general task management solution for non-SMP systems – or, more critically, there’s no general approach that works for both SMP and AMP, homogeneous and heterogeneous systems.

Even where threading services exist, they can have far too much overhead for many embedded programs. Including the cost of creating and destroying threads, the overhead can completely wipe out any theoretical gains that the parallel version was supposed to provide. If your program exploits fine-grained parallelism, with hundreds or more small tasks, then the thread management can take longer than the actual execution of the thread itself.

In order to address this, the Multicore Association is taking up the creation of a task management API, called MTAPI, in order to provide a general approach for all architectures, and one whose implementation can be tailored to limited resources as needed. The process is just starting, and they’re soliciting input and participants.

More info can be found in their release

Leave a Reply

featured blogs
Jan 17, 2020
[From the last episode: We saw how virtual memory helps resolve the differences between where a compiler thinks things will go in memory and the real memories in a real system.] We'€™ve talked a lot about memory '€“ different kinds of memory, cache memory, heap memory, vi...
Jan 16, 2020
While Samtec started as a connector company with a focus on two-piece, pin-and-socket board stacking systems, High-Speed Board Stacking connectors and High-Speed Cable Assemblies now make up a significant portion of our sales. To support development in this area, in December ...
Jan 16, 2020
Betting on Hydrogen-Powered Cars On-demand DRC within P&R cuts closure time in half for MaxLinear Functional Safety Verification For AV SoC Designs Accelerated With Advanced Tools Automating the pain out of clock domain crossing verification Mentor unpacks LVS and LVL iss...
Jan 16, 2020
This little robot arm continually points to the current location of the International Space Station (ISS)....

Featured Video

RedFit IDC SKEDD Connector

Sponsored by Wurth Electronics and Mouser Electronics

Why attach a header connector to your PCB when you really don’t need one? If you’re plugging a ribbon cable into your board, particularly for a limited-use function such as provisioning, diagnostics, or testing, it can be costly and clunky to add a header connector to your BOM, and introduce yet another component to pick and place. Wouldn’t it be great if you could plug directly into your board with no connector required on the PCB side? In this episode of Chalk Talk, Amelia Dalton chats with Ben Arden from Wurth Electronics about Redfit, a slick new connector solution that plugs directly into standard via holes on your PCB.

Click here for more information about Wurth Electronics REDFIT IDC SKEDD Connector