<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Online Input Data Reduction in Scientific Workflows</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Renan Souza</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vítor Silva</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alvaro L G A Coutinho</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Patrick Valduriez</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marta Mattoso</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>CCS Concepts</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>COPPE/Federal University of Rio de Janeiro</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Inria and LIRMM</institution>
          ,
          <addr-line>Montpellier</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>44</fpage>
      <lpage>53</lpage>
      <abstract>
        <p>Many scientific workflows are data-intensive and need be iteratively executed for large input sets of data elements. Reducing input data is a powerful way to reduce overall execution time in such workflows. When this is accomplished online (i.e., without requiring users to stop execution to reduce the data and resume execution), it can save much time and user interactions can integrate within workflow execution. Then, a major problem is to determine which subset of the input data should be removed. Other related problems include guaranteeing that the workflow system will maintain execution and data consistent after reduction, and keeping track of how users interacted with execution. In this paper, we adopt the approach “human-in-theloop” for scientific workflows by enabling users to steer the workflow execution and reduce input elements from datasets at runtime. We propose an adaptive monitoring approach that combines workflow provenance monitoring and computational steering to support users in analyzing the evolution of key parameters and determining which subset of the data should be removed. We also extend a provenance data model to keep track of user interactions when users reduce data at runtime. In our experimental validation, we develop a test case from the oil and gas industry, using a 936-cores cluster. The results on our parameter sweep test case show that the user interactions for online data reduction yield a 37% reduction of execution time. • Massively parallel and high-performance simulations.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Scientific Workflows</kwd>
        <kwd>Human in the Loop</kwd>
        <kwd>Online Data Reduction</kwd>
        <kwd>Provenance Data</kwd>
        <kwd>Dynamic Workflows</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Scientific Workflow Management Systems (SWMS) with parallel
