emmtrix
Parallel Studio
(ePS)

emmtrix Parallel Studio icon

The Tool for Parallel Programming

emmtrix Parallel Studio (ePS) helps you to optimize the performance of your embedded applications on multicore, GPU and DSP architectures as well as any combination of these processing units. Our tool automates and radically simplifies the parallelization process to the point where you simply need to take a few decisions to get good results. The patented graphical user interface (GUI), together with a number of reports, provides full transparency and leaves you in complete control at every step of the process.

Use your existing C code as starting point for the parallelization in ePS. Together with  ePS Qualification Kit the parallelization can be performed for applications with functional safety requirements like ISO 26262 or DO-178C.

ePS Workflow

emmtrix Parallelization Workflow

Figure 1: Automated Workflow for Parallel C Code Generation and Optimization

The core of emmtrix Parallel Studio is a C source-to-source compiler that takes sequential C code as input and generates optimized source code for a selected target architecture. The sequential C code can be either handwritten legacy code, generated by our code generators emmtrix Code Generator (for MATLAB®, Scilab or GNU Octave scripts), emmtrix Model Code Generator (for Simulink) and emmtrix C++ to C Compiler (for C++) as well as generated from 3rd party tools like MATLAB® coder or Simulink coder.

For optimizing your code, ePS analyzes the source code, estimates its performance and exploits different kinds of parallelism (thread-level, data-level and loop-level). For example, in case of multicore processors independent code parts are identified and distributed to different cores or vectorization is applied for vector processors. The parallelized or vectorized output source code can be directly compiled and tested for the target architecture using development boards or simulators. For functional safety, a qualification kit can compare the sequential input and parallel output code to prove the absence of errors.

Features

  • Automated generation of parallel code
  • Interactive optimization with user-friendly Eclipse-based GUI
  • Interactive code transformations to optimize parallel code
  • Parallelization on runnable-level or fundtion-level and sub-function level
  • Direct deployment of the parallelized program to evaluation boards
  • Parallelization on function-level, runnable-level or sub-function-level (within a function)
  • Utilization of thread-level, data-level and loop-level parallelism
  • Following principles of Logical Execution Time (LET)
  • Static dependency analysis

Benefits

  • Improved application response time and processing throughput
  • Speed up your applications with the use of powerful hardware
  • Correct-by-design approach
  • Parallelized safety-critical applications (e.g. ISO 26262 and D0-178C)
  • Automate and stay in control
  • Easy workflow integration

Take a Look Inside emmtrix Parallel Studio

Overview of the GUI. Version 2020.06.

Figure 2: Overview of the GUI – Version 2020.06

Simply Take Your Application to Parallelized Code

Input

Sccreenshot of Simulink® models

Simulink® models

or

or

Screenshot of MATLAB®/GNU Ocave/Scilab scripts

MATLAB®/GNU Octave/Scilab scripts

or

or

Screenshot of C code

C code

Interactive Parallelization with ePS – Visualize and Stay in Control

Screenshot of Performance Estimation

See and understand

Performance Estimation

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

Screenshot of Code Transformation

Speed up

Code Transformations

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

Screenshot of Task Parallelization

Tune

Task Parallelization

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

Result

Screenshot of Parallel Scheduling

Check results

Parallel Scheduling

  • Analyze parallel performance
  • Follow dependencies
  • Analyze result

Release Notes

Take a look at our release notes for emmtrix Parallel Studio to learn more about new features, improvements and bugfixes.

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.”
Portrait Arndt-Michael Meyer
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.
arm logo

Cortex-A

Infineon logo

Aurix™
TC2xx, TC3xx, TC4x

nvidia logo
JETSON
Xilinx logo
ZYNQ
Renesas logo
R-Car
Power PC logo
PowerPC
Rasperry Pi logo
Rasperry Pi
Samsung logo
Samsung
Texas Instruments logo
DSP
NXP logo

iMX.8

STM logo

STM32

intel_AMD logo

x86/AVX

User Experience

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!

Portrait Rainer Heim

Rainer Heim

Cookie Consent with Real Cookie Banner