ASC Home | Architecture | Generative Modeling | Example System | Publications

Generative Modeling


In "traditional" model-integrated computing the models are created at design time. They describe a particular solution to a particular problem in the given engineering domain. Being able to work only with a fixed model configuration burnt-in the system or loaded at boot-up would be a strict limitation on the power of model-integrated computing. The EMI offers two techniques that allow models to evolve during execution.

One is to represent dynamic architectures in a generative manner. Here, the components of the architecture are prepared, but their number and connectivity patterns are not fully defined at design time. Instead, a generative description is provided which specifies how the architecture could be generated "on-the-fly". A generative architecture specification is similar to the generate statement used in VHDL: it is essentially a program that, when executed, generates an architecture by instantiating components and connecting them together.

The generative description is especially powerful when it is combined with architectural parameters and hierarchical decomposition. In a component one can generatively represent an architecture, and the generation "algorithm" can receive architectural parameters from the current or higher levels of the hierarchy. These parameters influence the architectural choices made (e.g. how many components to use, how they are connected, etc.), but might also be propagated downward in the hierarchy to components at lower levels. There the process is repeated: architectural choices are made, components are instantiated and connected, and possibly newly calculated parameters are passed down further. Thus, with very few generative constructs one can represent a wide variety of architectures that would be very hard, if not impossible, to pre-enumerate.

As a simple example for generative modeling, consider a data parallel algorithm, where the data set needs to be split n ways and the results need to be merged. If n can change during runtime, instead of modeling the structure for every possible instance of n, we can explicitly model the parameter n and create a generator that does the split and merge operation (Figure 3). (Even if the models do not change at runtime, but they do change frequently at design time, this generative technique provides a convenient approach to modeling.)

Naturally, not every architectural alternative is viable in all circumstances. The infrastructure allows for representing architectural constraints that constrain the selection process, thus limiting the search needed while forcing the process to obey other requirements.

Generative modeling allows for system modifications along dimensions fixed at design time. While this sufficient for most applications, the EMI can be configured to allow even more liberty in modifying running models. In this mode, an external agent is allowed the same power to specify models as it is possible during the boot phase.

To be able to make arbitrary modifications, however, requires extensive kernel support to safely deal with the transient effects and ensure integrity of scheduling communications during system changes. This support is usually not universal, and it is the responsibility of the external agent not to go beyond the abilities of the kernel.


ASC Home | Architecture | Generative Modeling | Example System | Publications