capabilities have been designed for executing data-intensive
scientific workflows, scientific workflows for short hereafter, in
High Performance Computing (HPC) environments. A typical
execution may involve thousands of parallel tasks with large input
datasets. When the workflow is iterative, it is repeatedly executed
for each element of an input dataset. The more the data to be
processed, the longer the workflow may take, which may be days
depending on the problem and HPC environment [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Configuring
a scientific workflow with parameters and data to be processed is
hard. Typically, the user needs to try several input data or
parameter combinations in different workflow executions. These
trials make the scientific experiment take even longer. It is well
known that optimizing performance of the parallel system is a
way to improve overall workflow execution time, but reducing the
input data that was initially planned to be processed is another
effective approach to reduce workflow execution time [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
In scientific workflows, the total amount of data is very large, but
not necessarily the entire input dataset has relevant data for
achieving the goal of the workflow execution. This is particularly
the case when a large parameter space needs to be processed in
parameter sweep workflows. There may be slices of the parameter
Copyright held by the authors
space that will not influence relevant results and thus, as with a
“branch and bound” optimization strategy, can be bounded. A
similar scenario occurs when the workflow involves a large input
dataset. When domain-specialist users can actively participate in
the computational process, practice frequently referred to as
“human-in-the-loop”, they may analyze partial result data and tell
which part of the data is relevant or not for the final result [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
Then, based on their domain knowledge, users can identify which
subset of the data is not interesting and thus should be removed
from the execution by the SWMS, thereby reducing execution
time.
      </p>
      <p>
        Data reduction can be accomplished in at least three different
forms. First, users can do it before the execution starts. However,
in most complex scenarios, the high number of possibilities makes
it impossible to know beforehand the uninteresting subsets,
without any prior execution. Furthermore, not only the initial
dataset can be reduced, but also the data generated by the
workflow, since the activities composing scientific workflows
continuously produce significant amounts of partial data that are
consumed by other activities. A second form of data reduction is
to do it online. When the SWMS allows for partial result data
analysis, the user may interact with the generated partial data, find
which slice of the dataset is not interesting, and reduce the dataset
online. We use the term online for the interactions where users are
able to inspect workflow execution, analyze partial and
performance data, and dynamically adapt (i.e., steer) workflow
settings while the workflow is running (i.e., at runtime). The third
form of data reduction is by stopping execution, reducing the data
offline, and then resuming execution with the reduced dataset.
Because of the difficulty in defining the exploratory input dataset
and the long execution time of such iterative workflows, users
frequently adopt the third form. However, in the offline form, the
SWMS is not aware of the changes, and the results with one
workflow configuration are not related to the others. Therefore,
this is generally more time-consuming, there is no control or
registration of user interactions, and the execution may become
inconsistent [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        Online data reduction has obvious advantages but introduces
several problems related to computational steering in HPC
environments [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. First, because of the complexity of their
scientific question to address and the huge amounts of data, users
do not exactly know beforehand which subset of dataset should be
kept or removed. Also, if users cannot actively follow the result
data evolution online, in particular domain data associated to
execution and provenance data (history of data derivation), they
can be driven to misleading conclusions when trying to identify
the uninteresting subset of the data. Indeed, this is the main
related challenge. Second, if they can find which subset to remove
and actually try to remove, the SWMS must guarantee that the
operation will be done consistently. Otherwise, it can introduce
anomalous data, yielding to no control of data elimination, data
redundancy, or even execution crash. Third, in a long run, there
may be more than one user interaction, each removing more
subsets, at different times. If the SWMS does not keep track of
user actions, it may negatively impact the results’ reproducibility
and reliability. Although data reduction is not new in SWMS [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
to the best of our knowledge, these problems related to online
user-steered data reduction while maintaining data provenance
have not been addressed by related works.
      </p>
      <p>
        Our approach is to represent workflow input datasets as database
relations. Each input element from the scientific domain dataset is
represented as a tuple of the input relations. When the elements of
the input dataset are files, we insert paths to these files. The
approach is implemented in Chiron, a parallel SWMS that adopts
a tuple-oriented algebraic approach [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Chiron has been used to
manage workflow applications with user steering in domains,
such as bioinformatics [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], computational fluid dynamics [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],
astronomy [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], etc. Chiron continuously populates a relational
database at runtime to store domain-specific data, workflow
execution data, and, more importantly, provenance data, all
integrated in the same database available for online queries. In
this paper, we use the term workflow Database (wf-Database) to
refer to this database. In addition to the traditional advantages of
managing provenance data in scientific workflows (i.e.,
reproducibility, reliability, and quality of result data) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], online
provenance data management eases interactive domain data
analysis [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ][
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Such interactive flexible data analysis through
provenance helps finding which subset of a dataset to be removed.
Moreover, execution monitoring is another very desirable feature
in any data-intensive system, including SWMS, and can also be
used to assist users in addressing the subset to be removed.
However, Chiron does not control changes in input datasets,
including removing a subset. In this work, we extend Chiron's
wfDatabase to maintain the provenance of the subsets of the dataset
that are removed. Furthermore, we take advantage of a distributed
in-memory database system coupled to Chiron, in a version called
d-Chiron that is significantly more scalable [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], to address
consistency issues with respect to data reduction. We make the
following contributions:
• A mechanism coupled to d-Chiron for online input data
reduction, which allows users to remove subsets of the dataset
to be processed at runtime. It guarantees that both execution
and data remain consistent after reduction.
• An extension to a provenance data model (which is W3C
PROV compliant) to maintain the history of user interactions
when users decide to reduce a dataset during workflow
execution.
• An adaptive monitoring approach that combines monitoring
and computational steering. It helps users to follow the
evolution of interesting parameters and result data to find
which subsets of the dataset can be removed during execution.
Also, since what users find interesting may change over time,
this approach allows the user to steer the monitoring
definitions, such as which data should be monitored and how.
Although existing solutions enable workflow execution
monitoring [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ][
        <xref ref-type="bibr" rid="ref16">16</xref>
        ][
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], there is no approach to enable users
to run monitoring queries that integrate execution, provenance,
and domain data, and dynamically adapt these queries online,
to the best of our knowledge.
      </p>
      <p>Paper organization: Section 2 gives a motivating example. Section
3 gives the background for this work. We present our online data
reduction approach in Section 4 and our adaptive monitoring
approach in in Section 5. Section 6 gives the experimental
validation. Section 7 discusses related work. Section 8 concludes.</p>
    </sec>
    <sec id="sec-2">
      <title>2. MOTIVATING EXAMPLE IN OIL AND</title>
    </sec>
    <sec id="sec-3">
      <title>GAS INDUSTRY</title>
      <p>
        In ultra-deep water oil production systems, a major application is
to perform risers’ analyses. Risers are fluid conduits between
subsea equipment and the offshore oil floating production unit.
They are susceptible to a wide variation of environmental
conditions (e.g., sea currents, wind speed, ocean waves,
temperature), which may damage their structure. The fatigue
analysis workflow adopts a cumulative damage approach as part
of the riser's risk assessment procedure considering a wide
combination of possible conditions. The result is the estimate of
riser’s fatigue life, which is the length of time that it will safely
operate. The Design Fatigue Factor (DFF) may range from 3 to
10, meaning that the riser’s fatigue life must be at least DFF times
higher than the service life [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        Sensors located at the offshore platform collect external
conditions and floating unit data, which are stored in multiple raw
files. Offshore engineers use specialized programs (mostly
complex simulation solvers) to consume the files, evaluate the
impact on the risers in the near future (e.g., risk of a fracture
occurrence), and estimate the risers’ fatigue life. Figure 1 presents
a scientific workflow composed of seven piped specialized
programs (represented by workflow activities) with a dataflow in
between.
Critical Case Selection (Activity 4) and Curvature
Critical Case Selection (Activity 5) calculate the fatigue
life of the riser based on the stresses and curvature, respectively.
These two activities filter out results corresponding to risers that
certainly in a good state (no critical stress or curvature values
were identified), which are of no interest to the analysis.
Calculate Fatigue Life (Activity 6) uses previously
calculated values to execute a standard methodology [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and
calculate the final fatigue life value of a riser. Compress
Results (Activity 7) compresses output files by riser.
Most of these activities generate result data (both raw data files
and some other domain-specific data values), which are consumed
by the subsequent activities. These intermediary data need to be
analyzed during workflow execution. More importantly,
depending on a specific range of data values for an output result
data (e.g., fatigue life value), there may be a specific combination
of input data (e.g., environmental conditions) that are more or less
important during an interval of time within the workflow
execution. The specific range is frequently hard to determine and
requires a domain expert to analyze partial data during execution.
For example, an input data element for Activity 2 is a file that
contains a large matrix of data values, composed of thousands of
rows and dozens of columns. Each column contains data for an
environmental condition and each row has data collected for a
given instant in time. Each row can be processed in parallel and
the domain application needs to consume and produce other data
files (on average, about 14 MB consumed and 6 MB produced per
processed input data element). After many analyses online, the
user finds that, for waves &gt; 38m with frequency &gt; 1Hz, a riser
fatigue will never happen. Thus, within the entire matrix, any
input data element that contains this specific uninteresting range
does not need to be processed. Therefore, by reducing the input
dataset, the overall data processed and generated are reduced and,
more importantly, the overall execution time is reduced. In this
paper, we use this workflow in our examples.
      </p>
    </sec>
    <sec id="sec-4">
      <title>3. USER-STEERED WORKFLOWS</title>
      <p>
        Mattoso et al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] analyze six aspects of computational steering
in scientific workflows: interactive analysis, monitoring, human
adaptation, notification, interface for interaction, and computing
model. Despite their importance, the first three are essential and
we mostly focus on those in this work. In fact, human adaptation
is definitely the core of computational steering. However, users
will only know how to fine-tune parameters or which subset needs
further focus if they can explore partial result data during a
longterm execution. For this, interactive analysis and monitoring play
an important role to put the human in the loop.
      </p>
      <p>Online provenance data management in SWMS is an essential
asset to support all six aspects of computational steering in
scientific workflows. In this section, we explain the three
computational steering aspects explored in this paper.</p>
    </sec>
    <sec id="sec-5">
      <title>3.1 Interactive analysis</title>
      <p>
        We address two aspects of workflow data that should be
interactively analyzed: (A) domain dataflow and (B) workflow
execution information [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        A. Domain dataflow. Workflows are composed of activities
(scientific programs, scripts, or services) linked as a dataflow.
Each activity invocation, or task, may consume input datasets and
input raw data files and produce output datasets and files. These
flows form the domain dataflow. To support domain dataflow
interactive analysis, Chiron stores dataflow provenance data in the
wf-Database during execution and makes them available for
online user queries. Users can then query the wf-Database using a
query interface or SQL following PROV-Wf [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], a W3C
PROVcompliant data model [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] that specializes PROV entities into
domain-data entities to allow for domain dataflow analysis at a
finer grain than PROV.
      </p>
      <p>
        Chiron’s tuple-oriented engine first stores input dataset as tuples
in the wf-Database. In parameter sweep, tuples are data values
from the Cartesian product of input parameters. Then, each task
consumes input tuples retrieved from this database, executes
them, and then stores the generated output tuples in the
wfDatabase immediately after task execution, adequately
maintaining the data relationships to the input tuples. The
workflow activities that generated the tuples are also stored in the
wf-Database and linked accordingly. Large raw data files
consumed or produced by each task are not stored in the
wfDatabase, but are rather linked to them, for file flow management.
Thus, Chiron enables online fine-grained domain dataflow
analysis [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] as well as the analysis of related domain raw data files
through file flow relationships [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Table 1 shows some useful
queries for the riser fatigue analysis workflow involving domain
data and provenance dataflow analysis. The corresponding
generated SQL, as well as the relational schema, are in
http://github.com/hpcdb/d-chiron. These queries reflect typical
user interactions. When these workflows are executed as scripts,
without Chiron's support, users look for files in their directories,
open files, and try to do this analysis in an ad-hoc way, frequently
writing programs to "query" these result files. Often they interrupt
the execution to fine tune input data and save execution time.
For Queries 1-4, the SWMS needs to store the history of the
tuples generated in Activities 4 and 5 since the beginning of the
flow, adequately linking each tuple flow in between. For example,
environmental conditions (1) and hull conditions (2) are
obtained in Activity 1, and stress- and curvature-related values are
obtained in Activities 4 and 5, respectively. To correlate output
tuples from Activity 4 or 5 to tuples from Activity 1, provenance
data relationships are required.
      </p>
      <p>
        B. Workflow execution information. Lower level execution engine
information, such as physical location (i.e., virtual machine or
cluster node) where a task is being executed, can highly benefit
data analysis and debugging in HPC execution. Users may want to
interactively investigate how many parallel tasks each node is
running. Moreover, tasks can run domain applications that result
in errors. If there were thousands of tasks in a large execution,
how to determine which tasks resulted in domain application
errors and what the errors were? This also eases debugging, an
important feature to be provided in large parallel executions.
Furthermore, performance data analysis is very useful. Users are
frequently interested in knowing how long tasks are taking. All
this workflow execution information is important to be analyzed
and can deliver much more interesting insights when linked to
domain dataflow data. When execution data is stored separately
from domain and provenance data, these steering queries are not
possible or demand combining different tools and writing specific
analysis programs [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>To support all this, Chiron’s wf-Database registers parallel
workflow execution data. This means that all necessary execution
information for the parallel engine to work are linked to domain
dataflow data and managed in the same database. Table 2 shows
some provenance queries for the Risers Analysis workflow that
link workflow execution data to domain dataflow.</p>
    </sec>
    <sec id="sec-6">
      <title>3.2 Monitoring</title>
      <p>
        Another important form to help gaining insights from the data is
by monitoring in a passive way. It means that users can set up
some monitoring analyses and wait for the monitoring results to
be generated. Results might be delivered to end-users as graphical
dashboards or three-dimensional in-situ scientific data
visualizations. As users gain insights from monitoring results, if
the SWMS has dynamic analytical support, they can adapt
previously set up monitoring configurations or add new
monitoring analysis [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Also, from these new insights, new data
exploration through interactive analysis can be done.
      </p>
      <p>If the SWMS allows for provenance data analysis during
workflow execution, monitoring becomes more effective, since
the SWMS can exploit the continuously populated wf-Database.
By doing this, all the aforementioned data provenance analysis
and queries executed by users may be used by a monitoring
engine.</p>
    </sec>
    <sec id="sec-7">
      <title>3.3 Human adaptation</title>
      <p>
        After users have analyzed partial data and gained insight from
them, they may decide to adapt the workflow execution.
Adaptation brings powerful abilities to end-users, putting the
human in full control of scientific workflow executions. Many
aspects can be adapted by humans, but very few systems support
human-in-the-loop actions [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. The human-adaptable aspects
range from computing resources involved in the execution (e.g.,
adding or removing nodes), to checking-point and rolling-back
(debugging), loop break conditions, reducing datasets,
modification of filter conditions, and very specific parameter
finetuning.
      </p>
      <p>
        Populating the wf-Database during workflow execution can help
all these aspects. In the Chiron SWMS, it has been shown that it
particularly facilitates steering. For example, in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], it was shown
that it is possible to change filter conditions during execution.
Also, in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], it is proposed an algebraic approach to enable
steering and dynamic changes of loop conditions during execution
of iterative workflows (e.g., modify number of iterations or loop
stop conditions), and such approach was evaluated in Chiron.
These works show that these adaptations can significantly reduce
overall execution time, since domain expert users are able to
identify a satisfactory result before the programmed number of
iterations. Prior to this work, although [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] has highlighted its
advantages, no work has been developed in Chiron to tackle
usersteered data reduction online.
      </p>
      <p>Since provenance data is so beneficial, we consider that when a
user interacts with the workflow execution, new data (user
interaction data) are generated, and thus their provenance must be
registered. In a long-running execution, many interactions can
occur and many adaptations may be made. If the SWMS does not
adequately register the provenance of interaction data, the users
can easily lose track of what they have changed in the past. This is
critical if the entire computational experiment takes days to finish
and many specific adaptations had to occur, since it may be
impossible for the users to remember in the last day of execution
what they have steered in the first days. Furthermore, adding
interaction data to the wf-Database enriches its content and
enables future user interaction analysis. One example of how such
data can be exploited is that the registered interaction data could
be used by artificial intelligence algorithms for understanding
interaction patterns and recommend future adaptations. For these
reasons, the SWMS that enables computational steering should
collect provenance of user interaction data. To the best of our
knowledge, this has not been done before.</p>
    </sec>
    <sec id="sec-8">
      <title>4. ONLINE DATA REDUCTION</title>
      <p>In this section, we show our main contribution. Suppose that after
analyzing the monitoring results, a user identifies, within the
entire dataset, the subset that contains those values can be
removed, hence reducing the dataset.</p>
      <p>
        However, reducing a dataset to be processed has specific
constraints that need to be addressed so the execution remains in a
consistent state, i.e., with valid data and with guarantee that the
execution will not crash. As previously described, Chiron
implements a relational data model in a tuple-oriented algebraic
approach for scientific workflows [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>
        We propose to represent the input dataset as a database relation,
which is a set of tuples. In the tuple-oriented approach [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], tuples
represent a domain-specific dataset to be consumed or produced
by a workflow activity. As examples, tuples may be composed of
parameter values of a computational model, file paths to a large
raw data file (e.g., genomic sequences, finite element meshes,
textual data, binary files), or calculated values. In the
tupleoriented approach, removing a subset of the entire dataset to be
processed means removing a set of tuples to be consumed by a
workflow activity. As a consequence of this removal, the tasks
that would process the tuples within the removed set of tuples will
not be executed, hence, reducing both workflow execution time
and data processing. Data processing reduction becomes more
evident if the removed tuples contain paths to large raw data files
that would be consumed by tasks if the tuples were not removed.
Not only this prevents execution of tasks that would consume
uninteresting data, but also the non-executed tasks will not
produce more data, reducing overall generated data amount in a
workflow execution. Furthermore, if a tuple of a given activity is
removed, the following tuples forming the tuple-flow of the next
linked activities will not be processed too, reducing data and,
more importantly, execution time in cascade.
      </p>
      <p>
        Addressing which specific subset will be removed is quite
important. So, we first formalize the subset to be removed
(Section 4.1). In Section 4.2, we describe how we implemented
this in d-Chiron, which is a modified version of Chiron that
manages the wf-Database in an in-memory distributed database
system and is significantly more scalable than the original Chiron
[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. We also highlight that even though we implemented our
solutions in d-Chiron, other SWMS could be used. The only
requirement is that the SWMS engine needs to manage workflow
data as datasets in a tuple-oriented approach and manage domain,
provenance, and workflow execution data online in the same
database.
      </p>
    </sec>
    <sec id="sec-9">
      <title>4.1 Removing slices of input datasets</title>
      <p>In the tuple-oriented approach, to address a subset of the dataset to
be removed, we first define a slice, which is a subset of tuples to
be removed according to a criteria defined by the user. Let  with
data schema ₰ = {} be the relation that represents a workflow
activity input dataset to be reduced. {}  is the set of attributes !,
1   ≤     ≤ |  |,   from   and each ! assumes a data type
(integer, string, boolean, etc). Moreover, we split  into two
subsets  and , where  is the subset of  containing tuples that
have already been processed and  is the subset of  containing
tuples that will be processed. Thus,  ←  ∪   |   ∩  =  ∅. 
and  have the same schema ₰.</p>
      <p>
        Then, we define a slice § as a subset of , which is represented as
a primary horizontal fragment of , defined by the selection
relational algebraic operation  [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Thus, § ←   !  , where 
is the selection formula to obtain the primary horizontal fragment.
The formula  may either be a simple predicate (e.g., !"   =
′′) or a minterm predicate (e.g., ! &gt; 38   ∧ ! &gt; 0.1
∧ ! &lt; 1.0) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Figure 2 shows a workflow example on the left:
Act. 1 consumes input relation  and produces an output relation
that also works as an input relation to be consumed by Act. 2,
which produces the final output relation. Although in this
illustration we show a data reduction in the first activity, we
highlight that input data of any workflow activity can be reduced,
including intermediary ones, as shown in Section 6, where input
data from the second activity is reduced. The input relation  is
magnified on the right of Figure 2, where we show the subsets 
and , and the slice § defined by the formula .
      </p>
      <p>Once the user has selected the slice to be removed (based on
userdefined criteria), the slice can be cut off. For this, we define the
operation  using the difference relational algebraic operator, so
that  , § ←  − §.</p>
      <p>By doing so, we ensure that only tuples from  will be removed,
since § only contains tuples from . This is necessary because
only tuples that have not been processed yet (i.e., they are “ready”
to be processed) can be removed. Otherwise, either the data or the
workflow execution may become inconsistent. We note that our
solution is applicable to reduce input data of any workflow
activity that needs to process a dataset, as long as the SWMS is
aware of the data elements composing the dataset.</p>
    </sec>
    <sec id="sec-10">
      <title>4.2 Implementation</title>
      <p>
        In this section, we describe how we implement slice removal and
cut in d-Chiron. In the SWMS that implements the tuple-oriented
approach and manages execution data in the wf-Database, each
input tuple (or set of tuples, depending on the dataflow operator)
to be consumed is related to a task. For this reason, removing
tuples means removing the tasks that would consume the
referenced tuples. In the PROV-Wf data model [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], which
dChiron supports, tasks’ data and input tuples are stored in
different relations, with a relationship in between. Thus, to
implement the set , as defined previously, we need to semi-join
[
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] input tuples from the input relation  with tasks in READY
state in order to only select the tuples that will be processed. Then,
to get the identifiers of the ready tasks !"#$%  to be removed, we
project over the task identifiers. Using relational algebra:
!"#$% ←   Π!"#$_!" !  ⋉ !"#"$!!"#$%  ,
where the formula  is analogous to that in Section 4.1, which is
the criteria to select the slice § to be removed. We emphasize that
such verifications are necessary to guarantee consistency and are
the SWMS’s responsibility only, not the users’. The users would
only need to specify the formula  to select the slice.
      </p>
      <p>
        To ease slice removal in d-Chiron, we developed a Steer
module. With the Steer module, users can issue command lines
to inform the name of the input relation  and the formula  to
select the slice to be removed. Then, the module is responsible for
retrieving the identifiers !"#$% of the ready tasks to be removed
(analogous to the set  needed for the slice definition). Instead of
physically removing the tasks from the wf-Database, we choose to
mark them with the state REMOVED_BY_USER. By doing so, we
enable these tasks to be later analyzed with provenance queries
and to be consistently related within the table Modified_Task.
To guarantee consistency, we take advantage of d-Chiron’s
database system [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. d-Chiron uses a transaction-optimized
inmemory distributed database system that provides atomicity,
consistency, isolation, and durability (ACID). In a data reduction,
both d-Chiron's engine and the Steer module need to
concurrently update a shared resource, the Task table in the
wfDatabase. While d-Chiron's engine updates the Task table to get
tasks for execution and to mark them later as executed, the Steer
      </p>
      <p>
        The wf-Database tables are distributed, thus making concurrency
control of the Task table partitions even more complex. In
dChiron, distributed concurrency control in the Task table is
outsourced to the distributed database system that guarantees the
ACID properties [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Thus, concurrency caused by the
aforementioned updates is controlled by the database system,
guarantying that both execution and data remain consistent.
To store provenance of removed tuples, we extend the
wfDatabase schema with the table User_Query to store the queries
that select the slice of the dataset to be removed. The description
for each User_Query column is described in Table 3. We also
keep track of the removed tasks in table Modified_Task, which
is a table that represents a many-to-many relationship between
User_Query and Task tables. In Section 5.2, we will give the
necessary extensions to the PROV-Wf data model implemented in
d-Chiron to accommodate User_Query and modified tasks.
slice_query
tasks_query
issued_time
      </p>
    </sec>
    <sec id="sec-11">
      <title>5. ADAPTIVE MONITORING</title>
      <p>In this section, we combine monitoring and computational
steering into an adaptive monitoring approach. Our workflow
monitoring approach relies on online queries to the continuously
populated wf-Database. Users can set up monitoring queries (as in
Table 1 and Table 2) and analyze monitoring results.</p>
      <p>In Section 5.1, we present a formal description and describe the
implementation in Section 5.2 with the extensions to PROV-Wf to
accommodate adaptive monitoring and online data reduction.</p>
    </sec>
    <sec id="sec-12">
      <title>5.1 Formal description of adaptive monitoring</title>
      <p>Monitoring works as follows. There is a set {}  composed of
monitoring queries !, 0   ≤     ≤ |  |, each one to be executed
at each ! &gt; 0. Users do not need to specify queries at the
beginning of execution, since they do not know everything they
want to monitor. This is why {} starts empty. After users gain
insights from the data, after some interactive provenance data
analyses, they can add monitoring queries to {}  in an ad-hoc
manner. Each ! can be adapted by users, meaning that users have
control of the time frame of each !  during execution.
Each ! execution generates a monitoring query result set
!",    = !|     ∈ ℕ!! , at each time interval !. We
constrain that each !"  must deliver one column only. If users
want more columns, they can write different monitoring queries
for each new column. However, the number of rows in the result
set is not limited. This means that each monitoring result set
!"  should be either a scalar value or an array.</p>
      <p>To improve human-in-the-loop, the end-users have the flexibility
to adapt monitoring during workflow execution. To do so, at each
instant  after each monitoring query result !"  has been
generated, the values for ! and !  are reloaded from the
wfDatabase. If any change has happened, it will be considered in the
next iteration    +   !. Moreover, at each certain amount of time
during execution (also configured by the user), the system checks
if the user has added new monitoring queries in {}. Our adaptive
monitoring approach takes full advantage of the data stored online
in the wf-Database. More importantly, it enables users to
dynamically steer monitoring settings (including which data will
be monitored and how), highly benefiting them in finding
uninteresting subsets to be removed.</p>
    </sec>
    <sec id="sec-13">
      <title>5.2 Implementation</title>
      <p>To implement our approach, we first need to extend the
wfDatabase schema. To store {}, we add the table
Monitoring_Query, shown in Table 4.</p>
      <p>Similar to what we did for the Steer module, we also developed
the module Monitor to facilitate utilization. The Monitor should
start at any cluster node that is able to access the distributed
database system and should start after the workflow execution has
begun, whenever users want to monitor the workflow execution.
Similar to what we did for the Steer module, we also developed
the module Monitor to facilitate utilization. The Monitor should
start at any cluster node that is able to access the distributed
database system and should start after the workflow execution has
begun, whenever users want to monitor the workflow execution.
A command line starts the Monitor module that runs in
background. It establishes a connection with the distributed
database system (connection settings are provided in the XML
configuration file). Chiron (and d-Chiron) makes use of this XML
file to define the workflow design, workflow general settings, and
other user-defined variables. Then, the Monitor program keeps
querying the Monitoring_Query table at each  to check if a
new monitoring query was added. The default value for  is 30s,
as the time interval to check if monitoring queries were added or
removed. However, users can customize this. After the Monitor
has started, users can add (or remove) monitoring queries to (or
from) the Monitoring_Query table. Currently, users can add
monitoring queries using a command line to inform the SQL
query to be executed at each time interval and the time interval.
Whenever the Monitor module identifies that the user added a
new monitoring query, it launches a new thread. Each thread is
responsible for executing each monitoring query in
Monitoring_Query at each defined time interval. A thread is
finished when a monitoring query is removed or when the
workflow stops executing (in that case, all threads are finished).
Figure 3 shows the steps executed at each time interval.</p>
      <sec id="sec-13-1">
        <title>1. Execute the monitoring query !</title>
        <p>2. Store query results in the wf-Database
3. Reload all information for !   from the wf-Database for the next
time iteration. The user could have adapted any of this information.</p>
      </sec>
      <sec id="sec-13-2">
        <title>4. Wait for ! seconds</title>
        <p>To enable all these monitoring capabilities and human-adaptation,
three of these steps represent queries to the wf-Database,
including reads and writes. The stored results can be further
analyzed a posteriori or, more interestingly, used as input for
runtime data visualization tools, since results are immediately
made available after they are generated.</p>
        <p>
          Another contribution of this paper is that we add three concepts to
PROV-Wf [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], which is W3C PROV-compliant [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Our main
motivations to adhere to the W3C PROV recommendations are to
help on query specification, to maintain compatibility between
different SWMS and facilitate interoperability between different
databases.
        </p>
        <p>These concepts are: UserQuery, MonitoringQuery, and
MonitoringResult, as in Figure 4. Using PROV nomenclature,
UserQuery is a PROV Activity that stores the user queries that
remove sets of tuples and thus influence the state of the associated
tasks (i.e., remove them). MonitoringQuery is a PROV Activity
that contains the monitoring queries submitted by the user in
specific time intervals. The monitoring queries generate PROV
Entity MonitoringResult that stores the query results.</p>
      </sec>
    </sec>
    <sec id="sec-14">
      <title>6. EXPERIMENTAL VALIDATION</title>
      <p>In this section, we validate our solution (for online data reduction
and adaptive monitoring) based on a real data. In Section 6.1, we
show the experimental setup, Section 6.2 shows a test case where
an expert monitors the execution and removes slices of the
dataset. In Section 6.3, we analyze the added overhead.</p>
    </sec>
    <sec id="sec-15">
      <title>6.1 Experimental setup</title>
      <p>
        Scientific workflow. As a proof of concept for this work, we use
a synthetic parameter sweep workflow of the Riser Fatigue
Analysis example (see Figure 1), which is based on a real case
study. The workflow manipulates approximately 300 GB of raw
data. In all executions, we use the same dataset, which spans over
approximately 12,000 data elements to be processed in parallel.
Depending on the workflow activity, tasks may take few seconds
(e.g., Activity 7) or up to one minute on average (e.g., Activity 3).
Software. In all executions, we use d-Chiron [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], which uses
MySQL Cluster 7.4.9 as its in-memory distributed database
system to manage the wf-Database. The code to run d-Chiron and
setup files are in github.com/hpcdb/d-chiron.
      </p>
      <p>Hardware. The experiments were conducted in Grid5000 using a
cluster with 39 nodes, containing 24 cores each (936 cores). Every
node has two AMD Opteron 1.7 GHz 12-core processors, 48GB
RAM, and 250GB of local disk. All nodes are connected via
Gigabit Ethernet and access a shared storage of 10TB.</p>
    </sec>
    <sec id="sec-16">
      <title>6.2 Test case</title>
      <p>Let us consider the following scenario. Peter is an offshore
engineer, expert in riser analysis and learned how to set up
monitoring, analyze d-Chiron’s wf-Database, and use the Steer
module developed in this work. In Peter’s project, the Design
Fatigue Factor is set to 3 and service life is set to 20 years,
meaning that fatigue life must be at least 60 years (see from
Section 2). Peter is only interested in analyzing risers with low
fatigue life values, because they are critical and might need repair
or replacement. During workflow execution, it would be
interesting if Peter could inform the SWMS, which input values
would lead to low risk of fatigue, so they could be removed.
However, this is not simple because it is hard to determine the
specific range of values (i.e., the slice to be removed). For this,
Peter first needs to understand the pattern of input values
associated to low risk of fatigue life values. In the workflow
(Figure 1), the final value of fatigue life is calculated in Activity
6, but input values are obtained as output of Activity 1, gathered
from raw input files. Keeping provenance is essential to associate
data from Activity 1 with data from Activity 6.</p>
      <p>To understand which input values are leading to high fatigue life
values, Peter monitors the generated data online. For simplicity,
we consider wind speed, which is only one out of the many
environmental condition parameter values captured by Activity 1
to serve as input for Activity 2. Peter knows that wind speed has a
strong correlation with fatigue life in risers. He expects that with
low speed winds, there is a lower risk of accident.</p>
      <p>When workflow execution starts, the Monitor module is
initialized. Then, Peter adds two monitoring queries: !  shows
the average of the 10 greatest values of fatigue life calculated in
the last 30s of workflow execution, setting !   =  30s; and !
shows the average wind speed associated to the 10 greatest values
of fatigue life calculated in the last 30s, also setting the query
interval !   =  30s. We recall from Table 1 that ! is similar to
1, but only considering data processed in the last 30s. ! and
!  queries are added to the Monitoring_Query table.
Peter monitors the results using the Monitoring_Result table.
These results can be a data source for a visualization that plots
dashboards dynamically, refreshed according to the query
intervals. After gaining insights from the results and
understanding patterns, he can start removing the undesired values
for wind speed. The monitoring query results !! and
!!  for the two previously listed queries, as well as when the
user reduced the data, are plotted along the workflow elapsed
time, as shown in Figure 5. It presents !!  in full black line
with square markers and !! in full gray line with triangle
markers. These markers determine when the monitoring occurred.
The workflow execution starts at    =  0, but only after
approximately 150s, the first output results from Activity 6 starts
to be generated. From the first results, at    =  150    and  = 180,
Peter checks that when wind speed is less than 16 Km/h (see
horizontal dashed line in      =  16 in Figure 5), the
results lead to the largest fatigue life values. Since risers with
large fatigue life values are not interesting in this analysis, he
decides, at    =  190, to remove all input data elements that
contain wind speed less than 16 Km/h. For this, the first user
query ! is issued with a command line to the Steer module.
User queries are represented with circles in the horizontal axis
(Elapsed time) in Figure 5. The exact time a user issued an
interaction query is stored in User_Query table.</p>
      <p>The next markers after ! happens at    =  210. Comparing with
the previous monitoring mark, at    =  180, we can observe that
this Peter’s steering (!) increases the minimum wind speed
values to be considered from 14.2 Km/h to 24.1 Km/h. Also, we
observe a significant decrease in the slope of the largest values for
fatigue life (10.6% lower). This means that the removal of these
input data containing wind speed less than 16 Km/h made the
SWMS not process data containing low wind speed values, which
would lead to larger fatigue life results.</p>
      <p>Then, monitoring continues, but that slope decrease calls Peter’s
attention. To obtain a finer detail of what is happening, he decides
to adjust the monitoring interval time (!  and !) at runtime, by
reducing to 10s to get monitoring feedbacks more frequently. We
can observe that for both lines !!  and !!, the markers
become more frequent during    =   [220, 270]. This is because a
monitoring is registered at every 10s. We highlight that, although
in test use case we are only showing monitoring correlating wind
speed and fatigue life, other monitoring correlations could also be
analyzed and users can add, remove or adjust monitoring queries
at any time during execution.</p>
      <p>After verifying that the results are reasonable, Peter decides to
increase back the monitoring query intervals for both queries to
30s after    =  270. He then observes that since !, wind speed
less than 25 Km/h are leading to large fatigue life values.
Then, at    =  310, he calls Steer again to issue ! that removes
input data for wind speed &lt; 25 Km/h. The next markers after
!  shows that this steering made the wind speed value associated
to large fatigue life be at least 30.5 Km/h and a decrease of 6.5%
in large fatigue life values between    =  300       =  330.
Similarly, Peter continues to monitor and steer the execution. He
issues !  at    =  370 to remove input data with wind speed &lt;
30.5 Km/h, making a decrease of 4.9% in large fatigue life
(comparing fatigue life in    =  360 and    =  390). Then, he
issues !  at    =  430 to remove input data with wind speed &lt;
34.5, attaining a decrease of 1.7% in large fatigue life (comparing
fatigue life in    =  420 and    =  450). Despite this small
decrease, he decides at t = 520 to further remove data, but with
wind speed &lt; 35.5 Km/h. However, no decrease greater than 1%
35.0
33.0
)31.0
h
/m29.0
(K27.0
ed25.0
ep23.0
s
d21.0
n
i 19.0
W
17.0
15.0
13.0
623
373
355
115
3
We store each interaction in the User_Query table and map (in
table Modified_Task) its rows with rows in the Task table, to
consistently keep provenance of which tasks were modified (in
this case, removed) by each specific user steering. Thus, keeping
provenance of user steering helps analyzing how specific
interactions impacted the results. Figure 5 shows that some
specific interactions imply significant changes in lines’ slopes.
Queries on the wf-Database can show finer details about how
many tuples each user interaction made the SWMS not process, as
shown in Table 6. Each issued time follows Figure 5 and is
registered with the timestamp of when the first activity started.</p>
      <p>Inter
act.
Finally, we run the exact same workflow and input datasets, but
with no monitoring or interactions to compare how such slice
removals help decrease overall execution time. The workflow
with no interaction processes all input data, including those
containing wind speed values that lead to risers with low risk of
fatigue, which are not considered in Peter’s analyses. In total,
Peter’s steering yields the removal of 1469 input data elements
(out of approximately 12,000). This reduces the execution time
for this test case by 37% compared with no steering. Furthermore,
these removed input data would make the workflow process and
generate more raw data files if the input data elements were not
removed. By querying the wf-Database in the end of execution,
we found that the execution with no user steering processed
approximately 300GB of raw data files, whereas with steering the
total was 258GB, representing 14% of data reduction.</p>
    </sec>
    <sec id="sec-17">
      <title>6.3 Analyzing monitoring overhead</title>
      <p>A monitoring query ! in {} is run by a thread at each !
seconds. Depending on the number of threads (|{}|) and on the
interval ! there may be too many concurrent accesses to the
wfq1
q2
q3
q4</p>
      <sec id="sec-17-1">
        <title>Wind speed</title>
        <p>Elapsed time (seconds)</p>
      </sec>
      <sec id="sec-17-2">
        <title>Fatigue life</title>
        <p>q5
Steering
150
180
Database, which may add overhead. The goal of this experiment is
to analyze such overhead.</p>
        <p>We set up the Monitor module to run queries, which are
variations of the queries 1-7 presented in Table 1 and Table 2.
For example, in 2, we vary the curvature value. We also modify
them to calculate only the results over the last  seconds, at each
 seconds. To evaluate the overheads, we measure execution time
without monitoring and then with monitoring, but varying the
number of queries |{}| and the interval , which is considered
the same for all queries in {} in this experiment. The
experiments were repeated until the standard deviation of
workflow elapsed times was less than 1%. The results are the
average of these times within the 1% margin. Figure 6 shows the
results, where the gray portion represents the workflow execution
time when no monitoring is used; and the black portion represents
the difference between the workflow execution time with and
without monitoring (i.e., the monitoring overhead).</p>
        <p>From these results, we observe that when the interval  is equal to
30s, the overhead is negligible. When the interval is 1s, the
overhead is higher when the number of monitoring threads is
greater. This happens because three queries are executed in each
time interval (see Figure 3), for each thread. In the scenarios with
30 threads, there will be 120 queries in a single time interval . In
that case, if  is small (e.g.,  = 1), there are 120 queries being
executed per second, just for the monitoring. The database that is
queried by the monitors is also frequently queried by the SWMS
engine, thus adding higher overhead. However, even in this
specific scenario that shows higher overhead (|{}| = 30 and
 = 1), it is only 33s or 3.19% higher than when no monitoring is
used. Most of the real monitoring cases do not need such frequent
(every second) updates. If 30s is frequent enough for the user,
there might be no added overhead, like in this test case.
We also evaluated the same scenarios without storing monitoring
results in the wf-Database, but rather appending in CSV files,
which is simpler. The results are nearly the same as in Figure 6.
This suggests storing all monitoring results in the wf-Database at
runtime, which enables users to submit powerful queries as they
are generated, with all other provenance data. This would not be
possible with a solution that appends data to CSV.</p>
      </sec>
    </sec>
    <sec id="sec-18">
      <title>7. RELATED WORK</title>
      <p>Considering our contributions, we discuss the SWMS with
parallel capabilities with respect to human adaptation (especially
data reduction), online provenance support, and monitoring
features.</p>
      <p>
        Although online human adaptation is the core of computational
steering, there are few parallel SWMS [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ][
        <xref ref-type="bibr" rid="ref12">12</xref>
        ][
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] that support it.
These solutions have monitoring services and are highly scalable,
but do not allow for online data reduction as a means to reduce
overall execution time. WorkWays [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] is a powerful science
gateway that enables users to steer and dynamically reduce data
) 16.5
n
i
(m 16
e
im 15.5
t
.ec 15
x
E
being processed online by dimension reduction or by reducing the
range of some parameters, sharing similar motivations to our
work. It uses Nimrod/K as its underlying parallel workflow
engine, which is an extension of the Kepler workflow system [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
WorkWays presents several tools for user interaction in
human-inthe-loop workflows, such as graphic user interfaces, data
visualization, and interoperability among others. However,
WorkWays does not provide for provenance representation and
users do not have query access to simulation data, execution data,
metadata, and provenance, all related in a database, which limits
the power of online computational steering. For example, it
prevents ad-hoc data analysis using both domain and workflow
execution data, such as those presented in Table 1 and Table 2,
which support the user in defining which slice of the dataset
should be removed. In contrast, our work uses a robust in-memory
distributed database system to manage and relate analytical data
involved in the workflow execution. Moreover, the lack of
provenance data support in WorkWays, either online or
postmortem, does not support reproducibility and prevents from
registering user adaptations, missing opportunities to determine in
detail how specific user interactions influenced workflow results.
Another notable SWMS example is WINGS/Pegasus [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], which
especially focus on assisting users in automatic data discovery. It
helps generating and executing multiple combinations of
workflows based on user contraints, selecting appropriate input
data, and eliminating workflows that are not viable. However, it
differs from our solution in the sense that it tries to explore
multiple workflows until finding the most suitable one, whereas
we often model our experiments as one single scientific workflow
to be processed. Also, it does not aim at putting users in the loop
to actively eliminate subsets of an input dataset, especially based
on extensive ad-hoc intermediary data analysis online.
Additionally, as WorkWays, provenance data is not collected
online, nor is it integrated with domain-specific and execution
data for enhanced analysis.
      </p>
      <p>
        While human adaptation is less explored in parallel SWMS,
monitoring is widely supported in several existing SWMS
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ][
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. For example, Pegasus [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and Triana may be integrated
to analytical tools such as Stampede [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ][
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], which provides a
framework to monitor workflow executions and has rich
capabilities for online performance monitoring, troubleshooting,
and debugging. However, in these solutions, it is not possible to
monitor workflow execution data associating them to provenance
and domain data, as we do using queries to the wf-Database. To
the best of our knowledge, there is no related work that allows for
online data reduction based on a rich analytical support with
adaptive monitoring and provenance registration of human
adaptations in scientific workflows. These features allow for
performance improvements of scientific workflows, while
keeping data reduction consistency and provenance queries that
can show the history of human-in-the-loop actions and results.
      </p>
    </sec>
    <sec id="sec-19">
      <title>8. CONCLUSION</title>
      <p>This work contributes to putting the human in the loop of
scientific workflow systems, especially when users can actively
steer and reduce data online to improve performance. As a
solution to the input data reduction problem, we made use of a
tuple-oriented algebraic approach that organizes workflow data to
be processed as sets of tuples stored in a wf-Database, managed
by an in-memory distributed database system at runtime. We
developed a mechanism coupled to d-Chiron, a distributed version
of Chiron SWMS, which allows for reducing data, while
maintaining both data integrity and execution consistency. A
major challenge to the problem of data reduction is to address
which subset of the data should be removed. As a solution to this,
we proposed an adaptive monitoring approach that aids users in
analyzing partial result data at runtime. Based on the evaluation of
input data elements and its corresponding results, the user may
find which subset of the input data is not interesting for a
particular execution, hence can be removed. The adaptive
monitoring allows users not only to follow the evolution of the
workflow, but also to dynamically adjust monitoring aspects
during execution. We extended our previous workflow
provenance data model to be able to represent provenance of the
online data reduction actions by users and the monitoring results.
Although we implemented our solution in d-Chiron, other SWMS
could be used if provenance, execution, and domain dataflow data
are managed in a database at runtime.</p>
      <p>To validate our solution, we executed a data-intensive parameter
sweep workflow based on a real case study from the oil and gas
industry, running on a 936-cores cluster. A test case demonstrated
how the user can monitor the execution, dynamically adapt
monitoring settings, and especially remove uninteresting data to
be processed, all during execution. Results for this test case show
that the user interactions reduced the execution time by 37%
comparing with the execution that processed the whole dataset.
Although the test case was from the oil and gas domain, any other
workflow application could have been used, as long as a domain
expert can tell which slice is not interesting, removed with no
harm to the final results.</p>
      <p>To the best of our knowledge, this is the first work that explores
user-steered online data reduction in scientific workflows steered
by ad-hoc queries and adaptive monitoring, while maintaining
provenance of user interactions. The results motivate us to extend
our solution and explore different aspects that can be adapted by
humans based on sophisticated workflow data analysis support.
Our solution is currently dependent on the domain expert’s
knowledge to identify correlations between input and output data
to determine which subsets are uninteresting. We plan to address
in-situ data visualization based on the adaptive monitoring and
interactive queries results and develop recommendation models to
suggest correlations based on history stored in the wf-Database.
Other future work include: enabling users to set priorities to
different slices of the data in a way that the SWMS system will
process critic slices before; improving usability of the system by
developing intuitive user interfaces to decrease the learning curve,
especially related to the query interface, to take full advantage of
the wf-Database. We also plan to expand our experiments and
analyze how reducing each specific type of data (relation tuples,
raw data files not processed and not generated) impact final
results.</p>
    </sec>
    <sec id="sec-20">
      <title>9. ACKNOWLEDGMENTS</title>
      <p>This work was partially funded by CNPq, FAPERJ and Inria
(MUSIC project), EU H2020 Programme and MCTI/RNP-Brazil
(HPC4E grant no. 689772), and performed (for P. Valduriez) in
the context of the Computational Biology Institute
(www.ibcmontpellier.fr). The experiments were carried out using the
Grid'5000 testbed (https://www.grid5000.fr).
10. REFERENCES</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Abramson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Enticott</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Altinas</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          <article-title>Nimrod/K: Towards massively parallel dynamic grid workflows</article-title>
          .
          <source>Supercomputing</source>
          ,
          <volume>24</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>24</lpage>
          :
          <fpage>11</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Costa</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
          </string-name>
          , V.,
          <string-name>
            <surname>de Oliveira</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ocaña</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ogasawara</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dias</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mattoso</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Capturing and querying workflow runtime provenance with PROV: a practical approach</article-title>
          .
          <source>EDBT Workshops</source>
          ,
          <volume>282</volume>
          -
          <fpage>289</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Davidson</surname>
            ,
            <given-names>S.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Freire</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>Provenance and scientific workflows: challenges and opportunities</article-title>
          .
          <source>SIGMOD</source>
          ,
          <fpage>1345</fpage>
          -
          <lpage>1350</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Deelman</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gannon</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shields</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taylor</surname>
          </string-name>
          , I.
          <article-title>Workflows and eScience: an overview of workflow system features and capabilities</article-title>
          .
          <source>FGCS</source>
          ,
          <volume>25</volume>
          (
          <issue>5</issue>
          ):
          <fpage>528</fpage>
          -
          <lpage>540</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Deelman</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vahi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Juve</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rynge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Callaghan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maechling</surname>
            ,
            <given-names>P.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mayani</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , Ferreira da Silva, R., et al.
          <article-title>Pegasus, a workflow management system for science automation</article-title>
          .
          <source>FGCS</source>
          , 46(C):
          <fpage>17</fpage>
          -
          <lpage>35</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Det</given-names>
            <surname>Norske Veritas</surname>
          </string-name>
          .
          <article-title>Recommended practice: riser fatigue</article-title>
          .
          <source>DNV-RPF204</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Dias</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guerra</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rochinha</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coutinho</surname>
            ,
            <given-names>A.L.G.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valduriez</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mattoso</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Data-centric iteration in dynamic workflows</article-title>
          .
          <source>FGCS</source>
          , 46(C):
          <fpage>114</fpage>
          -
          <lpage>126</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Dias</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ogasawara</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oliveira</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Porto</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coutinho</surname>
            ,
            <given-names>A.L.G.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mattoso</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Supporting dynamic parameter sweep in adaptive and user-steered workflow</article-title>
          .
          <source>WORKS</source>
          ,
          <fpage>31</fpage>
          -
          <lpage>36</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Gil</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ratnakar</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gonzalez-Calero</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Groth</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , Moody, J.,
          <string-name>
            <surname>Deelman</surname>
          </string-name>
          , E. Wings:
          <article-title>Intelligent workflow-based design of computational experiments</article-title>
          .
          <source>Intelligent Systems</source>
          ,
          <volume>26</volume>
          (
          <issue>1</issue>
          ):
          <fpage>62</fpage>
          -
          <lpage>72</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Gunter</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deelman</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Samak</surname>
          </string-name>
          , et al.
          <article-title>Online workflow management and performance analysis with Stampede</article-title>
          .
          <source>CNSM</source>
          ,
          <fpage>152</fpage>
          -
          <lpage>161</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Jain</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ong</surname>
            ,
            <given-names>S.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , et al.
          <article-title>FireWorks: a dynamic workflow system designed for high-throughput applications</article-title>
          .
          <source>CCPE</source>
          ,
          <volume>27</volume>
          (
          <issue>17</issue>
          ):
          <fpage>5037</fpage>
          -
          <lpage>5059</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paton</surname>
            ,
            <given-names>N.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sakellariou</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fernandes</surname>
            ,
            <given-names>A.A.A.</given-names>
          </string-name>
          <article-title>Utility functions for adaptively executing concurrent workflows</article-title>
          .
          <source>CCPE</source>
          ,
          <volume>23</volume>
          (
          <issue>6</issue>
          ):
          <fpage>646</fpage>
          -
          <lpage>666</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Mandal</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruth</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baldin</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          , et al.
          <article-title>Toward an end-to-end framework for modeling, monitoring and anomaly detection for scientific workflows</article-title>
          .
          <source>IPDPSW</source>
          ,
          <fpage>1370</fpage>
          -
          <lpage>1379</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Mattoso</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dias</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ocaña</surname>
            ,
            <given-names>K.A.C.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ogasawara</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Costa</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horta</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
          </string-name>
          , V.,
          <string-name>
            <surname>de Oliveira</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>Dynamic steering of HPC scientific workflows: A survey</article-title>
          .
          <source>FGCS</source>
          ,
          <volume>46</volume>
          :
          <fpage>100</fpage>
          -
          <lpage>113</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Moreau</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Missier</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <article-title>PROV-DM: the PROV data model</article-title>
          . Available at: http://www.w3.org/TR/prov-dm
          <source>Accessed: 1 Aug</source>
          <year>2016</year>
          .,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>H.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abramson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kiporous</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Galloway</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <article-title>WorkWays: interacting with scientific workflows</article-title>
          .
          <source>Gateway Computing Environments Workshop</source>
          ,
          <fpage>21</fpage>
          -
          <lpage>24</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Ogasawara</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dias</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oliveira</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Porto</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valduriez</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mattoso</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>An algebraic approach for data-centric scientific workflows</article-title>
          .
          <source>PVLDB</source>
          ,
          <volume>4</volume>
          (
          <issue>12</issue>
          ):
          <fpage>1328</fpage>
          -
          <lpage>1339</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Özsu</surname>
            ,
            <given-names>M.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valduriez</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <article-title>Principles of distributed database systems</article-title>
          . 3 ed. New York, Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Reuillon</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leclaire</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rey-Coyrehourcq</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>OpenMOLE, a workflow engine specifically tailored for the distributed exploration of simulation models</article-title>
          .
          <source>FGCS</source>
          ,
          <volume>29</volume>
          (
          <issue>8</issue>
          ):
          <fpage>1981</fpage>
          -
          <lpage>1990</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de Oliveira</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valduriez</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mattoso</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Analyzing related raw data files through dataflows</article-title>
          .
          <source>CCPE</source>
          ,
          <volume>28</volume>
          :
          <fpage>2528</fpage>
          -
          <lpage>2545</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Souza</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          , Oliveira, Daniel, Valduriez,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Lima</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.A.B.</given-names>
            ,
            <surname>Mattoso</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Parallel execution of workflows driven by a distributed database management system</article-title>
          .
          <source>Poster in Supercomputing</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Vahi</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harvey</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Samak</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , et al.
          <article-title>A case study into using common real-time workflow monitoring infrastructure for scientific workflows</article-title>
          .
          <source>J. Grid Comput.</source>
          ,
          <volume>11</volume>
          (
          <issue>3</issue>
          ):
          <fpage>381</fpage>
          -
          <lpage>406</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>