Download Full Paper
Transcript
CHAPTER 2. TESTBED DESIGN experimentation, the various interfaces that enable a smooth cooperation of the components (marked with an ? in figure 2.3 on the preceding page, the scripting languages and the centralized data management employed. 2.3.1 Integration and Specification of Algorithms An algorithm consists of a fixed sequence of one or more modules as illustrated in figure 2.5 on page 31 and figure 2.2 on page 12. These modules can be pre- and postprocessing modules, the main algorithm module and so on. Each module gets its predecessors output as input. The first module’s input is the input file for the whole algorithm and the last module in the sequence writes the output file for the algorithm as a whole. The data stream between the modules is realized via temporary files. In what follows the integration and specification of modules and algorithms into the testbed is addressed. The discussion comprises the various interfaces that should, sometimes must be complied to. The two main interface formats the testbed requires are the output format the modules should adhere to when run last in an algorithm’s module sequence to enable subsequent statistical analysis of the results and the command line interface used to address the module binaries on the command line which is mandatory. An optional extension to this interface is the provision to output the specification of the parameters and arguments for doing so. Modules A module is defined as being part of an algorithm. Only modules actually exist as binary executables and hence can be executed. In the following, the notion module in used to refer to the meaning of being part of an algorithm as well as to the meaning of being the executable binary that implements this part and which can be executed by the system by calling it with parameters. Sometimes, in order to make things clearer, the latter meaning is denoted by (module) executable, too. A module is supposed to expect its input via an input stream realized as a single input file and outputs its computation results into a single stream, again realized as an output file. The information about which files to use in addition to other information needed by the module is passed as parameters. Parameters are represented as command line arguments on the level of the executable. Figure 2.4 on the next page illustrates this procedure. A module can be viewed as a black box, which the testbed executes with given parameter values and provision of a proper input file and which returns a file for further handling by the testbed. As pointed out before, in order to run arbitrary modules by the testbed and in order for the testbed to establish the flow of data from a single input source sequentially through a sequence of modules that form an algorithm, each module must heed a common interface. 14