emmtrix
Parallel Studio
(ePS)
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
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
Simply Take Your Application to Parallelized Code
Input
Simulink® models
or
or
MATLAB®/GNU Octave/Scilab scripts
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
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
Solution Manager & Partner Manager, ETAS GmbH
Some Supported Platforms
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 Request. We’re looking forward to hearing from you!
Rainer Heim