VIPE is a visual integrated development environment to design portable software for embedded many-core systems

 

VIPE provides support for all the parts of the software development lifecycle (SDLC), from designing of a program scheme to generation of a final code, ready to deploy onto a target platform. High-level graphical representation and domain-specific libraries  significantly simplify and boost the development of software applications.

 

UPDATES

January 23, 2020

IGI Global has announced the release of the book «Tools and Technologies for the Development of Cyber-Physical Systems». The chapter «Model-Based Techniques and Tools for Programming Embedded Multicore Platforms» considers the VIPE development environment with the main emphasis on its formal ground. Abstract:

The detailed description of a formal VIPE model of computation (MoC) and the semantics of language constructs let the reader reason about the behavior of the constructs in question. We propose a rigorous description of program transformations, applied to the program while it is compiled. The program after all the transformations is a correct one from the view of the host MoC. Its behavior meets the programmer's expectations even when it includes fragments, which belong to a guest MoC. Techniques for translation of the guest MoC (OpenVX) constructs into the host MoC (VIPE) constructs were proposed. The approach described here leads to the end program that is fully conformant to the host MoC. In addition, the whole toolset is at the programmer's disposal, namely: visual editor, compiler, runtime and analysis tools. They stay applicable to the program, some parts of which are now guest MoC constructs.

VISUAL ENVIRONMENT ALLOWS TO CREATE RAPID SOLUTIONS FOR VARIOUS DOMAINS

Fog computing

 

Heterogeneous many-core systems

 

Computer vision

 

Aerospace industry

 

Add a domain

 

A program for cyber-physical system to identify human faces and track them

  • Development environment for visual parallel language VPL
  • Separation of design and programming:
    • Design is for domain experts
    • Programming is for developers and coders
  • Domain-driven development, visual component libraries for various domains
  • Built-in tools for validation and interactive debugging
  • Verification of parallel programs

 

Learn more from our paper. Please, contact us and we'll send you materials.

  • Code profiling on host computer
  • Easy to grasp profiling reports to identify bottlenecks and critical paths in your programs
  • Quick early estimation of program characteristics and inherent parallelism of an algorithm
  • Detailed evaluation of parallel program characteristics with VPL simulator
  • Analysis of parallel program behavior on simplified model of heterogeneous manycore platform

 

Learn more from our paper. Please, contact us and we'll send you materials.

  • Code generation to test a program on a host computer
  • Parallel code generation for various target platforms
  • Applying of various optimization methods  to match platform features: heterogeneity, core count, memory, internal communicational system, etc.
  • Possible integration with a compiler and other external tools to build, load and run program on target platform
  • Remote debugging on a target platform

Learn more from our paper. Please, contact us and we'll send you materials.

USE VIPE FOR YOUR PROJECTS

The environment allows domain experts to design program prototype independently from (or with a limited involvement of) coder/developer in a short time.

Environment tools (creation, evaluation and generation of code) allow to:

  • Develop program prototype quickly and show it to the potential buyers
  • Develop a parallel program, that executes efficiently on a target hardware platform
  • Significantly  reduce time to market
  • Reuse developed program for other configurations of target platform, and also adopt it for other target platforms

Demonstration of VIPE and PaPP* tool chain on the road traffic radar monitoring use case
(20 minutes)

Demonstration of VIPE suite on the road traffic radar monitoring use case
(5 minutes)

Demonstration of VIPE and PaPP tool chain on the CCSDS 122b image compression** use case
 (25 minutes)

* PaPP – Portable and Predictable Performance.

  Official project website

**

CCSDS 122b – Image compression standard widely used in the aerospace industry.

HETEROGENEITY AND MANYCORE SUPPORT

Heterogeneity and manycoreness of a target platform are the features that are taken into account during code evaluation and generation. Evaluation tools allows to estimate the scalability and other parallel program characteristics for various platform configurations, possibilities of program components allocation and scheduling of computations.

VIPE has the means to control the assignment of computations on different types of platform cores (supported by implementations of operators).

The environment generates parallel code ready to run on a target platform with a chosen configuration.

Learn more from our paper. Please, contact us and we'll send you materials.

OPENVX SUPPORT

