Compiling Groups In IRIS Explorer 5.0

by Patrick Craig, Nihon NAG


Users of IRIS Explorer have long been familiar with the grouping mechanism which allows them to collect related modules in a map together under a single control panel, called a group. Some or all of the parameters that control the modules can be promoted up to the group level, and the widgets attached to those parameters can be changed by editing the group control panel. Grouping provides a convenient way of simplifying the appearance of a map, or hiding parameters that are deemed unnecessary for the map. Finally, grouping is often used in the creation of IRIS Explorer applications (which are maps that run without the map editor and librarian).

Although a group, at first glance, looks the same as a module, its underlying architecture is in fact the same as the original collection of separate modules. That is, grouping the modules only changes their user interface; underneath this, they still run as individual executables, each appearing to the operating system as a separate process, passing data via shared memory or sockets. This can have some advantages over a monolithic process: for example, if one module in a map crashes, the remaining modules are, in general, unaffected. Nevertheless, the separate processes can sometimes represent a poor use of resources (such as memory and CPU use), and the communications between the modules often appear to add a significant overhead to the execution of the group, particularly if it is composed of a large number of small modules.

In IRIS Explorer 5.0, these problems are addressed by the introduction of group compiling. In effect, this allows a new module to be built by combining existing ones together. Once the group has been created and its control panel laid out, an additional option allows the user to compile the separate modules into a single executable. Once the compilation is complete, the user can replace the modules in the group with the new compiled group. The control panel of the compiled group is the same as that of the old group, so the interface is unaffected. However, an examination of the machine’s process space will quickly reveal that the compiled group is running as a single process which consumes less CPU time and uses less memory than the original separate modules. This yields improved performance owing to the more efficient use of system resources.

The group compilation mechanism in IRIS Explorer 5.0 proceeds by returning to the source code of the constituent modules and compiling them together. Thus, in order to be able to compile a group, all the source files must be locatable. To facilitate this, IRIS Explorer 5.0 now contains the source to almost all of the modules in the distribution (previously, only a subset were available as source). As well as increasing the range of applicability of group compilation, this also provides users with a great deal more source, which can be modified or extended at will, or used as the starting point for new user-developed modules.


This article previously appeared in Render Issue 12, Autumn 2000.
[ Home : Support ]
© The Numerical Algorithms Group Ltd, Oxford UK.