Layers of GRAPNEL programs

Hardware layer

GRAPNEL programs can be split to several layers. The lowest layer is the hardware of the computer and its operating system. GRAPNEL system uses message passing paradigm so the operating system should support messages between processes. Most systems do it but in some cases it is difficult to use different IPCs of different systems. Generally we use a special software layer on top of the operating system which hides the differecies of the message passing.

Message passing layer

This layer should be a widely used system. The PVM or MPI is a good choice because they are ported to a lot of operating systems (well, more precisely, they are ported to a lot of UNIX systems). Because this layer hides operating system dependencies the GRAPNEL system can be hardware and operating system independent.

GRAPNEL API layer

Because the previous layer can be implemented by different kind of message passing system, an other software layer is required which hides dependencies of the previous layer. This layer is an Application Programming Interface and because its physical representation is a C library, we call it Grapnel Library. This API layer can support any kind of message passing system, ie. PVM, MPI, or an operating system directly. This API consist of GRAPNEL (or GRP shortly) functions and higher layers use these GRP functions to start processes and sending messages.

GRAPNEL API is the lowest layer which is realy included into the GRAPNEL system and is developed by the SEPP team. The API for PVM is available only at this stage of the project. We would like to develop another APIs to support MPI and QNX operating system.

The API has a very important functionality. It is that it creates trace information during the developed program is running. Every time when higher layer calls a GRAPNEL function to start a process or send a message to somebody, the API function makes a record in the tracefile. After the execution the generated tracefile can be visualized.

GRED layer

This is the highest layer of the GRAPNEL system. At this layer the program can be represented by graphically. This representation is easy to understand for the developer but it is not for programs. Because of this the GRED software saves the graphical program in a plain text file called GRP file. This file is used by programs and utilities of the GRAPNEL system. One of these utilities is the Grapnel Compiler which can traslate GRP file into C-source. The generated sources use GRP function calls from GRAPNEL API to do their job.

The highest layer can be represented in three different form:

  1. Graphicaly. It is used by the programmer to develop the program.
  2. GRP file. It is used by the GRAPNEL programs to process developed program.
  3. C-source. It is used by the system to do the work that must be done by the developed program.

Back to Grapnel Compiler.