222
M. Tsuji et.al.
3.2 YML
YML[2–4] is a workflow programming environment for a scientific workflow. YML
had been developed to execute a workflow application in a grid and P2P environment
and provides the following software:
• Component (task) generator,
• Workflow compiler, and
• Workflow scheduler.
The YML workflow compiler supports an original workflow language called
YvetteML, which allows us to describe dependency between tasks easily. Some
details of the YvetteML are described later, in Sect. 4.2. A workflow written in the
YvetteML would be compiled by the YML workflow compiler into a DAG of tasks.
The YML workflow scheduler interprets the DAG to execute the defined workflow.
Depending on the available systems, the scheduler uses different middleware, such
as XtremWeb for a P2P, OmniRPC[9] for a grid. The YML component generator
generates executable programs from “abstract” and “implementation” descriptions
of a component. Figures 2 and 3 show examples of “abstract” and “implementation,”
respectively. Note that in Fig. 3, while we show an example using XMP, the original
YML had supported neither XMP nor MPI. The XMP and MPI supports were added
by extending YML and middleware.
3.3 OmniRPC-MPI
YML has been designed to execute workflow applications over various environments, such as clusters, P2P, and single processors. During the execution, the YML
workflow scheduler dynamically loads a backend library for its environment. Each
of the backend libraries calls APIs defined in middleware libraries. For example, in
Fig. 2 An example of “Abstract” in YML
M. Tsuji et.al.
3.2 YML
YML[2–4] is a workflow programming environment for a scientific workflow. YML
had been developed to execute a workflow application in a grid and P2P environment
and provides the following software:
• Component (task) generator,
• Workflow compiler, and
• Workflow scheduler.
The YML workflow compiler supports an original workflow language called
YvetteML, which allows us to describe dependency between tasks easily. Some
details of the YvetteML are described later, in Sect. 4.2. A workflow written in the
YvetteML would be compiled by the YML workflow compiler into a DAG of tasks.
The YML workflow scheduler interprets the DAG to execute the defined workflow.
Depending on the available systems, the scheduler uses different middleware, such
as XtremWeb for a P2P, OmniRPC[9] for a grid. The YML component generator
generates executable programs from “abstract” and “implementation” descriptions
of a component. Figures 2 and 3 show examples of “abstract” and “implementation,”
respectively. Note that in Fig. 3, while we show an example using XMP, the original
YML had supported neither XMP nor MPI. The XMP and MPI supports were added
by extending YML and middleware.
3.3 OmniRPC-MPI
YML has been designed to execute workflow applications over various environments, such as clusters, P2P, and single processors. During the execution, the YML
workflow scheduler dynamically loads a backend library for its environment. Each
of the backend libraries calls APIs defined in middleware libraries. For example, in
Fig. 2 An example of “Abstract” in YML
