The Glue reads in the parameter files, builds needed C modules and runs modules in the right order. It is very flexible because many requirements for the glue may be changing in the future.

glue.ini file


The glue.ini file contains information about each module, which modules to run and what to do. So let's have a look at a module section:

name = Survey Strategy
directory = Survey_Strategy/survey_strategy_0
param = param_survey_strategy.ini
command = ipython
profile = true

name = Signal_To_Noise
directory = Signal_to_noise/ston_coles_master/ston_coles
param = param.ini
command = ./simgary8B

This module has an identifier, a name, a directory, a param file, a command and a make command. Only the name, the directory and the commands are mandatory. The information is used as follows:

  • Identifier ([Survey_Strategy]): This is a unique Identifier for each module. It's used in the run section described below.
  • Name (name = Survey Strategy): This is the name displayed in the output of the glue.
  • directory (Survey_Strategy/survey_strategy_0): The directory of the modules that contains the module data
  • param (param = param.ini): The param is optional, it's a param.ini file that is fed into the data bank before the pipeline runs
  • command (command = ipython The command to run the module
  • make (not present here, e.g. "make = make"): This is optional, it compiles the module before the pipeline runs
  • profile (profile = true): lets this module run in profiling mode. It will create a profile.Identifier.log which can be read by kcachegrind

run section

The run section determines which modules are to be run by the pipeline. Only the param files of the modules that are included in this list are fed into the data bank. There can be an infinite number of modules in the list, the form is moduleN = Module_Identifier

module1 = Convert
module2 = Targeting
module3 = Survey_Strategy
module4 = Fiber_Allocation
module5 = Throughput
module6 = Signal_To_Noise

make section

The same as the run section for modules that need to be compiled.

module1 = Signal_To_Noise

data_bank section

In the data_bank section are the files defined that are merged into the data bank before the pipeline runs. The files with a higher number overwrite the files with a lower number. All the files are supposed to be in the data_dir from the options section below.

datafile1 = parameters.h5
datafile2 = catalog.h5


The base dir is the directory where the modules are located. If a relative path is used, it is relative to the directory of the glue. Make and run can be 0 or 1. It determines if the make or the run commands are executed or not.
The data bank is the data bank, located in the data_dir. The data dir is where the data is.

base_dir = ../
make = 0
run = 1
data_dir = ../../data/
data_bank = data_bank.h5