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
Mar 27, 2020
[From the last episode: We saw how pointers are an important kind of variable, representing data whose location we can'€™t predict in advance.] We saw last time that pointers are used to store the addresses of data stored in memory space that'€™s allocated while the progr...
Mar 27, 2020
Have you ever paused to consider how temptingly tasty electronic circuits would look if their components and copper tracks were mounted on a glass substrate?...
Mar 27, 2020
Solar Power While the cost and benefits of solar power can and have been debated, there'€™s one point that cannot be debated:  the solar energy sector continues to grow.   The solar energy sector has grown 68% over the last decade, and the cost of solar infrastruc...
Mar 26, 2020
Late last week you may have seen the open letter  from our CEO, Tony Hemmelgarn, laying out the steps that Siemens Digital Industries Software is taking to support our customers during the COVID-19 global crisis. All of us are getting use to the “new normal” ...

Featured Video

Automotive Trends Driving New SoC Architectures -- Synopsys

Sponsored by Synopsys

Today’s automotive trends are driving new design requirements for automotive SoCs targeting ADAS, gateways, connected cars and infotainment. Find out why it is essential to use pre-designed, pre-verified, reusable automotive-optimized IP to meet such new requirements and accelerate design time.

Drive Your Next Design to Completion Today with DesignWare IP® for Automotive SoCs