Outsourcing Journal

Independent ICT service business insights since 2010

Home Business Platforms for Heterogeneous Systems Development and Embedded Design

[vc_row][vc_column][vc_column_text]Paradigm shift for massive parallel heterogeneous computing: The recent increase of mobile market, robotics, IoT, cloud systems make development of heterogeneous and embedded systems significant.

According to Business Insider, the heterogeneous ecosystems are growing rapidly. There are two aspects that can be potential bottlenecks in development:

1. The programming for heterogeneous systems. The programming in heterogeneous, massive parallel systems requires team with multidisciplinary programming skills, as the software should run on multi-CPUs, GPUs, FPGA, DSPs, even multi-CPU computing is not uniform as it used to be in Von Neumann architecture: NUMA architecture knowledge is required.

The described programing skills require paradigm shif from sequential to parallel computing
and deep understanding of system architecture and interconnect, experience with close to hardware programming, and HW/SW co-design skills which in the past used to be required
only from top system architects.

2. The root of the problem even for uniform massive parallel systems is in the so-called
“Von Neumann bottleneck” – shared memory architecture with single (or limited number of)
memory controllers providing access to memory where all variables used by all parallel processes or threads of the application are stored.

Thus logically independent parts of the algorithm have to compete for access to their data, thus reducing the overall system performance dramatically, and reducing the impact of Moores Law [1] on performance increase of single-threaded or even multi-threaded applications.

Hence the role of automation systems, frameworks, SDKs development is becoming more significant to decrease the production cost, allow early verifications, shorten time to market. Push-button solutions however are not efficient due to above-mentioned complexity of architecture-exploration which requires intelligent evaluation and decision making steps that are not subject to automation using imperative programming paradigm but only AI or semi- manual interactive platform-based compilation & linking tool-chains and SDKs.

Heterogeneous system modeling, simulation, programming and deployment framework

Our answer to this challenge is Proximus, a massive-parallel heterogeneous system modeling, simulation, programming and deployment framework, tool-chain and IDE, developed since 2006 inhouse and with VC funding from EU. It is based on very strong and clear hierarchical design methodology and clear decomposition of logical and physical views of the system, and explicit interconnect (message passing semantics) inspired by TLM modeling methodology invented by STMicroelectronics for SoC design, which we brought into the world of heterogeneous computing via Proximus.

It includes advanced technologies such as conversion of C++ applications implemented for the classical Von Neumann architecture into a hierarchical TLM netlist with explicit communication (data and control flow graphs), using various compiler front- ends (EDG, LLVM/Clang, GCC).

It was successfully used by our customers to accelerate full-chip simulation of their future H.264 set-top-box SoC model, reducing the overall run-time of the very large and complex test suite from more than a month down to less than a week on the compute farm. This process is similar to SoC design and EDA, from where we draw experience and knowledge and apply to modern heterogeneous R&D tool-chains, flows and methodology design.

Instigate Application Framework

The constantly growing complex systems require frameworks that allow to create EDA, ESL design tools in a short period and focus on business logic inside, rather on user interface, QA, documentation. It is well known, that the UI and GUI design takes the significant development effort. It is frequently underestimated and causes customer dissatisfaction even when the underlying algorithms have high-performance and features that are not present
in the competing solutions.

In house designed and developed Instigate Application Framework (IAF) allows to describe user database in C++/XML based API, and based on the user data schema, IAF generates embedded scripting commands and graphical user interface, undo/redo, cut/copy/paste, import/export, drag & drop and other important functionalities which would otherwise have to be implemented by the UI developers.

The developed methodology provides facilities both for RnD, QA and technical writer teams. Even business team can get benefits from the framework for demo, presentation preparation. It also provides interface to integrate development environment like version control and tracking systems.

The IAF was deployed to build: static timing analysis and place&route tools for ASIC and FPGA, IP-XACT netlisters and other ESL tools, such as Proximus. It helped ProximusDA team to focus on core technology by greatly reducing coding effort for application GUI and UI and handling almost all of tech-writing effort.

Instigate’s background: Starting from 2005, Instigate Design was focused on massive parallel heterogeneous and reconfigurable computing, with applications in signal processing, video coding, image processing, regular expressions and text processing, financial engineering.

Only due to strong technical, mathematical background Instigate Design  engineers were successfully involved in German automotive industry without having special certificates.

We engage with companies architecting new experimental heterogeneous systems in early phase of architecture exploration and system specification, by modeling their half-specified systems using system-level modeling environments and frameworks, and using the models to evaluate the system performance in target fields of application. The model granularity is refined in parallel with refining the architecture specification, and more and more automation tools, compilers, place-and-rout tools and linkers and loaders are developed.

Instigate Design had about 70 customers and about 350 projects implemented with partners
from Europe and USA (some of them can be announced explicitly such as Xilinx and icroChip
Atmel Aerospace). We provide services not only in EDA, but apply the science intensive R&D
skills and experience in the fields of HPC, analytics, bioinformatics, etc.

It is difficult to provide brief overview that can spread light on Instigate Design experience,
but wrapping up we would like to mention that during those 10+ years, in addition to our own vocational training center, professional education center and consulting firm, we have created an incubator and seed-fund and founded several design service, custom solution provider and product companies in the sphere of EDA, Embedded Systems, Signal processing,
Video and Image processing, IoT, Robotics and UAV autopilot development, Mobile, Web and
Cloud computing, modern project-based education, E-Government and E-Commerce.

[1] Moore, Gordon. “Cramming More Components onto Integrated Circuits,” Electronics Magazine Vol. 38, No. 8 (April 19, 1965).

This article was published in the Armenia Outsourcing Destination Guide. For more interesting articles about the Armenian IT-market, download the guide here:

[/vc_column_text][vc_separator][vc_btn title=”Download (free)” color=”primary” size=”sm” link=”url:https%3A%2F%2Fwww.outsourcing-verband.org%2Foutsourcing-destination-guides%2F|||”][/vc_column][/vc_row][vc_row][vc_column width=”1/4″][vc_single_image image=”5017″][/vc_column][vc_column width=”3/4″][vc_column_text]The author: Anna is the CTO of Instigate Design and has 10+ experience in EDA, ESL, compiler development, DSP, parallel computing; PhD in Physics; has been awarded for scientific researches in Physics. She lead several projects that en-reach company profile, expertise and bring new experience, projects to company. Her goal is to support Science in Armenia in general and bring into life science intensive projects in Instigate Design particularly.

+37460464700 ext 1074[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]