emmtrix Parallel Studio (ePS)
emmtrix Parallel Studio (ePS)
An innovative solution for guided, semi-automatic parallelization!
Optimize the performance of your embedded applications on multicore, FPGA and GPU architectures with the developer tool emmtrix Parallel Studio. It significantly simplifies the parallelization process and code optimization through automation and an innovative graphical user interface. Develop your applications in model-based software languages such as MATLAB®, Simulink®, Scilab, and Xcos or use your existing C code as starting point for the parallelization in the ePS. The ePS is applicable in industries like automotive, industrial automation, telecommunication, medical, and avionic.
- Automatic generation of parallel C code from C, MATLAB®, Simulink®, Scilab and Xcos
- Interactive parallelization with user-friendly Eclipse-based GUI
- Support for common parallel programming interfaces like MPI, OpenMP, pthreads, etc.
- Independent of used operating system and even supports bare-metal programming
- Extensible support of embedded multicore processors, FPGAs and GPUs
- Guaranteed correct parallel code allowing to develop sequential and get parallel
- Parallelization on function-level, runnable-level or sub-function-level (within a function)
- Performance estimation of generated parallel code
- 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
emmtrix Parallel Studio (ePS) for guided, semi-automatic development of parallel software for embedded multicore systems.
Parallel Software Development Workflow with the ePS
To substantially simplify the development process for multicore processors, we offer an innovative software solution that automates the time-consuming and painful development of parallel software for embedded multi- and manycore systems. Our solution combines the productivity of singlecore programming with the high performance potential of multicore processors in embedded systems. These benefits come along with minimal effort to adapt the development process. The workflow is shown in the following figure.
in C, MATLAB®, Simulink®, Scilab and Xcos
with emmtrix Parallel Studio (ePS)
for the implementation on target platforms like multicore CPUs, System on Chips (GPU, FPGA)
In the first step, software is developed with MATLAB or Scilab environment and then entered in the parallelization tool emmtrix Parallel Studio (ePS). The ePS provides a semi-automatic toolflow for generating parallel C code out of MATLAB and Scilab applications. This step was so far done manually. Today, companies can use the automated ePS tool to replace the manual implementation of software on the parallel hardware. As a consequence, the time-consuming implementation of the algorithm in C/C++ as well as repeated manual parallelization is avoided. Due to automated development of parallel software, complexity is taken out for software engineers and increases ease of use. The ePS additionally integrates hardware specific knowledge. Thus, detailed knowledge about the target architecture as well as experience in parallelizing applications is not necessarily required to develop robust and high quality parallel software.
The 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, the 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.