We have added OpenVX support into VIPE. Now developers can simultaneously draw graphs and design programs from image processing domain. To the best of our knowledge, this is the first use of a graphical notation for OpenVX programming. Our environment addresses the need to design OpenVX graphs in a natural visual form with an automatic generation of a full-fledged program, shielding a programmer from writing a bunch of a boilerplate code. Using VIPE to develop OpenVX programs also enables VIPE’s performance analysis tool.

OpenVX standard has appeared as an answer to the demand from the computer vision community to the challenge of accelerating vision applications on embedded heterogeneous platforms. It is designed as a low-level programming framework that enables software developers to leverage the computer vision hardware potential with functional and performance portability.

OpenVX seems to be a promising framework to cope with machine vision embedded development. However, as for now, there are some drawbacks, most of which are directly or indirectly related to the need to describe OpenVX’s graphs in a textual form while programming. These drawbacks can be alleviated by integrating visual programming with graph model, built in OpenVX.

FORMAL MODEL

Programming model of VPL language is a platform-independent implementation of AGP computation model (Asynchronous Growing Processes). AGP model is based on fundamental research in parallel computations domain and has been advancing for over 20 years. Its suitable for creating solutions for hard problems related to parallel computations and heterogeneity of target hardware platform, allowing user to focus directly on a problem to be solved.

Learn more from our paper. Please, contact us and we'll send you materials.

FIND OUT MORE ABOUT VIPE

White papers:

  • VIPE
    Get ready for heterogeneous manycore future
    Download
  • VIPE for developers
    Create prototypes and industrial solutions
    Download
  • VIPE for domain experts
    Use VIPE for component-based design
    Download
  • VIPE for aviation
    Create working prototypes of upcoming solutions
    Download

Presentations:

 

  • Domain-Specific Programming Technology for Heterogeneous Manycore Platforms
    Brief review of VIPE capabilities
    View
    Download

Articles:

  • Model-Based Techniques and Tools for Programming Embedded Multicore Platforms
    Chapter in the book «Tools and Technologies for the Development of Cyber-Physical Systems»
    Book webpage in the publisher website
  • Visual Development Environment for OpenVX
    Visual environment for parallel programs development with support of the OpenVX standard
    Download
  • Domain-Specific Programming Technology for Heterogeneous Manycore Platforms
    Learn more about VIPE tools and their capabilities
    Contact us and we will send you a paper
  • Domain-Specific Approach to Software Development for Microcontrollers
    Creating domain-specific language for microcontrollers in VIPE and theirs use for Arduino
    Download

Projects:

  • PaPP (Portable and Predictable Performance)
    Project goal  is to make performance predictable in every development phase. Project was completed in cooperation with 14 European organizations
    Official website

Partners:

«Electronic computational information systems»
(Open Joint-Stock Company Research and Development Center 
«ELVEES») is a one of the leading centers of microchip design in Russia.
Official website

ARTEMIS – Industry Association is the association for actors in Embedded & Cyber-Physical Systems within Europe.
Official website

DEVELOPERS

Saint Petersburg State University of Aerospace Instrumentation (SUAI) is a multi-disciplinary technology university, the center for education and training of highly qualified engineers and programmers, a large scientific center reputed both in Russia and abroad.

University is doing its best in combining classic traditions of universities and modern technologies of higher education. Well-known scientists and specialists of leading enterprises of Saint-Petersburg, institutes and entities of Russian Academy of Science lecture at the SUAI.

The University has many research departments, one of the largest and most developed is the Institute of high performance and network technologies.

The Institute of high performance computer and network technologies (IHPCNT) has rich background and a lot of competence in development and programming of parallel architectures, with trend to multicore/manycore high-performance real-time systems.

The IHPCNT team of aerospace computer and software systems department have a long history of research in all aspects of aerospace computing area.

The department team has the wide set of knowledge and experience in the research activities of architectures, software, protocols and IP/SoC hardware design with modern tools and technologies.

Presentation
Competency & Track of records of Department of aerospace computer and software systems

CONTACT US

VIPE technology is actively developing. It can be useful to developers working in a wide range of domains, who need to create embedded solutions for modern heterogeneous manycore platforms. If you are working on a project with embedded manycore platforms (IoT, computer vision etc.), we can help you to realize your project.

(812) 710-62-34