2006
This is the final report from Tyndall research project IT2.15 (SoftIAM: Integrated
on this project:
Dr. Rachel Warren1, Santiago de la Nava Santos, S.1, Dr. Rupert Ford2, Graham Riley2, Michael
1
Tyndall Centre for Climate Change Research, School of Environmental Sciences, University of East Anglia, Norwich
NR4 7TJ
2
Centre for Novel Computing, School of Computer Science, University of Manchester, Oxford Road, Manchester M13
9PL
3
Atmospheric Science Group, School of Earth, Atmospheric and Environmental Sciences, (SEASES), University of
Abstract
softIAM has underpinned the success of the theme 1 flagship project to create the
Community Integrated Assessment System (CIAS). The CIAS integrated assessment model
was designed to be a flexible, coupled, modular computer model in which communication
between modules were to be located at different institutions, on different computer platforms
and written in different computer languages. The advanced softIAM technology had to be
developed to make this possible. The technology was developed through a collaboration
between the Tyndall Centre and the Centre for Novel Computing (CNC) in the University of
Manchester. The first aim of the project was to further develop the existing CNC bespoke
framework generator (BFG) for application within softIAM. The second and third aims were
to develop the softIAM software and Web Portal. The fourth aim was to apply the system to
create the implementations of CIAS required by the Tyndall flagship project, and, finally, the
fifth aim was to deploy these across multiple institutions. All of these aims were achieved, and
the user can now use the portal to execute several configurations of the CIAS integrated
assessment model. In particular CIAS has been demonstrated operating when deployed
between the Potsdam Institute in Germany, the CNC in the UK and the UEA in the UK. CIAS
currently incorporates modules from UEA, Cambridge University and the Potsdam Institute
and is being used by UEA to perform coupled scientific (integrated assessment) studies.
Keywords
Coupled modelling; bespoke framework generator; SoftIAM software engineering; CIAS
integrated assessment model; community integrated assessment system
Objectives
The main objective of softIAM was to deliver the software infrastructure necessary for the
operation of the Community Integrated Assessment System’s integrated assessment model, CIAS.
Specifically:
• to adapt and extend the Bespoke Framework Generator (BFG) for use in softIAM,
and hence CIAS
• to develop the softIAM technology to use the BFG and to support the initialisation,
compiling, staging and running of coupled models and visualisation of the resultant
output.
• to develop the softIAM Portal, a web interface to allow users to run CIAS from a
network of institutions in different countries
• to enable the Tyndall flagship project “Integrating Frameworks” to produce a
working version of CIAS containing economic, climate and impact modules
• to demonstrate the operation of this system across international boundaries.
Work undertaken
The Bespoke Framework Generator (BFG) was extended to support the initial and
emerging requirements of CIAS. Three new deployment targets were implemented (Globus, Web
Services and distributed MPI). These provide softIAM with the flexibility required to run the
CIAS coupled models with modules running on different machines, potentially in different
institutions, using different operating systems. The Globus solution was successfully tested
running between institutions (Manchester and UEA) using the Grid. The Web Services-based
solution was successfully tested running between institutions and between (Windows and Linux)
operating systems. The distributed MPI solution, a development of the Globus target, is now the
primary solution used by softIAM. This version uses a recent implementation of MPI which
provides the benefits of the previous two solutions (Globus and web services) with less complex
infrastructure requirements and improved communication performance. BFG was also modified
to allow it to be more easily integrated into the softIAM system. Further, (schema) validation
checks of the (xml) input data were added to check for errors and therefore make the system more
easy to use in production.
The softIAM technology was developed to use BFG as the coupling system and also to
allow the initial input data for a coupled model to be specified, the coupled model to be compiled
and run, on the appropriate hardware resources, and the resultant output visualised by the user.
A softIAM Web portal was developed to provide a simple user-interface for access to all
available functionalities of CIAS, whilst masking the details of softIAM infrastructure. From the
portal the user may select and run coupled, integrated models of CIAS, download results, archive
inputs and outputs, and plot graphs. Results typically detail the climate outcomes or impacts of
various economic policies or emissions scenarios.
During the softIAM project, a collaboration was set up with the Potsdam Institute in
Germany. The team resulting from this collaboration worked together to demonstrate an initial
deployment of CIAS operating between the Potsdam Institute, the CNC and UEA. The Potsdam
Institute use a home-grown communications library called TDT to couple their modules. BFG
was further extended to be able to use TDT as a deployment target. This implementation of BFG
allowed Potsdam modules and CIAS modules to interoperate in a coupled model using BFG and
was tested using modules distributed at the three sites in a single coupled scenario.
Results
The three technical layers discussed above (BFG, softIAM technology and softIAM Web
Portal) were used to demonstrate the first implementation of CIAS, a coupling between an
emissions database and a simple climate model. A full deployment of CIAS was then created, in
which an economic module, an emissions module, two alternative climate modules and an
impacts module may be linked together into a coupled integrated assessment model. This has
enabled researchers to generate scientific results for two journal papers using CIAS and to
demonstrate the interoperability of CIAS between two institutions in different countries.
• R.W. Ford and G.D. Riley, Towards the Flexible Composition and Deployment of
Coupled Models. In proc. Tenth ECMWF Workshop on the Use of High Performance
Computing in Meteorology; Realizing TeraComputing. ECMWF, Reading, England, 4-8
November 2002. World Scientific, pp. 189--195, 2003. ISBN: 981-238-376-X
• Ford, R. W., Riley, G. D., Bane, M. K., Armstrong, C. W. and Freeman, T. L. (2005)
GCF: a General Coupling Framework , Concurrency and Computation: Practice and
Experience, to appear (2005).
• Warren, R., Bane, M., Barker, T., Barton, C., Ford, R., Kohler, J., Mitchell, T., Pan,
H., Raper, S, Riley, G., de la Nava Santos, S., Winne, S., and Anderson, D. Development
of the Community Integrated Assesssment System (CIAS), a multi-institutional modular
integrated assessment approach for modelling climate change, and of SoftIAM, its
supporting software submitted to Environmental Modelling & Software.
Related Research
The success of the softIAM project has influenced UEA’s and Manchester’s ability to win further
projects (and to obtain continuation funding). Two such projects are:
• IntBioSim: Integrated Biological Simulation, led by Prof. Mark Sansom at Oxford. Multi-
level modelling of biological systems from the atomistic to the continuum (i.e. quantum
mechanical models coupled to molecular dynamics models, coupled to computational
fluid dynamics models)
• GENIEfy: Earth System Modelling, led by Tim Lenton at UEA (Tyndall).
The experience in softIAM has also influenced the work that has been undertaken by the CNC in
the Met Office’s FLUME project which is developing a new, flexible, software infrastructure for
the Unified Model (UM).
Web-sites
http://www.cs.manchester.ac.uk/cnc/projects/fca
http://www.cs.manchester.ac.uk/cnc/projects/bfg
http://www.cs.manchester.ac.uk/cnc/projects/softiam
Introduction
Concern about the serious impacts of climate change has been paralleled by a concern
that mitigation would be economically damaging. Studies have therefore begun (for
example Richels & Edmonds, 1995, Rotmans, 1990, Rotmans, Hulme & Downing, 1994,
Schneider & Toth, 2003) to (1) analyse different scenarios for emissions between 2000
and 2100, in terms of their environmental consequences (2) analyse the costs of
stabilisation of greenhouse gas concentrations in the atmosphere (3) analyse the impacts
of climate change and hence the benefits of climate change mitigation (for example Parry
et al., 2001). Such study of mitigation and adaptation requires an interdisciplinary
approach, so integrated assessment (IA) models of climate change have been assembled
(Alcamo, 1984, Dowlatabadi, 1995, Kainuma et al., 2003, Matsuoka et al., 1995,
Morgan and Dowlatabadi, 1996, Plambeck et al., 1997, Prinn et al., 1999, Rotmans,
1990, Rotmans et al., 1994). Most of the models are built at a single institution, which
inevitably cannot address all the disciplines of relevance, are consequently rooted in
particular scientific paradigms, assumptions or sets of beliefs, and are inflexible in
structure and design, so that mismatches between modelling capability and evolving
policy requirements are difficult to eliminate. Further, the policy maker may also
become bewildered by a wide array of somewhat different modelling outputs from
different integrated assessment models built at different institutions, detailing contrasting
estimates of the costs and benefits of alternative mitigation policies. To overcome these
drawbacks and obstacles the Tyndall Centre’s theme 1 flagship project, a Community
Integrated Assessment System (CIAS), has been set up to promote flexibility, robustness
studies and multi-institution collaboration in integrated assessment. The design
principles of CIAS are that:
• The system is flexible and multi-modular to allow a range of policy questions to
be addressed, thus facilitating iterative interaction with stakeholders.
• The system is distributed, that is deployed across a wide range of institutions
within Europe, allowing the system to benefit from the best available international
expertise which it integrates into a single modelling framework available to all
participants
• The system can take advantage of (but is not limited to) state of the art Grid
technologies (Foster et al., 2001) which allow models to communicate with each
other remotely regardless of operating system or computer language.
• The system is jointly owned by a community of institutions which contribute
individual models or the underpinning software. The system’s name directly
reflects this community approach.
• The system addresses the global climate policy problem, taking into account
issues of sustainable development where appropriate; and its design is, and will
continue to be, guided by the needs of the user/stakeholder community as well as
by modellers.
A principal advantage of the system is that it will allow the composition of many
individual model combinations, allowing the robustness of integrated modelling results to
the use of different models to be examined. This will be particularly important when (i)
comparing the use of individual modules of different levels of complexity and detail (ii)
comparing the use of individual modules from different institutions which have similar
complexity but are based on different modelling paradigms or value judgements
originating from the different institutions. In addition, a full uncertainty analysis
technique can be applied to the system holistically. Thus for each policy question
demanded of CIAS:
• the scientist can:
9 understand the degree to which increasing complexity of component
models enhances understanding or increases/decreases uncertainty
9 understand the robustness of results to paradigm shifts
• the policy maker can receive a clear picture of:
9 the consistency or otherwise of integrated modelling results
9 the degree to which model output is dependent upon the value judgements
lying behind modelling paradigms
addition, the user of CIAS must be able to determine the particular CIAS coupled model
they wish to use and receive a (distributed) implementation of the model for execution.
This facility is provided by the SoftIAM framework, which is largely supported by the
implementation has been thoroughly tested with a variety of coupled models. This
The flexibility of the system means that several different coupled integrated models
(all of which are CIAS) exist. This section describes how SoftIAM is used to assemble a
particular, user selected, coupled integrated CIAS model from a series of component code
Note that the term module will be used to refer to an individual piece of code which
can be combined with other modules to form a coupled model. The term model refers to
modules to form various alternative coupled models (i.e. integrated assessment models)
and flexibility in their deployment onto the available software and hardware resources.
BFG is key to satisfying the design principles of CIAS (previously described), and is also
section. SoftIAM supports the following user-oriented activities required to run the CIAS
coupled models: (The technology supporting these activities is also described in more
• User interaction with the system through a graphical interface, called the
(Figure 1). We will refer to this as the “SoftIAM portal machine”. SoftIAM
1
Prior to the operation of SoftIAM the scientific validity of the coupling between the modules to make an
integrated model is ensured by participating scientists. SoftIAM is not used to create integrated assessment
modules that have not been scientifically validated.
SoftIAM
Infrastructure
BFG
Framework
code
generation
SoftIAM
Portal Build/Run
control
File control:
input data/
code/results
staging etc.
module input data for a particular run of a coupled model via the Portal.
• The ability to set module parameters via the Portal. Thus SoftIAM configures
• The staging of module input data, module output data and module code. As
the appropriate computational resources on which they are to be run (if data is
not already in the required place). SoftIAM also transfers the required output
from the run of the coupled model back to the user from the potentially (and
typically) remote computational resources. Note, the module source code must
which the executable for that module is to be built and run unless
• The building of the coupled model. Again, as CIAS is a distributed system the
compiled and linked with the module codes on the remote computational
resources.
• The invocation of the coupled model. As the coupled model may be distributed
support the flexible composition and deployment of individual models into coupled
section describes how the fully developed FCA is used within softIAM. The next section
describes the work which was carried out to fully develop the FCA for use in CIAS under
To create instances of a coupled integrated model within CIAS, the scientist must
first deduce the flows of information required to couple the component modules. Having
done this, use of FCA requires the construction of XML files which give a description of
the (data) interface of each module which is to be composed with other modules in a
coupled integrated model. The interface prescribes the data which a module can provide
to other modules and the data which it needs from other modules in order for it to
execute. The interface is used during the composition of individual modules into a
module which contains code simulating only the internal science of the module. That is,
the implementation of a module is free from details of how the module is to be called in a
particular coupled model (i.e. no control code is provided; the implementation may be
yet, unspecified main program code) and there is no specification regarding the
mechanism the modules will use to exchange coupling data (as specified in their
interfaces). Details of how the modules are to behave in the coupled model are, however,
completely specified at the end of the composition process, by which time all connections
between modules are known. In particular the timestep values of individual modules are
known from their description (so called transformer models may have to be included in
the composition to match the input and output rates of data exchanged between models –
see Section ‘Details of the Bespoke Framework Generator’). With the addition of
information about which modules are to run first in the coupled model, the behaviour of
the coupled model is thus completely specified. These issues are discussed at greater
together to form a coupled model are separated from the concerns of deployment issues,
such as how to allocate models to executables and where (on which computing resources)
to run the resulting executables. The overall process is termed DCD - for Description,
metadata which captures the relevant information from each of the three phases. Given
code/files/scripts to couple the individual modules using the most appropriate coupling
framework or communication system in the specified manner. Thus, the BFG produces a
bespoke (set of) framework code appropriate to the coupled model specified by the user.
methodology for time-stepping coupled models. The BFG is available for download from
et al. (in press). In the BFG, metadata is written in XML [W3C. Extensible markup
language (XML) 1.0 (second edition) W3C Recommendation, October 2000] and is
model from several individual modules, and deploying the coupled model onto the
appropriate hardware and software resources. The description metadata, which details a
module’s interface, is at a high level, suitable for climate scientists, and includes
information such as which fields (e.g. temperature, in degrees Kelvin, or Carbon dioxide
concentration, in parts per million by volume) the module requires (inputs) and which it
can provide (potential outputs). The composition metadata describes how the individual
modules are to be connected - which output fields from one module are connected to
which input fields of one or more other modules. The description metadata includes
information about the time scale of an iteration of a module and the composition
metadata captures the total run duration of the coupled model. The BFG uses this data
during its code generation phase to create the coupled model according to the required
scientific specification. Individual modules that are to be coupled together will typically
operate at different temporal and spatial scales. Rather than requiring the user to modify
individual codes to make them compatible, the BFG approach is for the user to provide,
possibly from a library, appropriate transformation modules which, for example, may
accumulate input from a short time scale module and output the latest data to a longer
time scale module. These transformations act as the “glue” between modules. The
advantage of this approach is that the scientific modules do not need to be modified from
one composition to another. Note, the BFG treats transformations in the same manner as
The description and composition metadata therefore contain all the information
required to specify a coupled model reflecting the required science of the coupled
application. To ensure flexibility, the BFG also requires metadata about how the coupled
communications code. For example, running a coupled model over different institutions,
as required for CIAS, can be performed using the Grid (Foster et al.2001) and the BFG
will generate the required mapping of modules to executables and the appropriate MPI
communication code, for example, to support deployment on the Grid (using MPICH-G2
A module must obey a small set of rules for it to be compliant with the version of
BFG used in the SoftIAM infrastructure: it must be a subroutine or function and use
get(inputData,id) to receive data into the variable inputData. The BFG has
taken the decision to limit variable support to scalar and array variables (whose size and
type is encapsulated in the description metadata 2 ). This approach was taken for two
reasons. First, most scientific computation is array-based and, second, all languages
support scalar and array types. The id variable is also used in the description metadata to
label the corresponding field. The id variable is the link between the metadata and the
The separation of metadata from a module’s source code and the ability to use the
module code unchanged in any composition and deployment allows high levels of
flexibility and reusability. The composition and deployment of a coupled model can be
performed with just single module object code (for the correct operating system) and
these can be altered without having to re-compile the module’s source code.
2
In order to cater for different memory storage sizes for variables (e.g. on different operating systems) it is
also necessary to capture low-level details such as the size of basic types in the metadata.
The current implementation of the BFG uses XML Schema [W3C. XML schema
version 1.0. W3C Recommendation, May 2001] to define allowable and required
contents of the user supplied XML documents 3 and uses XSLT [W3C. XSL
these to generate the required framework code. The BFG software consists of a
constraints engine (to ensure all user supplied XML documents are valid) and a code
generation engine (to generate the framework code in the user specified programming
language). The BFG supports models written in Fortran or C (depending on the chosen
(i) sequential, which generates a single executable coupled model with modules running
(ii) single machine MPI, which generates a single (SPMD-style) executable coupled
model,
(iii) distributed MPI, which allows an arbitrary mapping of modules to executables and
using sockets.
(vi) Oasis3 coupler, this is a proof of concept implementation which uses Fortran 90
modules
3
See http://www.cs.manchester.ac.uk/cnc/schema/bfg.
(vii) Web Services, which uses Tomcat (http://jakarta.apache.org/tomcat/) and Axis
(using HTTP and SOAP) and call the underlying model code.
Further, investigations have shown that it is possible to extend BFG support (in a
limited manner) to include modules which are written directly using TDT, thus opening
include:
(i) individual modules only need to be described once. Once a module conforms to the
(ii) scientific code is separated from coupling code. This helps scientists to concentrate on
(iii) it is simple to create new compositions and to change from one deployment to
another. This is all specified in xml and can be performed in a graphical environment, if
needed.
(v) the system is future proof, in that the development of new frameworks, or changes to
existing frameworks, will not affect individual modules or their compositions. For
example the Grid technologies have evolved and are continuing to evolve. The BFG
number of coupling frameworks and similar technologies being developed. The BFG
(vii) the BFG metadata will be used in the Met Office’s next generation software system
(being developed in their Flume project). This means that Met Office models will be able
The CIAS system design requirements relevant to module coupling (see Section
‘The Community Integrated Assessment System (CIAS) Approach’) are first, the ability
to flexibly compose different modules and model scenarios, secondly, to support models
which are distributed across institutions, including Grid deployment and thirdly, to be
able to incorporate existing modules written in different languages into the system. The
BFG was chosen as the coupling technology for the SoftIAM infrastructure because it
meets these requirements as well as providing a number of other benefits which have
In the first instance, a Globus MPI target communication infrastructure was added to
BFG in order to support the execution of models across multiple institutions using the
Grid. This target was chosen as, at the time, the use of Globus was considered (by the
computation. The feasibility of this approach was proved with a test case running a
coupled simulation with some CIAS modules running at UEA and others at Manchester.
Although this approach was successful, the softIAM team considered Globus to be a
rather heavyweight solution for CIAS – for example, it additionally required certain
approach, using ssh to avoid firewall issues, was considered to be more suitable. This
new (distributed MPI) approach required no change to the BFG system as the Globus
MPI target produced the required distributed MPI code (the Globus specific configuration
In order to help reduce bugs in the softIAM system, and to improve the usability of BFG,
a validation phase was added to the BFG software. This phase checks that the xml input,
provided by the user, into the system is valid (i.e. that it conforms to the relevant schema)
and therefore helps check for errors in the input data provided to BFG.
As new modules and coupling scenarios were added to the softIAM system a new
requirement emerged which was to be able to run some modules on machines running a
Windows operating system and others modules run on machines running Linux within
the same coupled model. Unfortunately, at the time there was no implementation of MPI
available which supported this requirement. It should be noted that this was a limitation
This solution was chosen as Web Services were known to support communication
between machines running different operating systems. This approach was successful and
was integrated into the SoftIAM system. SoftIAM is therefore able to choose between
these two communication targets (and any other previously existing targets such as
‘sequential’).
which allowed direct MPI communications between machines running windows and
machines running Linux. This solution was (and still is) preferred for softIAM as MPI
As the project progressed, the Tyndall Centre became interested in using modules
developed by the Potsdam Institute in Germany (PIK) within CIAS. PIK already had a set
of modules which used their “home grown” communication framework called TDT. The
CNC had lengthy and productive discussions with PIK exploring how CIAS and PIK
models might interoperate. The CNC’s preferred approach would be for PIK modules to
be written to conform to the BFG single module rules and for BFG to have TDT
implemented as a BFG target. This approach would allow PIK modules to use any of the
available BFG targets, including TDT. To demonstrate the feasibility of this approach a
TDT BFG target was implemented. In practice, the use of BFG with TDT as a target
allows (with some limitations) modules written directly in TDT to interoperate with BFG
modules. Therefore it is possible to use CIAS modules and TDT modules within a
coupled model in softIAM - if TDT is used as the target communication mechanism. This
Finally, UEA identified the fact that future coupling scenarios would require more
complex control flow than the BFG system can support – the BFG in use in softIAM only
supports relatively simple time stepping models. The possibility of extending BFG to
support future complex control flow requirements was evaluated and prototype solutions
were tested. The results of these tests will help direct the future evolution of BFG2, the
of MPICH 2 (http://www.unix.mcs.anl.gov/mpi/mpich2).
J2SE is used by the internal scripting engine and data
configuration and input data, build the model’s source code, if necessary, start modules
running, and return the results of integrated model runs to a remote client. MPICH 2 is
used by the BFG component of the SoftIAM software for passing data between the
various modules which comprise the integrated model. MPICH 2 is also the underlying
mechanism for starting and running the generated coupled model. However, SoftIAM
hides this from the end user in order to provide a consistent interface and remove the
a whole can be controlled from a remote client. This client only needs an installation of
the SoftIAM software and a J2SE. SoftIAM requires that the build, deploy and run
requirements for individual modules and the overall coupled model are described in XML
in a SoftIAM conformant format. For example, the following XML defines a module
<src>
<fileList>
<file>ModuleIclipsIm.f90</file>
<file>LoaderIclipsIm.f90</file>
<file>ReadDataIclipsIm.f90</file>
</fileList>
</src>
<language>
<target>
<ext>.o</ext>
</target>
<compiler>
<name>ifc</name>
<args>-c @SRC_FILES@</args>
</compiler>
<linker>
<name>ar</name>
<args>-rsv libiclips-im.a @OBJ_FILES@</args>
</linker>
</language>
The following piece of XML defines how to generate BFG components for the
compiled module and how to execute this part of the coupled model. In this case, BFG is
<BFG>
<mpi>
<type>fortran</type>
<args>-n 1 -host beo1.uea.ac.uk -dir @.@ iclips-im.exe</args>
<implementation>
<name>ModuleIclipsIm</name>
</implementation>
<language>
<target>
<ext>.o</ext>
</target>
<compiler>
<name>mpif90</name>
<args>-c @SRC_FILES@</args>
</compiler>
<linker>
<name>mpif90</name>
<args>-oiclips-im.exe @OBJ_FILES@ -liclips-im
@LIBRARY_PATHS@</args>
<libraryPaths>
<directive>-L</directive>
<dirList>
<dir>@.@</dir>
</dirList>
</libraryPaths>
</linker>
</language>
</mpi>
</BFG>
modules and allows SoftIAM to use this meta-data to process each module and then run
which uses the information provided in XML files in order to carry out the build, stage
and run tasks. The system takes advantage of ANT secure shell tasks to carry out
SoftIAM is a command line tool but a web based interface called the SoftIAM
carrying out coupled modelling. For any particular coupled model user interface
components are dynamically generated for the various modules which form the coupled
model. The information required to generate these user interface components is provided
by the XML files associated with the individual modules. For instance, the following
piece of XML allows the SoftIAM Portal to generate an HTML <select> component with
<parameterList>
<parameter>
<name>Emission Scenarios</name>
<type>java.lang.String</type>
<choiceList>
<choice>
<name>Type 1 Scenarios</name>
<value>type1.ems</value>
</choice>
<choice>
<name>Type 2 Scenarios</name>
<value>type2.ems</value>
</choice>
</choiceList>
<regex>^./(.*)$</regex>
<filename>esm.properties</filename>
<displayOrder>1</displayOrder>
</parameter>
</parameterList>
The <regex> tag contains a regular expression which the portal will use to update
the file referred to in the <filename> tag. The <type> tag is used to ensure that the data
submitted by the portal user conforms to certain rules, in this case that a
"java.lang.String" type can be constructed from it. The file referred to in the <filename>
the coupled model. Similarly, the following XML allows the SoftIAM Portal to generate
<parameterList>
<parameter>
<name>Climate Sensitivity (Celsius - delta)</name>
<type>java.math.BigDecimal</type>
<regex>^(?:.*\n){1}^[ ]*([-|+]?\d*.?\d*)[ ]*\*[
]*SENSITIVITY.*$</regex>
<filename>scm.properties</filename>
</parameter>
</parameterList>
<resultList>
<result>
<filename>results.out</filename>
</result>
</resultList>
Finally, the piece of XML enclosed within the <resultList> tags allows the SoftIAM
Portal to generate module-specific HTML which allows a user to download the result
files associated with the module. In this specific case, the module produces a file called
"results.out" which the portal user can download by clicking on a (generated) button.
The implementation of CIAS
• The lower layer is BFG that needs some XML files defining the different modules
and how we are coupling them together. If the user wants to execute a coupling,
first (s)he must compile the modules linking to BFG libraries, write the
configuration files for each module, copy each one at the correct machine,
generate a command to execute the coupling and finally after the execution get
• The middle layer is the SoftIAM command. At this level, we have some extra xml
files as well as the BFG xml files. This new information automatizes some of the
tasks that the user has to do working with the first layer only. At this layer, the
system compiles the modules of the coupling, uploads and downloads the
configuration files to the correct machine, executes the coupling and downloads
the results. The user only have to know how to configure the different modules,
• The higher layer provides a graphical interface, the SoftIAM portal, which hides
previous layers. At this level, the user does not know how the coupling is
executed, the system allow him to deploy, configure, run and download results
without knowing any detail of SoftIAM infrastructure. Now, the user only has to
provide the desired values for the parameters to configure and interpret the
results. In future versions of SoftIAM, a result analysis tool will be included at
portal:
After log-in, the user is presented with a series of use-case diagrams showing how
the modules are coupled together, and information about the modules and their inputs and
outputs. When the user selects a particular coupling the system shows a detailed
description of each module in it, and the possibility to deploy or undeploy this coupling.
(i) Compiles each module in the machine where the module is being executed.
(iii) Downloads for all the modules the description XML files, the configuration
files and log files of the compilation, to the SoftIAM portal machine. (See
Figure 1).
Next the user is given the opportunity to configure the modules. This involves
selection of key parameters, for example in the case of ECON, the magnitude and years
of application of Carbon taxes; in the case of ESM, the emissions of greenhouse gases;
and in the case of SCM, the climate sensitivity and ocean diffusivity. A default case
diagram that (s)he selected. SoftIAM then uploads the configuration files to the
corresponding machines and starts to execute the coupling. Once execution is complete
results are sent to output files in the SoftIAM portal machine which may be displayed on
the screen or saved to the hard drive by the user. The interface is currently being
If the user decides to undeploy the coupling, the system removes all the
The metadata contained in all the SoftIAM and BFG XML files leads the behaviour
of the system. The following chapters describe all those files and the information
provided by them.
There are some XML files in BFG to define the modules and the couplings, the
node of the schema tree) is defineInterface which consists of four child elements
which must be given and in the order name (the name of the interface), version
(the version of the interface), behaviour and one or more fields elements. The
behaviour element consists of, in any order, a type and a compatibility element.
interface within a coupled model. Each field element consists of a name, id and
direction element, in that order. Studying the schema itself will show that id has to
be an integer and direction has to be “in” or “out”. Thus, this data contains the
information about which fields are required and provided by this interface. (See
figure 2).
module's source details. This includes information about the author but also the
programming, language and what platforms the module has run on. This latter
information will be used during the deployment stage to ensure a module is only
run on a platform for which it is suited. The source schema also includes
information about each field, whether is a scalar or an array, its dimension and the
implementation of the put() and get() subprogram units. (See figure 3 and 4).
execution details of the module. The user has to provide, for a given platform, the
size in bytes or bits of each datatype and the location of the code live. BFG
originated with, but is not limited to, coupled models comprising a selection of
time stepping modules. Therefore, for each module, the user also has to provide
the module's simulation timestep. BFG will use this information, together with the
document), to auto-generate the control loops to ensure each module is called the
model's overall simulation run time (runDuration) and the connections between
modules by the connect element(s). For each connect element, the module which
provides data (providesModel) and that which requires this data (requiresModel)
are defined. For each field coupling, the user also has to define the provides/id
and the requires/id, where the field relating to the value of id is given from the
name
version
1..∞
type
defineInterface behaviour
compatibility
name
id
fields
1..∞ direction
Figure 2: define.xsd
name
version
author
1..∞
group
company
source
language
machine
model
runsOn
1..∞ os
compiler
1..∞
fields
1..∞
id
index
direction
size
fieldunits
fields
array dimension dimensionunits
1..∞
vartype
source
type
scalar
source
and get() routines, and comms which defines the underlying implementation of
document which contains the name of all the other XML documents, and it is this
name
version value
timestep units
executable
machineName
location directory
name
type
datasize value
1..∞
size
units
Figure 5: executable.xsd
value
runDuration
units
compose name
providesModel
version
connect requiresModel
0..∞
provides id
fieldConnect
0..∞
requires id
Figure 6: compose.xsd
machineName
name
deploimentUnit
1..∞ model
1..∞
version
deploy
fabric
framework
language
comms
Figure 7: deploy.xsd
interface
component
1..∞ source
model
coupled executable
compose
run
deploy
run
Figure 8: coupled.xsd
SoftIAM needs extra information to carry out all the tasks. That information is
contained two different XML files, one for the module and other for the coupling. Both
of them contain useful information for the SoftIAM command and portal.
The XML schema for Softiam.xml file in a module is module.xsd (See Figures 9,
10, 11 and 12). This schema defines external datafile, configuration files and result files
of the module as well as how to compile and execute the module. At this file, we also
find information of parameters configurable from the portal. The following list
• module: This element is the root element at module.xsd and encapsulates all the
• name: Is the name that will appear for this module at the portal.
• description: Is a text describing the module. As the name, it appears at the portal
the module. The text appears at the portal when the user proceeds to configure the
module.
• image: This field indicates the image that describes the workflow of the module.
• platformList: This parameter contains a list of platform elements that contains the
platforms where the module can be executed. Those platforms are windows, unix,
• dataList: This parameter contains a list of data elements which represent external
data files that modules need to download before the execution. Each data element
contains the name of the file and the machine where the file is stored. If the file is
configuration files of the module. These files are internal to the module, so they
are in the jar file that contains the module. (See ‘SoftIAM structure’ section).
• resultList: Inside this element is a list of result elements. Each result element
represents result file of the module. SoftIAM command and portal allow to
description
configurationDescption
0..1
image
0..1
actionList action
0..1 1..∞ clean
src fileList
0..1
file
0..∞
language
0..1
mpi
bfg
webservice
parameterList parameter
0..1 0..∞
parameterArrayList parameterArray
0..1 0..∞
script
dist 0..1 file
args
clean 0..1
shell
command
0..1
executeList execute
target ext
intermediate ext
0..1
name
language
compiler args
directive
includePaths
0..1
dirList dir
0..∞
name
linker args
directive
libraryPaths
0..1
dirList dir
0..∞
args
mpi
implementation name
language
(See language reference at figure 10)
name
implementation
file
webservice
language
(See language reference at figure 10)
name
type
parameter readonly
0..1
downloadable
0..1
regex
filename name
displayOrder value
0..1
constrainedParameter
0..1
name
type
parameterArray files
columns
readonly
0..1
regex
filename
displayOrder name
0..1
displayOrder
0..1
• build: Here users can indicate an ant action script that should contain the targets
dist, clean. This action script is executed prior the user deploys (dist command) or
deploy or undeploy a coupling. Inside this tag can be actions that must contain a
dist or a clean element. This example shows how this element works:
<actionList>
<action>
<dist>
<script>
<shell>
<name>cmd</name>
<args>/c</args>
</shell>
<file>setup.bat</file>
<args>Module A</args>
</script>
<command>
<shell>
<name>cmd</name>
<args>/c</args>
</shell>
<executeList>
<execute>echo Module A dist action running</execute>
</executeList>
</command>
</dist>
</action>
<action>
<clean>
<command>
<shell>
<name>cmd</name>
<args>/c</args>
</shell>
<executeList>
<execute>echo Module A clean action running</execute>
<execute>echo Module A doing something else during the clean action</execute>
</executeList>
</command>
</clean>
</action>
</actionList>
This actionList contains two actions one to perform the deployment of the
coupling (dist) and another to undeploy the coupling (clean). To define the scripts
to execute the system provides two possibilities to use the element script or the
because is for a windows system, for a unix platform we can use ‘sh’) and
arguments for the shell (‘/c’ is needed for windows shell to indicate the
command that has to execute). After the definition of the shell, the user
must define the file that contain the script to execute (‘setup.bat’) and the
9 command: The difference with the script element is that this one allows to
execute a sequence of commands. As for the script element the user must
That list contains execution elements that are commands with their
arguments. In the example, the commands executed for the clean action
are first ‘cmd /c echo Module A clean action running’ and then ‘cmd /c
• src: This element contains the list of source files of the module. This list is used to
• language: This element leads the compilation of the module, to perform this task
we must include some information inside this element: the target files extension
(for example, it could be .obj), the intermediate file extensions, the compiler and
arguments needed by the compiler, the liker and arguments needed by the linker.
<language>
<target>
<ext>.obj</ext>
</target>
<compiler>
<name>ifort</name>
<args>/nologo /c /iface:cref /iface:nomixed_str_len_arg @INCLUDE_PATHS@
@SRC_FILES@</args>
<includePaths>
<directive>/I</directive>
<dirList>
<dir>@MPICH2_HOME@\include</dir>
</dirList>
</includePaths>
</compiler>
<linker>
<name>link</name>
<args>/NOLOGO @LIBRARY_PATHS@ /OUT:dummy-a.exe @OBJ_FILES@ dummy-a.lib
fmpich2.lib</args>
<libraryPaths>
<directive>/LIBPATH:</directive>
<dirList>
<dir>@MPICH2_HOME@\lib</dir>
</dirList>
</libraryPaths>
</linker>
</language>
At the example the targets of the compiler are ‘obj’ files. ‘ifort’ is the copiler
used, the arguments for the compiler are indicated inside the compiler element,
exists the possibility to indicate the library paths for the compilation (we must
indicate the directive we will use at the compiler’s command to add the
directories where the libraries are) . To define the compiler command, we use the
directory where the system has installed MPICH2). The command generated to
steps to define the linker are very similar, the only difference is that we use the
“fmpich2.lib”’.
• bfg: This element contain all the information to allow a module to be coupled in
the model. The elements inside bfg tag could be mpi or webservice depending on
which communication framework we want to use. The way to define the process
of coupling is different for mpi and webservices. This is an example for mpi:
<bfg>
<mpi>
<type>fortran</type>
<args>-n 1 -host localhost -dir @.@ dummy-a.exe</args>
<implementation>
<name>ModuleDummyA</name>
</implementation>
<language>
<target>
<ext>.obj</ext>
</target>
<compiler>
<name>ifort</name>
<args>/nologo /c /iface:cref /iface:nomixed_str_len_arg @INCLUDE_PATHS@
@SRC_FILES@</args>
<includePaths>
<directive>/I</directive>
<dirList>
<dir>@MPICH2_HOME@\include</dir>
</dirList>
</includePaths>
</compiler>
<linker>
<name>link</name>
<args>/NOLOGO @LIBRARY_PATHS@ /OUT:dummy-a.exe @OBJ_FILES@ dummy-
a.lib fmpich2.lib</args>
<libraryPaths>
<directive>/LIBPATH:</directive>
<dirList>
<dir>@MPICH2_HOME@\lib</dir>
</dirList>
</libraryPaths>
</linker>
</language>
</mpi>
</bfg>
The type element defines the language of bfg generated code (it must be fortran or
C). The args at this level are used for the mpiexec command, which is called
function inside the source code of the module that starts the execution of the
module. It is required because bfg calls that function in the middleware code that
is generated. After all those elements there are a language element that works like
the element explained previously. The difference is that this one is to compile the
middleware source code and link it with the module and bfg libraries. In this case,
the variable @SRC_FILES@ contains the files generated by bfg for the
communication middleware.
<bfg>
<webservice>
<implementation>
<name>@USERNAME@ModuleDummyA</name>
<file>ModuleDummyA.f90</file>
</implementation>
<language>
<target>
<ext>.obj</ext>
</target>
<compiler>
<name>cl</name>
<args>/c /D_SYMBOLCASE=UPPERCASE /D_NOAPPENDUNDERSCORE
@INCLUDE_PATHS@ @SRC_FILES@</args>
<includePaths>
<directive>/I</directive>
<dirList>
<dir>@JAVA_HOME@\include</dir>
<dir>@JAVA_HOME@\include\win32</dir>
</dirList>
</includePaths>
</compiler>
<linker>
<name>link</name>
<args>/DLL /OUT:@LIBRARY_NAME@.dll @OBJ_FILES@ dummy-a.lib</args>
</linker>
</language>
</webservice>
</bfg>
In this case, the elements type and args disappear. The element implementation
includes more information than in mpi implementation: the name that is the
function that will be called by the implementation of the webservice, and the file
that indicates the name of the source file of the module that contains that function.
After those elements there is a language element with the same structure than in
mpi implementation (only change the compiler and linker used because we use
• parameterList: The purpose of this element is to allow the user to configure the
the xml file is: The name of the parameter (this name is showed at the portal when
the user configures the parameters), the type of the parameter (it must be
datafiles needed by the module), the regular expression that allow to find and
modify the value of the parameter in a file (the regular expression must contain
only one capturing group, see Java’s Patterns reference), the file that contains this
parameter, the order in the list of parameters, and restrictions for the parameter’s
values. The restrictions contain values for this parameter, but could contain values
for other parameters when we select a specific option for this parameter.
<parameter>
<name>Values</name>
<type>java.lang.String</type>
<regex>^(.*)$</regex>
<filename>dummy-a.properties</filename>
<displayOrder>1</displayOrder>
<restrictionList>
<restriction>
<name>Type 1 Values</name>
<value>type1.ems</value>
</restriction>
<restriction>
<name>Type 2 Values</name>
<value>type2.ems</value>
</restriction>
</restrictionList>
</parameter>
This example shows a parameter called Values, which only can has the values
type1.ems (this value is written at the configuration file when the user select at the
web the option ‘Type 1 Values’) and type2.ems (this value is written at the
configuration file when the user select at the web the option ‘Type 2 Values’).
<parameter>
<name>GCM Tuning</name>
<type>java.lang.String</type>
<regex>^(?:.*\n){36}^[ ]*(.*)[ ]*\*[ ]*GCM.*$</regex>
<filename>MAGMOD.CFG</filename>
<displayOrder>3</displayOrder>
<restrictionList>
<restriction>
<name>Custom</name>
<value>Custom</value>
<displayOrder>1</displayOrder>
</restriction>
<restriction>
<name>GFDL</name>
<value>GFDL</value>
<constrainedParameterList>
<constrainedParameter>
<name>Measure of CO2 Doubling Forcing (W 1/m²)</name>
<value>5.352</value>
</constrainedParameter>
<constrainedParameter>
<name>Climate Sensitivity (°C) (0.5 - 5.5)</name>
<value>4.2</value>
</constrainedParameter>
<constrainedParameter>
<name>Mixed Layer Depth (m)</name>
<value>60</value>
</constrainedParameter>
</restriction>
<restriction>
<name>HadCM3</name>
<value>HadCM3</value>
<constrainedParameterList>
<constrainedParameter>
<name>Measure of CO2 Doubling Forcing (W 1/m²)</name>
<value>5.396</value>
</constrainedParameter>
<constrainedParameter>
<name>Climate Sensitivity (°C) (0.5 - 5.5)</name>
<value>3.0</value>
</constrainedParameter>
</restriction>
</restrictionList>
</parameter>
In this case, there is a parameter that only could get the values Custom,GFDL and
HadCM3, but depending on which one is selected other parameters could change
their values. When we select Custom no other parameters are modified (this
other parameter get the value indicated at the constrainedParameter element. For
(W 1/m²)’ takes the value 5.396 and the parameter ‘Climate Sensitivity
(°C) (0.5 - 5.5)’ takes the value 3.0, both parameters must be defined at the
parameterList element.
previous. This element is used to define a configurable array of values. The sub
elements inside it are the same than in the previous element with some
differences: this parameters can not be downloadable, the restrictions does not
columns, and the number of capturing groups at the regexp element must be
<module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespaces.softiam.org/module
@LOCAL_SOFTIAM_HOME@/build/module.xsd"
xmlns="http://namespaces.softiam.org/module">
<!-- Where used @USERNAME@ is replaced before this specification file is used with the name of
the user invoking SoftIAM -->
<!-- Where used @LOCAL_SOFTIAM_HOME@ is replaced before this specification file is used
with the full PATH to the local SoftIAM installation -->
<!-- Where used @JAVA_HOME@ is replaced before this specification file is used with the full
PATH to the local Java installation -->
<!-- Where used @MPICH2_HOME@ is replaced before this specification file is used with the full
PATH to the local Mpich2 installation -->
<!-- Where used @.@ is replaced before this specification file is used with the full PATH to the
module installation -->
<!-- These three tags contain information which will be displayed by the SoftIAM Portal -->
<name>Module Dummy A</name>
<description>A dummy module.</description>
<configurationDescription>Select from the drop down list.</configurationDescription>
<!-- These tags specify which platforms this module specification file can be run on -->
<platformList>
<platform>unix</platform>
</platformList>
<!-- These tags specify the data archives which need to be expanded into the directory where the
module executable lives -->
<!-- <dataList>
<data>
<file></file>
<machine</machine>
</data>
</dataList> -->
<!-- These tags specify the configuration files which the user of the module is allowed to change in
order to customize the behaviour of the model -->
<configList>
<config>
<filename>dummy-a.properties</filename>
</config>
</configList>
<!-- These tags specify the results files which the module produces -->
<!-- <resultList>
<result>
<filename></filename>
</result>
</resultList> -->
<!-- These tags force SoftIAM to execute the action in the script build.xml equal to the action that the
user is invoking SoftIAM with -->
<build>build.xml</build>
<!-- These tags force SoftIAM to execute the various commands depending on what action the user is
invoking SoftIAM with -->
<actionList>
<action>
<dist>
<script>
<shell>
<name>sh</name>
</shell>
<file>setup.sh</file>
<args>Module A</args>
</script>
<command>
<shell>
<name>sh</name>
</shell>
<executeList>
<execute>echo Module A dist action running</execute>
</executeList>
</command>
</dist>
</action>
<action>
<clean>
<command>
<shell>
<name>sh</name>
</shell>
<executeList>
<execute>echo Module A clean action running</execute>
<execute>echo Module A doing something else during the clean action</execute>
</executeList>
</command>
</clean>
</action>
</actionList>
<!-- Here are all the src files which need to be built -->
<src>
<fileList>
<file>ModuleDummyA.f90</file>
<file>SourceDummyA.f90</file>
</fileList>
</src>
<!-- Here is all the information needed to build this module -->
<language>
<target>
<ext>.o</ext>
</target>
<compiler>
<name>ifc</name>
<args>-c @SRC_FILES@</args>
</compiler>
<linker>
<name>ar</name>
<args>-rsv libdummy-a.a @OBJ_FILES@</args>
</linker>
</language>
<!-- Here is all the information necessary to allow this module to be coupled into a model -->
<bfg>
<mpi>
<type>fortran</type>
<args>-n 1 -host localhost -dir @.@ dummy-a.exe</args>
<implementation>
<name>ModuleDummyA</name>
</implementation>
<language>
<target>
<ext>.o</ext>
</target>
<compiler>
<name>mpif90</name>
<args>-c @SRC_FILES@</args>
</compiler>
<linker>
<name>mpif90</name>
<args>-odummy-a.exe @OBJ_FILES@ -ldummy-a @LIBRARY_PATHS@</args>
<libraryPaths>
<directive>-L</directive>
<dirList>
<dir>@.@</dir>
</dirList>
</libraryPaths>
</linker>
</language>
</mpi>
</bfg>
<!-- These tags contain information which will be used by the SoftIAM Portal to generate input fields
which allow the values of module configuration parameters to be altered in the files referred to in the
<configList> tags -->
<parameterList>
<parameter>
<name>Values</name>
<type>java.lang.String</type>
<regex>^(.*)$</regex>
<filename>dummy-a.properties</filename>
<displayOrder>1</displayOrder>
<restrictionList>
<restriction>
<name>Type 1 Values</name>
<value>type1.ems</value>
</restriction>
<restriction>
<name>Type 2 Values</name>
<value>type2.ems</value>
</restriction>
</restrictionList>
</parameter>
</parameterList>
</module>
The XML schema for Softiam.xml file in a coupling is coupling.xsd (See Figure 13
and 14). This schema defines the list of modules that are coupled, the restrictions between
the parameters of each module and the files where the modules are contained. The
• coupling: This element is the root element at coupling.xsd and encapsulates all the
parameterCompatibilityList, bfg).
• name: Is the name that will appear for this coupling at the portal.
• description: Is a text describing the coupling. As the name, it appears at the portal
• image: This field indicates the image that describes the workflow of the coupling.
• moduleList: This field contains the list of modules that are executed by this
coupling. Each module defines the jar file that contains the definition and source
code of the module, the machine where that file is (this information is contained
by the element name), the platform of the machine (windows, unix, aix, hpux,
irix, linux, macosx, solaris) and the secure shell style (windows or unix) to
After the selection of the modules and parameters, we have to decide the type of
restriction. There are two possibilities: the first one is the simpleCompatibility,
which allows to define the restrictions equal, not equal, lessEqual, less,
simpleCompatibility:
<parameterCompatibilityList>
<parameterCompatibility>
<module1Name>MAGICC Climate (Tyndall Centre)</module1Name>
<parameter1Name>GCM Tuning</parameter1Name>
<module2Name>ICLIPS (PIK)</module2Name>
<parameter2Name>Change in Indicators</parameter2Name>
<simpleCompatibility>less</simpleCompatibility>
</parameterCompatibility>
</parameterCompatibilityList>
In this example if the parameter ‘GCM Tuning’ of the module ‘MAGICC Climate
(Tyndall Centre)’ is not less than the parameter ‘Change indicators’ at the module
‘ICLIPS (PIK)’ the portal shows an error to the user when executes the coupling.
<parameterCompatibilityList>
<parameterCompatibility>
<module1Name>MAGICC Climate (Tyndall Centre)</module1Name>
<parameter1Name>GCM Tuning</parameter1Name>
<module2Name>ICLIPS (PIK)</module2Name>
<parameter2Name>Change in Indicators</parameter2Name>
<complexCompatibility>
<valueCompatibility>
<valueList1>
<value>HadCM2</value>
</valueList1>
<valueList2>
<value>allHadcm2</value>
</valueList2>
</valueCompatibility>
<valueCompatibility>
<valueList1>
<value>ECHAM4</value>
</valueList1>
<valueList2>
<value>allEcham2</value>
</valueList2>
</valueCompatibility>
<valueCompatibility>
<valueList1>
<value>Custom</value>
</valueList1>
<valueList2>
<value>allFiles</value>
</valueList2>
</valueCompatibility>
</complexCompatibility>
</parameterCompatibility>
</parameterCompatibilityList>
At this example, there are only three correct configurations for the parameters.
modules of the coupling (mpi or webservices) and the xml file that provides the
name
description
file
image
name
coupling moduleList module machine
0..∞
platform
ssh-style
module1Name
parameter1Name
parameterCompatibilityList parameterCompatibility
0..1 1..∞
module2Name
parameter2Name
file
simpleCompatibility
mpi complexCompatibility
bfg
webservice file
This is an example of Softiam.xml file for coupled.xsd schema which couples together
three modules named IPCC_ESM, MAGICC_SCM and SCENGEN_DSM:
<coupling xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://namespaces.softiam.org/coupling
@LOCAL_SOFTIAM_HOME@/build/coupling.xsd"
xmlns="http://namespaces.softiam.org/coupling">
<moduleList>
<module>
<machine>
<file>MPI_WINDOWS_ipcc-esm.jar</file>
<name>tynsoftiam.zicer.uea.ac.uk</name>
<platform>windows</platform>
<ssh-style>unix</ssh-style>
</machine>
</module>
<module>
<machine>
<file>MPI_WINDOWS_magicc-scm.jar</file>
<name>tynsoftiam.zicer.uea.ac.uk</name>
<platform>windows</platform>
<ssh-style>unix</ssh-style>
</machine>
</module>
<module>
<machine>
<file>MPI_WINDOWS_scengen-dsm.jar</file>
<name>tynsoftiam.zicer.uea.ac.uk</name>
<platform>windows</platform>
<ssh-style>unix</ssh-style>
</machine>
</module>
</moduleList>
<bfg>
<mpi>
<file>coupled.xml</file>
</mpi>
</bfg>
</coupling>
SoftIAM structure
<version> directory. This directory contains all necessary components to create, deploy
softiam-<version>
bin
build
doc
etc
lib
public
modules
couplings
util
Windows ‘softiam’ command) and the deployment file to create a SoftIAM node. The
directory ‘build’ has the ant script commands used internally by SoftIAM to perform all
the tasks. At ‘doc’ directory the user can find the documentation of the system. Tools and
libraries needed by SoftIAM are in ‘etc’, ‘lib’ and ‘util’. Finally, ‘public’ directory
contains all the modules and couplings that the machine can execute.
Inside the directory ‘modules’ we can find the ‘.jar’ files that contain the source
code, configuration files, softiam and bfg xml files of each module. Following is the
module.jar
softiam.xml
The softiam.xml file, at the module jar file, fits the schema module.xsd (See figures
The directory ‘couplings’ contains all the ‘.jar’ files of the couplings. That ‘.jar’
files contain the bfg xml files and a softiam.xml file that fits coupling.xsd (See figures 13
and 14).
coupling.jar
module_i_dir
1..∞
executable.xml
interface.xml
run.xml
source.xml
compose.xml
coupled.xml
deploy.xml
run.xml
softiam.xml
Each coupling jar file has one module-i-dir for each module used at the coupling.
SoftIAM Command
SoftIAM command allows the user to perform all the task of the system. Following
Usage:
softiam -help
softiam -admin
softiam -gui
softiam -data-analysis
Options
-help: Displays this information
-admin: Displays usage information associated with
administrating SoftIAM and SoftIAM Portal
-gui: Starts couplings and modules test interface
Usage:
softiam -deploy
softiam -dist
softiam -clean
softiam -config-machine <webservices|mpi>
softiam -add-user -username <ID> -password <***>
softiam -delete-user -username <ID>
softiam -list
softiam -unpack
softiam -pack
softiam -unpack-coupling <NAME>
softiam -unpack-module <NAME>
softiam -pack-coupling <NAME>
softiam -pack-module <NAME>
Options
-deploy: Deploys SoftIAM and the SoftIAM Portal
-dist: Generates the SoftIAM and SoftIAM Portal distributions
-clean: Removes ALL files including the generated
SoftIAM and SoftIAM Portal distributions
-config-machine: Configures a machine so that it can host
webservice or MPI modules
-add-user: Add a user to the SoftIAM Portal application
-delete-user: Delete a user from the SoftIAM Portal application
-list: Lists all available SoftIAM couplings and modules
-unpack: Unpacks all available SoftIAM couplings and modules
-pack: Packs all available SoftIAM couplings and modules
-unpack-coupling: Unpacks a SoftIAM coupling
-unpack-module: Unpacks a SoftIAM module
-pack-coupling: Packs a SoftIAM coupling
-pack-module: Packs a SoftIAM module
Most of the options are self explanatory, but following is the usage of the command
softiam -username <ID> -password <***> [-trace] [-l] -coupling <NAME> [ACTION]
Actions: run|dist|clean|help
qrun|qdist
getConfigs|putConfigs|getResults
The command with this format allows the deployment, configuration and execution
1. If a coupling is not deployed we must deploy it, to do this we use the command:
softiam -username <ID> -password <***> [-trace] [-l] -coupling <NAME> dist
Where the ID is the user that executes the command, the password is the general
password to execute couplings in SoftIAM and the name is the name of the jar file
that contains the coupling (in the coupling directory) we want to execute. This
execution.
2. Once we have the configuration files modified we have to execute the coupling:
softiam -username <ID> -password <***> [-trace] [-l] -coupling <NAME> run
This command uploads the configuration files, executes the coupling and finally
softiam -username <ID> -password <***> [-trace] [-l] -coupling <NAME> clean
We can see that the command have five more actions to execute. These options are:
• qdist: This action is identical to ‘dist’ except that no configuration files are
• qrun: This action is identical to ‘run’ except that no result files are uploaded to
remote machines.
remote machines.
• getResults: This action download result files from distributions hosted on remote
machines.
These are some example commands and the sequence of actions performed by
a_dummy-b_UNIX.jar dist
1. Build the dummy A library on the machine where this module lives.
3. Build the dummy B library on the machine where this module lives.
6. Link the coupling code and the dummy A and B libraries into executables on
a. This is to give the user the chance to access and change the module
a_dummy-b_UNIX.jar run
1. Upload the configuration files associated with the generated dummy A and B
modules to the machines where these modules live, from the machine where
3. Download the result files associated with the dummy A and B modules to the
a_dummy-b_UNIX.jar clean
1. Removes all intermediate files associated with the dummy A and B modules
the dummy A and B modules on the machines where these modules live.
3. Removes all information from the machine where the user is running
SoftIAM Portal
The SoftIAM Portal is a Web based application (WAR) for interfacing with
application framework. The portal provides a graphical user interface for carrying out
coupled modelling. For any particular coupled model, user interface components are
dynamically generated for the various modules which form the coupled model. The
component XML files associated with the individual modules and couplings. Following
• Logon screen: At this screen users have to type their username and password to
enter the system. Once the user is logged on SoftIAM generate a work directory
for that user (if the directory does not exist). (See figure 18).
• Coupled Models screen: At this point the user selects the coupled model to
execute. The portal shows a flowchart of the model selected at the popup menu.
When the user clicks the ‘Display’ button the portal show the description of the
coupling and the modules that compose it. (See figure 19).
• Deployment screen: This screen shows the description of the coupling and each
module in the coupling. The user can undeploy the coupling (this is equivalent to
execute softiam -username <ID> -password <***> [-trace] [-l] -coupling
<ID> -password <***> [-trace] [-l] -coupling <NAME> clean). (See figure 20).
• Execution screen: From this screen the user can configure and execute the
module. To configure a module of the coupling, the user selects the desired
module at the popup menu and then clicks on the ‘Configure’ button. If there are
restrictions between modules this screen allows to check that restrictions pressing
the button ‘Restrictions Info’, but the button does not appear if there is no
restriction defined. (See chapter ‘Couplings XML file’ for the definition of
clicking on ‘Run’ button, once the module has been executed the button
‘Download Results’ allows to see the results of the execution. (See figure 21).
screen. At this screen we can select a value for all the parameters and
‘Module XML file’ for more information about parameters and parameterArrays
shows a ‘Download’ button for that parameter. When the user click that button the
system download the file associated to the option selected or typed for the
parameter. To configure the module the user has to select the correct values for
• Restrictions Info screen: The screen shows all the restrictions between the
parameters of each module defined at softiam.xml file of the module. (See chapter
elements). This screen is only an information screen. The user can not perform
• Results Download screen: From this screen the user can download all the results
files and the configuration selected at the Configuration screen for each module.
(See figure 24). The results files are defined at the softiam.xml file of the module
jar file. (See chapter ‘Module XML file’ for more information about ‘resultList’
elements).
ECONomic component, E3MG; the Tyndall Centre HQ at the University of East Anglia
which contributed the emissions module (ESM), the simple climate model (SCM), the
downscaler (DSM), and the SoftIAM Portal through which CIAS may be run; and the
Potsdam Institute for Climate Change in Germany, which contributed the ICLIPS impacts
contributed by the Centre for Novel Computing at the University of Manchester. Thus 4
(a) ECON
system, estimated on annual data 1971-2002 and projecting annually to 2020 and every
10 years to 2100. It is designed to address the issues of energy security and climate
stabilisation both in the medium and long terms, with particular emphasis on dynamics,
uncertainty and the design and use of economic instruments, such as emission allowance
trading schemes. It is a disequilibrium model with an open structure such that labour,
foreign exchange and public financial markets are not necessarily closed. It is very
disaggregated, with 20 world regions (including the 13 nation states with the highest CO2
atmospheric emissions and 42 industrial sectors, with comparable detail for the rest of the
markets are closed, e.g. total exports equal total imports at a sectoral level allowing for
imbalances in the data. The model is in the process of development. Exogenous inputs
in the current version of the model (E3MG2.1) include GDP (largely), the world oil price,
regional gas and coal prices, energy supplies, population, participation rates, exchange
and interest rates and population. E3MG models technical change endogenously through
progress indicators in sectoral energy and export demand equations, and the effect of
extra investment in new technologies on consumption and output in the world economy.
It also contains a bottom-up model - an annual, dynamic technology model, referred
to here as the ETM model (Anderson and Winne, 2004). This is based on the concept of
E3MG simulates the effects of carbon taxes and permit trading upon the demand for
and technologies used to generate, energy. To do so the model simulates the economic
taxes, employment taxes, and other direct and indirect taxes. As a result of these
demand.
E3MG outputs simulations of CO2 and other greenhouse emissions and GDP levels
interpolated to a 5-yearly basis to 2100. Energy emissions of other polluting gases, and
the structure of GDP in terms of industrial outputs and expenditure components are also
(b) ESM
The ESM model contains a list of scenarios for CO2, CH4, N2O, SO2, CFCs and
PFCs. Emissions of CFCs and PFCs are fixed between 1765 and 2100 and for the other
gases between 1765 and 1990, whilst the user may select scenarios for the non-CO2
greenhouse gases between 1990 and 2100 at 5 – yearly intervals. These scenarios are
different interpretations of the SRES scenarios as modelled by various integrated
assessment modelling groups (e.g. AIM, Matsuoka et al.1995). If the model is used such
that the connection between E3MG and ESM is operative, then emissions are obtained
(c) SCM
consequences of the SRES scenarios in the IPCC Third Assessment Report (IPCC
2001a). The MAGICC model has been developed and updated over 2 decades. For the
Ocean Global Circulation Models (AOGCMs) and used to extend the model results to the
components to simulate GHG cycles, radiative forcing, and ice melt. Gas cycles are used
to convert surface emissions of gases to atmospheric concentrations and these are then
converted using standard formulae into radiative forcing, including that due to sulphate
aerosols. The total forcing then drives an upwelling diffusion energy balance model to
estimate future climate changes. Thus the package allows the user to determine changes
in CO2 concentration, global mean surface air temperature and sea-level between the
years 1990 and 2100 resulting from anthropogenic emissions of CO2, CH4, N2), HFCs,
CFCs and PFCs, as well as SO2. It is also possible to determine the sensitivity of these
results to the variation in key model parameters, specifically the climate sensitivity, the
ocean diffusivity, the aerosol forcing and uncertainties in the Carbon cycle (Wigley
1993). A capability to carry out such sensitivity studies manually has been included in
(d) DSM
by Mitchell and Osborn (2004) in the tradition of CLIMAPS (Rotmans et al., 1994),
SCENGEN (Hulme et al., 1995b), CLIMPACTS (Kenny et al., 1995) and COSMIC
variations for 1901-2002 (Mitchell and Jones, 2005) and 2001-2100 (Mitchell et al.,
2004). Nine climate variables are represented and coverage extends over the global land
(e) ICLIPS
The ICLIPS Climate Impact Model was constructed at the Potsdam Institute for
(temperature and CO2 concentration) and an aggregated impact indicator (Toth et al.
2003). These indicators are specified in biophysical units (i.e. impacts are not valued).
The functions have been derived from many simulations of (i) a modified version of the
global vegetation model, BIOME1 (Prentice et al.1992) (ii) a crop suitability model
FAO-AEZ (Leemans and van den Born, 1994), both adapted to allow for the direct
effects of enhanced CO2 on plants, and (iii) a global water model WaterGAP 1.0 (Doll et
al. 1999) developed at the University of Kassel. These indicate the effects of T and CO2
concentrations upon natural vegetation, potential agricultural production, and fresh water
availability. These results are based on scaled climate-change patterns resulting from
three recent GCMs. The library is used as a “look-up table” such that climate impacts
may be determined for various outputs of the MAGICC model. For output to be valid,
the climate sensitivity used in MAGICC.TAR model must be “tuned” to match the GCM
used in ICLIPS. This is easily handled by the SoftIAM portal such that the user is alerted
to mis-tuned configurations.
CIAS, in which the pattern scaling is to occur within CIAS’s DSM model and its outputs
Use Cases
“modes” known as “use cases” (which as far as the system is concerned, are different
possibilities. Figure 26 illustrates the simplest use case, connecting only ESM and SCM,
whilst the most useful practical applications are shown in Figures 27 to 29, where the
user may compare the global and regional climate impacts resulting if various climate
policies are, or are not, applied in the regions covered by E3MG. Different timescales of
application of such policies may be studied, and impacts may be examined at either the
regional scale, or at the global scale, though a linkage of ECON, ESM, SCM, and the
ICLIPS impacts tool. In Use Case A (Figure 26) the inputs are emissions of greenhouse
gases from 1990 to 2100 and the outputs are global average T and sea level rise from
1990 to 2100, at 5 yearly intervals. In Use Case B (Figure 27) the inputs are economic
policies for Carbon taxes and/or permit trading in the various world regions covered by
E3MG, whilst the outputs are global climate predictions. In Use Case C (Figure 28) the
outputs are (instead) regionally specific climate predictions and impacts in the range of
Future Plans
CIAS’s design reflects our ambitious goal of creating an array of models in each of
the categories “ECON”, “CLIMATE” and “IMPACT” (Figure 32). Users will ultimately
each category in order to examine the robustness of outputs to paradigm shifts associated
with the use of different options for economics models within the “ECON” category, or
with different options for climate models within the “CLIMATE” category for example.
In addition, CIAS will allow for climate models (for example) to be broken down into
treated in more detail. Feedback mechanisms are an important advantage associated with
the use of IA and these will also be included at a later stage. This will require further
many participating institutions which donate models to the pool. These structures also
allow for many more inter-comparisons between models and for more detailed or
complex use cases to be set up, hence the sets of alternative modules seen in “ECON”
and “CLIMATE” in Figure 32. This will require further development of the BFG to
support the different computer languages used at the more extensive array of participating
institutions.
CIAS is the support for complex behaviour and support for modules which are internally
parallel. Further, support for new languages and frameworks will be added as required by
CIAS.
Separate ongoing collaboration with the Met Office with their Flume project, and
with the GENIE consortium (through the project GENIEfY), is aiming to ensure that
modules from these modelling groups will also be compatible with SoftIAM modules
Finally, as the CIAS system matures it is envisaged that it will have to begin tackling
problems that it does not currently have to face, such as interoperability with modules
written for other frameworks, how to support a restart mechanism, the inclusion of
The SoftIAM system has been used to underpin the development of a flexible
distributed integrated assessment model. At the heart of SoftIAM lies the BFG coupling
system; the flexibility provided by the BFG greatly enhances the model’s utility as a
policy design tool, through the potential to complete robustness studies to intra- and inter-
model uncertainties and value judgements. The resultant completed first version of the
coupled to a simple climate model and a simple impacts tool. Further development of
Acknowledgements
The coupled modelling demonstrations would not have been possible without the
this context we particularly thank Rupert Klein, Ciaron Linstead and Jochen Hinkel.
We also thank the Potsdam Institute, and in particular our colleague Hans-Martin Fuessel,
for the use of the ICLIPS climate impacts tool within the CIAS modelling system, our
colleagues within the Tyndall Centre, Terry Barker, Jonathan Kohler, and Haoran Pan for
the use of the E3MG model within CIAS, our colleagues Tim Lenton, John Shepherd,
Bob Marsh, Andy Ridgewell, Neil Edwards, David Cameron Andrew Yool and Mark
Williamson for use of the BCM GOLDSTEIN model within CIAS, and Sarah Raper and
Tom Wigley for use of the MAGICC model within CIAS. We also thank Tim Mitchell, a
former colleague within the Tyndall Centre, for his initial participation in the softIAM
project prior to leaving the organisation, and in particular for his many helpful
discussions.
Outputs
REFERENCES
Arctic Climate Impact Assessment (ACIA).: 2004 ‘Impacts of a warming Arctic’. Cambridge
University Press, Cambridge, U.K.
Alcamo, J. (ed.) 1984. IMAGE 2.0: Integrated Modeling of Global Climate Change. Kluwer
Arnell, N.W.: 2004, ‘Climate change and global water resources: SRES emissions and socio-
economic scenarios’, Global Environmental Change 14, 31-52.
Barker, T. 1999. Achieving a 10% cut in Europe’s carbon dioxide emissions using additional
excise duties: coordinated, uncoordinated and unilateral action using the econometric model
Barker, T., Pan, H., Kohler, J., Warren, R., and Winne, S. Avoiding dangerous climate change
Bye, B., Kverndokk, S. and K.E. Rosendahl (2002): Mitigation costs, distributional effects
and ancillary benefits of carbon policies in the Nordic countries, the UK and Ireland:
Caldeira, K., and Wickett, M.E.: 2003, ‘Anthropogenic carbon and ocean pH’, Nature 425, 365.
COSMIC, 1997. Country Specific Model for Intertemporal Climate.
Amazonian forest dieback under climate-carbon cycle projections for the 21st century. Theor.
Criqui P, Kitous A, Berk M, den Elzen M, Eickhout B, Lucas P, van Vuuren D, Kouvaritakis N
and Vanregemorter D (2003) Greenhouse Gas Reduction Pathways in the UNFCCC Process up to
Environment
Doll, P, Kaspar, F., and Alcamo, J.,1999. Computation of Global Water Availability and Water
Fisher, G., Shah, Mahendra, and van Velthuizen, H.: 2002, ‘Climate Change and Agricultural
Vulnerability’, special report prepared by the International Institute for Applied Systems Analysis
under UN contract agreement no. 1113 as contribution to the World Summit on Sustainable
Development, Johannesburg 2002. IIASA, Laxenburg, Austria.
Ford, R.W., Riley, G.D., Bane, M.K., Armstrong, C.W. and Freeman, T.L. GCF: a General
Coupling Framework, Concurrency and Computation: Practice and Experience. Wiley & Sons (in
press)
Foster, I., and Kesselman, C., 1997. Globus: A Metacomputing Infrastructure Toolkit. Intl J.
Foster, I., Kesselman, C., and Tuecke, S, 2001. The Anatomy of the Grid: Enabling Scalable
Gregory, J.M., Huybrechts, P., and Raper, S.C.B. , 2004. Threatened loss of the Greenland Ice
GENerator, Software User Manual, Version 1.0. Climatic Research Unit, UEA, Norwich, 38 pp.
Hulme, M., Raper, S.C.B. and Wigley, T.M.L.,1995a. An Integrated Framework to Address
Climate Change (ESCAPE) and Further Developments of the Global and Regional Climate
IPCC, 2001a. Climate Change 2001. Contribution of Working Group I to the Third Assessment
Report of the Intergovernmental Panel on Climate Change, Cambridge University Press, UK.
IPCC, 2001b. Climate Change 2001 – Impacts, Adaptation and Vulnerability. Contribution of
Working Group II to the Third Assessment Report of the Intergovernmental Panel on Climate
IPCC, 2001c. Climate Change 2001 – Mitigation. Contribution of Working Group III to the Third
Press, UK.
Kainuma, M., Matsuoka, Y., and Morita, T., 2003 (Eds). Climate Policy Assessment: Asia Pacific
Kenny, G.J., Warrick, R.A., Mitchell, N.D., Mullan, A.B., and Salinger, M.J., 1995.
CLIMPACTS: An Integrated Model for Assessment of the Effects of Climate Change on the New
Leemans, R and Eickhout, B.: 2003, ‘Analysing ecosystems for different levels of climate
change’, Report to OECD Working Party on Global and Structural Policies ENV/EPOC/GSP
5/FINAL. OECD.
Leemans, R., and van den Born, G., 1994. Determining the Potential Global Distribution of
Natural Vegetation, Crops and Agricultural Productivity. Water, Air and Soil Pollution 76, 133-
162
Matsuoka, Y., Kainuma, M. and Morita, T., 1995. Scenario Analysis of Global Warming Using
the Asian Pacific Integrated Model (AIM). Energy Policy 23, 357-371.
Milly, P.C.D., Wetherald, R.T., Dunne, K.A. and Delworth, T.L., 2002. Increasing Risk of Great
high-resolution grids of monthly climate for Europe and the globe: the observed record (1901–
2000) and 16 scenarios (2001–2100) Tyndall Centre Working Paper No.55, Tyndall Centre,
climate observations and associated high-resolution grids Int. J. Climatol., 25, 693-712.
Morgan, M.G. and Dowlatabadi, H., 1996. Learning from Integrated Assessment of Climate
Nakicenovich, N., and Swart, R.m 2000. Special Report on Emissions Scenarios. Cambridge,
Oakley, J., and O’Hagain, A., 2002. Bayesian inference for the uncertainty of computer model
Oppenheimer, M., and Alley, R.B., 2004. The West Antarctic Ice Sheet and Long Term Climate
Parry, M (ed), 2004. An assessment of the global effects of climate change under SRES emissions
Parry, M. 2001. Millions at risk: defining critical climate change threats and targets. Global
Prentice, I.C., Cramer, W., Harrison, S.P., Leemans, R., Monserud, R.A., and Solomon, A.M.,
1992. A Global Biome Model Based on Plant Physiology and Dominance, Soil Properties and
Prinn, R., Jacoby, H., Sokolov, A., Wang, C., Xiao, X., Yang, Z., Eckhaus, R., Stone, P.,
Ellerman, D., Melillo, J., Fitzmaurice, J., Kicklighter, D., Holian, G. and Liu, Y., 1999. Integrated
Global System Model for Climate Policy Assessment: Feedbacks and Sensitivity Studies.
Richels, R. and Edmonds, J., 1995. The Economics of Stabilizing Atmospheric CO2
Rotmans, J., 1990. IMAGE: An Integrated Model to Assess the Greenhouse Effect. Kluwer, The
Netherlands.
Rotmans, J., Hulme, M. and Downing, T.E., 1994. Climate Change Implications for Europe: An
Schneider, S.H., and Toth, F.L., 2003 (eds). Integrated Assessment of Climate Protection
Toth, F.L., Bruckner, T., Fussel, H.-M., Leimbach, M., and Petschel-Held, G., 2003. Integrated
Assessment of Long-term Climate Policies: Part 1- Model Presentation. Climatic Change 56: 37-
56.
Warren, R., 2002. A Blueprint for Integrated Assessment. Tyndall Centre Technical Report 1,
20 www.tyndall.ac.uk
Warren, R., 2005. Summary of climate impacts for different levels of global temperature rise.
Proceedings of the Avoiding Dangerous Climate Change conference, Exeter 2005. CUP. (in
press).
Wigley, T., 1993.Balancing the carbon budget. Implications for projections of future carbon
1 http://www.ietf.org/html.charters/secsh-charter.html
2 http://java.sun.com/
3 http://www-unix.mcs.anl.gov/mpi/mpich2/
5 http://ant.apache.org/
6 http://jakarta.apache.org/struts/
Figure Captions
Figure 2. define.xsd
Figure 5. executable.xsd
Figure 6. compose.xsd
Figure 7. deploy.xsd
Figure 8. coupled.xsd
Figure 31. Effect of carbon taxes (with permit trading and revenue recycling) on GDP compared to a
baseline case with no carbon taxes, showing the effect of including induced technical change in the
modelling exercise.
Table Captions
Table 1: CO2 Emission Permit Prices and Carbon Tax Rates $/tC in stabilisation scenarios for Annex 1 and
Non-Annex 1 Countries.
Natural Environmental Research Council (NERC) Gough C., Shackley S. (2005) An integrated
Economic and Social Research Council (ESRC) Assesment of Carbon Dioxide Capture and
Engineering and Physical Sciences Research Storage in the UK. Tyndall Centre Technical
Council (EPSRC) Report 47.