emmtrix
Parallel Studio
(ePS)

Our Solution for Guided, Semi-Automated Parallelization

Optimize the performance of your embedded applications on multicore, FPGA and GPU architectures. The developer tool emmtrix Parallel Studio significantly simplifies the parallelization process and code optimization through automation and an innovative graphical user interface. Develop your applications in model-based software language such as MATLAB®, Simulink®, Scilab, and Xcos or use your existing C code as starting point for the parallelization in ePS.

ePS is applicable in industries like automotive, industrial automation, telecommunication, medical and avionic.

Our Product Workflow

Development

Input languages:
MATLAB® & Simulink,
Scilab and C

Code Generation

Output Code Generator:
Sequential C code

Parallelization

Output Parallel Studio:
Parallel C code for the target platform

Deployment

Target platforms:
Multicore CPUs, Systems on Chip (FPGA, GPU)

Features

  • Automated generation of parallel Code
  • Interactive optimization with user-friendly Eclipse-based GUI
  • Performance Prediction
  • Rapid Prototyping
  • Support for common parallel programming interfaces
    (MPI, OpenMP, OpenCL, PThreads, Cuda, etc.)
  • Extensible support of embedded multicore processors, FPGAs and GPUs
  • Parallelization on function-level, runnable-level or sub-function-level (within a function)
  • Following principles of Logical Execution Time (LET)
  • Interactive code transformations to optimize parallel code
  • Static dependency analysis
  • Direct deployment of parallelized program to evaluation boards

Interactive Parallelization – a Step-by-Step Guide

see and understand

Performance
Analysis

+
-

speed up

Code
Transformations

+
-

tune

Parallel
Timing

+
-

check results

Task
Parallelization

+
-

Performance Analyse

  • Analyze the sequential performance
  • Find critical part (hot spots) in the program
  • Show call graph / control structure
  • Navigate through the application

Code Transformations

  • Select transformations
  • Exploit loop- and data-level parallelism
  • Increase the number of independent tasks

Parallel Timing

  • Analyze parallel performance
  • Follow dependencies
  • Analyze result

Task Parallelization

  • Exploit task-level parallelism
  • Fine-tune parallelization with user constraints
  • Pin tasks to specific cores
  • Reserve cores for other purposes

More Speed

  • Improve your application response time and processing throughput
  • Performance prediction early on in the development process
  • Speed up your applications with the use of powerful hardware

More Quality

  • Correct-by-design approach
  • Integrated functional tests for sequential and parallel code
  • Develop safety-critical applications (e.g. ISO 26262 and D0178C)

More Done

  • Automate and stay in control
  • Model-based software development for multicore targets
  • Simple workflow integration

What People Are Saying

Now that we have multicore hardware available everywhere, the question is how can developers split their application onto those cores. With the ePS developers have a tool that allows to take those parallelization decisions at a much less granular level than what we experience in the field today. Today most multicore SW projects either take a very long time to complete or they use the cores for completely separate tasks like OS, I/O and application. This results in poor performance enhancement often leaving 50% or more of the computing power idling. ePS shows where and how performance can be increased. As a “side-effect” of using ePS the developer quickly learns to design his application to be suitable for multicore HW.”

Arndt-Michael Meyer

Solution Manager & Partner Manager, ETAS GmbH

 

Some Supported Platforms

emmtrix Parallel Studio (ePS) has already a wide range of supported target platforms ranging from general-purpose processors (e.g. ARM Cortex-A series or X86) to special-purpose microcontrollers (e.g. Infineon Aurix family). In general, ePS can be easily adapted and customized to new processor architectures. We are able to support almost any processor type due to our minimal requirements (available C compiler and message passing or shared-memory inter-core communication) on the computing architecture. Even systems with GPU-based accelerators (using OpenCL or CUDA) or FPGAs (using high-level synthesis) are supported.

Cortex

Aurix

JETSON

ZYNQ

R-Car

PowerPC

Rasperry Pi

Samsung

DSP

For more information on emmtrix Parallel Studio or to request a demo, use our contact form or get directly in touch. You may also make a Product Evaluation Request and/or a Project RequestWe’re looking forward to hearing from you!