Host and Embeddable Function Boxes
Selecting to use host or embeddable function boxes


Question:

What is the difference between host and embeddable function boxes and what considerations do I have in using them?

Summary:

There are two different types of function boxes, host and embeddable. Both of these box types work with the same data types. Both are indistinguishable on the Gedae canvas. Except for the starting directory, both are found in the same basic directory structure locations host boxes start from "FGlibraries/boxes/" and embeddable from "FGlibraries/boxes/embeddable/".

The primary difference between these two types is the intended target architecture on which these boxes will execute (see the table below). Another major difference between the two types is that the host boxes are already compiled into Gedae and execute in an interpreted fashion. The embeddable boxes are compiled into an executable at application runtime.

  

Intended target

Function box type to use

multiple networked workstations

host only

embedded system

embeddable only

single workstation, multiple processor

host or embeddable

  1. host to use only a single processor
  2. embeddable to use multiple processors

single workstation, single processor

either host or embeddable

 

Demonstration:

In the following graph, the function boxes without the "_1" suffix are host boxes and come from the "stream" directory. The function boxes with the "_1" are embeddable boxes and come from the "embeddable/stream" directory.

To differentiate between the two types of boxes on the canvas, select View

Groups. This highlights all the embeddable boxes and turns all the host boxes white. Depending on the connection topology of the embeddable boxes there may be more than one color seen. Each color identifies a "group" of embeddable boxes whose execution is controlled as a single unit. See the manual for more details. 

The first difference between box types is that outputs of embeddable boxes may not be able to be connected to host boxes. For example, as of this writing, you can connect stream boxes together, but you can not connect vector data-type boxes together.

 

 

You can run this graph after you load the default parameters or you can enter parameters for the two sources yourself. Notice that for both graph branches, the output is identical. They should be, the functions are exactly the same. The functionality of the two branches is identical, but the user control over the execution and the execution itself is not the same for the two branches.

Information about the boxes is presented differently between the two types. The "Box Information" Tables differences are found in the following box_information hierarchical box.

Function distribution considerations are quite different for different target architectures. For execution across a network of workstations, the same considerations may not be as important as execution on embedded processors. Memory requirements and data transfer mechanisms are important considerations more for embedded applications than for workstation distributed applications. For more details about distribution, see the distribution hierarchical box and in the Users Manual see Section 2.6.

The information provided by the options in the View menu are presented differently for the two types of boxes. In each display, the host boxes are also shown as individual entries grouped by any existing graph hierarchy. The embeddable boxes are displayed in their group hierarchy. For more details about these differences, see the View menu hierarchical box .


Application Note last updated 3/24/98