ALMA project

ALgorithm parallelization for Multicore Architectures.

Simplifying programming for multi-cores

Why must a programmer care for the hardware architecture when programming embedded applications on a multiprocessor Systems-on-Chip?
The ALMA project intends to change that 'MUST' into a 'MAY'. We work to develop a programming tool chain that hides the complexity of applications and architectures from the programmer, and creates optimized code at the same time.

Results of the ALMA project

The ALMA project researched "architecture-oriented parallelization for high performance embedded multicore systems using Scilab." The project's end product is the ALMA tool chain, an end-to-end tool chain: from a high-level program representation directly to embedded Multiprocessor System-on-Chip (MPSoC) platforms.

The ALMA tool chain

The ALMA tool is designed to be non-hardware specific. It abstracts the underlying parallel hardware architecture so that it can be used over multiple hardware platforms instead of being tailored to a specific one. In order to remain platform-agnostic, the tool chain uses an Architecture Description Language (ADL). The tool chain consists of a front end with static code analysis optimizations, polyhedral analysis type optimizations and graph-based optimizations before the code reaches the platform-specific tools. The accuracy for the optimizations is further by simulator feedback.

Summary of the results

Two project partners from the industry, Intracom Telecom (Intracom) and Fraunhofer Institute of Optronics, System Technologies and Image Exploitation (Fraunhofer IOSB), evaluated the ALMA tool chain. They both used the ALMA tool chain to port an existing single-core reference application to a 4-core processor.

Intracom reported a speedup of a factor 2.84 for their WiMAX test application, while Fraunhofer IOSB reported a speedup of 2.6 for their multi-object detection and tracking test application on the 4-core processor. Seeing that the two reference applications have different, complementary requirements, the performance increase is remarkably similar.

When comparing the effort of creating the parallel application with the (past) effort of creating the single-core application, IOSB estimated that the ALMA tool flow reduced their overall design effort by 10 to 30 percent, while Intracom quantified the total saving in time and thus costs in the range of 47% to 58%.

Overall, both Fraunhofer IOSB found ALMA to introduce a radically more efficient way of designing for multicore processors, combined with the advantage of a functional, integrated and user-friendly tool flow.

Deliverables of the ALMA project

More details on the ALMA project, the ALMA hardware and ALMA toolchain are reported below. Detailed test results can be viewed in the D 5.6 Test cases evaluation report.

D2.3MPSoC Architecture Characteristics Description
The ALMA Architecture Description Language (ADL) is a central component of the toolset that is used by all other components as a central database to gather information about the current target architecture. It is used as an input for the ALMA approach and aims to archieve the following goals:
  1. ADL defines an abstract hardware description of the multicore hardware target. This abstract information is used to build a multi-core simulation environment for the multi-core hardware target.
  2. Additional characteristics about the multi-core hardware, which will be used during the optimization steps of the ALMA tools, are defined.
  3. The ADL is a key component of the ALMA approach to guarantee its target independence. Within the project, the architecture independence is demonstrated by targeting two different architectures. Beyond that, the ADL-based approach enables the ALMA toolset to support other target architectures.
  4. It enables support for reconfigurable architectures since it allows to flexibly target all configurations of one architecture.

The ALMA MPSoC Architecture Characteristics Description document provides an overview of the Architecture Description Language used in the ALMA project to describe reconfigurable Multiprocessor System-on-Chip architectures. View it here....

D3.1ALMA state-of-the-art analysis
The ALMA state-of-the-art analysis provides an overview of techniques for generating parallel code targeting multicore architectures. It summarizes:
  • optimization techniques for intermediate code (predominantly with respect to data transfers),
  • coarse-grained parallelism extraction techniques, and
  • fine-grained parallelism extraction techniques.
Finally, the report presents an overview of existing design methodologies for multicore embedded systems.
View the ALMA state-of-the-art analysis here....

D3.4ALMA design framework guidelines for multicore systems (preliminary version)

See D3.8 below for the final deliverable.

D3.8ALMA design framework guidelines for multicore systems (final version)
The Guidelines document describes the various tool chain components from a user point of view, and provides preliminary guidelines on how to better guide the optimization processes towards end-product performance.

The Guidelines describe:
  • a high level overview of the whole ALMA framework,
  • a design methodology specific for the ALMA tool chain,
  • front-end tools, the input language and intermediate code optimizations,
  • guidelines for the two important optimization engines, the fine grain parallelism engine and the coarse grain parallelism engine,
  • a user-level overview for the engines and advice for a better exploitation of those engines,
  • the ALMA multicore simulator. The simulator participates in an internal optimization loop to improve the results of the optimization engine and is also available to the end users in order to benchmark and profile their applications.

View the ALMA design framework guidelines....

D4.1ALMA toolset specification
In the specification of the ALMA toolset, two distinct phases are identified:
  • the parallel code production, including front end Scilab code parsing and
  • parallelism extraction and the parallel platform code generation.

The parallelism extraction phase is driven by multicore architecture simulation. Two important components integrate all the parts of the toolset:
  • the ALMA intermediate representation and
  • the architecture description language.

The ALMA toolset, although extensible at the hardware platform level, will use the Recore Xentium and KIT Kahrisma multicore embedded architectures as hardware targets.

The specifications will be continously updated throughout the project, as specifications are augmented and refined based on the project research findings and toolset user experience feedback.

D5.1; D5.4Test Cases and Requirements Specification (first and second increment)
Two users of ALMA technology define their application test cases, outline the specifications of a subset of these case studies for the first increment of the evaluation of the ALMA technology, and specify their requirements for methodology and tools. The specifications include the functional specifications of the systems, the specification of the implementation platforms and the metrics to be taken for the purposes of assessing the achievement of the project‘s primary objectives.

The document contains the following information:
  • description of the target applications (Mobile WiMAX a.k.a. IEEE 802.16e, and multi-object detection and tracking as used in e.g. night vision systems for cars),
  • target functionality for each test case including the specifications,
  • information on the implementation platforms,
  • the current design practices, their limitations, and the requirements for the new technology,
  • the evaluation procedure,
  • conclusions and summary of the requirements.

D5.3; D5.6Test cases evaluation (first and second increment)
The Test Cases Evaluation report describes the evaluation of the ALMA tool flow for the final test applications from INTRACOM and IOSB. The final evaluation is done with respect to the end user requirement list, given in Deliverable 5.1 at the ALMA project start, and the end-user value propositions defined as part of the ALMA tool flow roadmap.
Download D5.6 - Test Cases Evaluation report...

D6.1ALMA Project Presentation

Everything on Alma on in a presentation for you to view or download. Just click on the picture below.

ALMA overview poster

D6.2Project Website
This is it....!

D6.3Scientific dissemination report
See the full dissemination overview...

D6.7Final workshop
The ALMA consortium organised two events to present the results:
© 2012-2014 ALMA project | Disclaimer | Glossary