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.
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.
- 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
- Direct deployment of parallelized program to evaluation boards
- Improved application response time and processing throughput
- Performance prediction early on in the development process
- Speed up your applications with the use of powerful hardware
- Correct-by-design approach
- Integrated functional tests for sequential and parallel code
- Develop safety-critical applications (e.g. ISO 26262 and D0-178C)
- Automate and stay in control
- Model-based software development for multicore targets
- Easy workflow integration
Take a Look Inside emmtrix Parallel Studio
Overview of the GUI. Version 2020.06.
Simply Take Your Application to Parallelized Code
MATLAB®/GNU Octave/Scilab scripts
Interactive Parallelization with ePS – Visualize and Stay in Control
See and understand
- Analyze the sequential performance
- Find critical part (hot spots) in the program
- Show call graph / control structure
- Navigate through the application
- Select transformations
- Exploit loop- and data-level parallelism
- Increase the number of independent tasks
- Exploit task-level parallelism
- Fine-tune parallelization with user constraints
- Pin tasks to specific cores
- Reserve cores for other purposes
- Analyze parallel performance
- Follow dependencies
- Analyze result
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