emmtrix
Parallel Studio
(ePS)

Your Solution for Parallelization with Ease

emmtrix Parallel Studio through far-reaching automation helps you to optimize the performance of your embedded applications on multicore, GPU and DSP architectures and even any combination of these processing units. Our tool simplifies the parallelization process to the point where the user just needs to take a few decisions to get good results. The patented graphical user interface (GUI), together with a host of reports, provides full transparency and leaves the user in complete control at every step of the process. Develop your applications in model-based software languages such as MATLAB®, Simulink®, Scilab, Xcos and GNU Octave or use your existing C code as starting point for the parallelization in ePS. 

ePS is in use in sectors such as automotive, industrial automation, telecommunication, medical and aerospace.

Our Product Workflow

emmtrix Technologies provides a tool flow that generates parallel C code for different target platforms starting from model-based tools like MATLAB®, Scilab, GNU Octave or directly from C code.

Development

Input languages:
MATLAB® & Simulink®, GNU OctaveScilab & Xcos 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

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

Take a Look Inside emmtrix Parallel Studio

Overview of the GUI. Version 2020.06.

Simply Take Your Application to Parallelized Code

Input

Simulink® scripts

or

or

MATLAB®/GNU Octave/Scilab

or

or

C code

Interactive Parallelization with ePS – Visualize and Stay in Control

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

Speed up

Code Transformations

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

Tune

Task Parallelization

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

Result

Check results

Parallel Scheduling

  • Analyze parallel performance
  • Follow dependencies
  • Analyze result

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

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!