Partioning/parallelising code for multi-core systems

Vector Fabrics automates code preparation to maximise use of hardware resources

EDN Europe, 25 Feb 2011

Vector Fabrics has introduced the second stage of its software offering to assist with the task of developing code for heterogeneous multicore (multiple non-identical processor cores) environments. In 2010 the company released vfAnalyst, software that examined code to identify where, and with what benefits, you could divide program flow into concurrent threads. Now, with vfEmbedded, the company is introducing a tool that will implement that parallelisation. The company’s CEO Mike Beunder acknowledges the different usage of “partitioning” and “parallelisation" – people will typically search for “parallelisation of C” in a web search, but use “partitioning” in detailed engineering discussion, he says, adding that the difference is largely semantic, and both descriptions are appropriate for what the vf tools do.
vfEmbedded supports specific multicore architectures that have different cores and can assign partitions to specific cores. The ARM Cortex A9 and x86 architectures are the first to be supported with more target types to follow. The partitioning process identifies the sections of code that individual, and potentially different, types of processor cores can run in parallel. The tool allows you to describe the resources that each processor has or can access, and assists you in deciding which software partition to allocate to each processor core. You can model accelerators or other hardware in the architecture by providing performance information, or the tool can accommodate IP blocks and C-to-RTL pathways. Once the partitioning and mapping decisions are complete, vfEmbedded provides a set of step-by-step instructions, referred to as a recipe, that allows you to implement the mapping without introducing unexpected errors, such as threading bugs. The tools allow you to explore where your design consumes CPU cycles, and provides a metric of performance, after partitioning, relative to a base “linear” execution of the code. You can extrapolate this to an indication of power that your system will consume. vfEmbedded uses the same exploration, and graphical representation, of loops and dependencies as does vfAnalyst.
The outcome, Beunder says, is a system in which the hardware costs are minimised because the match between the code and the hardware resources is more exact; you can have the tools carry out much of the implementation process automatically, but Beunder says that – at least initially – most uses will prefer to follow the “recipe” to track the partitioning steps.
Beunder also says that the tool is capable of generically characterising any processor architecture, but that at present this is a feature that will mainly be of use to processor architects exploring new confgurations; Vector Fabrics intends to add explicit support for further commercial architectures.
Vector Fabrics delivers its products in a cloud-computing model, employing SAAS or software-as-a-service: you pay €450 for one instance of the tools, per month, with a secure, browser-style interface. The company says that this has been well accepted and in the year since it first introduced the concept, confidence has grown in Amazon (where VF hosts its service) as a deliverer of a secure cloud environment; each user gets a completely partitioned instance within the cloud in which their software runs and their data is stored. In a minority of cases where local tool provision is mandatory (for defence industry requirements, for example) VF has a “private cloud” option.


 

Our Sponsors



Ads by Google