2 RELATED WORK
Within the MD simulation domain, the approach
most closely related to our work is the Nanohub
(Nanohub, 2013). The Nanohub has been developed
as a place for computational nanotechnology
research, education, and collaboration, however
most of primarily resources have an educational
focus. Nevertheless, it provides a web-based
interface for a variety of simulation softwares.
However, the interface is somewhat unusual. Each
simulator has its own front-end and Nanohub serves
them up via a java-based VNC (screen sharing)
client. The complexity of the variety of simulators
is addressed through simplified user interfaces: the
user is only presented with a limited subset of
options to help guide the simulations. Most of the
modules have a consistent look and feel, so the
learning curve is reasonable. Visualization and
plotting tools are often built into the GUIs. Jobs are
submitted to clusters and the results copied back to
the nanohub space. Unfortunately, Nanohub has its
set of limitations. The VNC-based user interface is
not very responsive. User-level customization is not
supported. The user can only change the parameters
that Nanohub includes in its simplified interface.
There is no interaction supported between various
tools: the output of one simulator cannot be trivially
fed to the input of another. Similarly, the primary
mode of operation is interactive, since most tools
have been developed with education in mind, and
thus submitting a large set of jobs is not easily
accomplished.
The Atomic Simulation Environment (ASE)
(Atomic Simulation Enviroment, 2013) is a Python-
based tool that can connect to many different
simulation codes as "calculators" you plug into the
environment. It has thus far been primarily being
developed for quantum mechanical calculations and
is not well suited for most MD simulations. The
power of ASE lies in its ability to bring in many
different codes and tools that can be linked together
in a common interface. The fact it is Python makes
it potentially easy to expand and interface with other
math toolkits, plotting and visualization libraries,
etc. However, using ASE involves developing
Python code and has a steep learning curve for those
with limited or no programming experience. For
example, since each "calculator" may in fact be very
different, the functions required to use a given
calculator are often unique, so tool integration with
ASE is not seamless at all.
MDAPI (MDAPI, 2013) is similar to ASE,
however developed for biophysical simulation,
where the interface and computational engines are
separated. However, similar to ASE, a steep
learning curve is required and it no longer appears to
be actively developed.
Etomica (Etomica, 2013) is a molecular
simulation code written in Java, enabling it to be
easily used and distributed via the web. While it
does not allow end users to directly create custom
simulations via the web, nevertheless, the user can
run a variety of prewritten modules with custom
parameter settings, similar to Nanohub. Etomica has
defined a molecular simulation API, enabling
simulations to be constructed from "generic" pieces,
however, the API contains many specifications that
are related to Java and interactive frontend
development, rather than generic simulation
elements.
In contrast to these existing efforts, our approach
has the goal to provide an extensible, fully
customizable, web-based environment where
simulator experts can build a library of simulation
components, define how these components are
mapped to (potentially multiple) simulation
platforms, create full simulation templates that can
be customized and run by domain experts without
the need to write computer programs. There are a
number of reports on systems with similar objectives
in the literature outside the MD simulation domain --
e.g. the SAFE framework for automating network
simulations (Perrone et al., 2012), or WorMS
(Rybacki et al., 2011), a workflow framework for
modelling and simulation in general -- the most
important distinguishing characteristic of our
approach is that it does not define a language in
which simulations are defined. Instead, it provides a
means for the domain expert to create such
languages. These languages will then be available
for the end users for building MD simulations in a
simplified manner.
3 METAPROGRAMMING
APPROACH
Typically, simulations consist of the same
elementary building blocks regardless of the MD
simulator used. These building blocks represent
Basic Operations, such as reading or writing a data
file, resizing the box, setting up integrators or
evolving the system for a number of time steps.
Their syntax is tool-specific, but semantically they
are equivalent.
An important design approach of our
metaprogrammable tool is that basic operations are
Web-basedMetaprogrammableFrontendforMolecularDynamicsSimulations
173