How To Build A Workflow As A Service In The Cloud (Wfaas)



Similar documents
Early Cloud Experiences with the Kepler Scientific Workflow System

Deploying Kepler Workflows as Services on a Cloud Infrastructure for Smart Manufacturing

San Diego Supercomputer Center, UCSD. Institute for Digital Research and Education, UCLA

Building Platform as a Service for Scientific Applications

SURVEY ON THE ALGORITHMS FOR WORKFLOW PLANNING AND EXECUTION

Figure 1. The cloud scales: Amazon EC2 growth [2].

SURVEY ON SCIENTIFIC DATA MANAGEMENT USING HADOOP MAPREDUCE IN THE KEPLER SCIENTIFIC WORKFLOW SYSTEM

Data Semantics Aware Cloud for High Performance Analytics

Heterogeneous Workload Consolidation for Efficient Management of Data Centers in Cloud Computing

A Service Revenue-oriented Task Scheduling Model of Cloud Computing

SCORE BASED DEADLINE CONSTRAINED WORKFLOW SCHEDULING ALGORITHM FOR CLOUD SYSTEMS

A Hybrid Load Balancing Policy underlying Cloud Computing Environment

CONCEPTUAL MODEL OF MULTI-AGENT BUSINESS COLLABORATION BASED ON CLOUD WORKFLOW

2) Xen Hypervisor 3) UEC

PERFORMANCE ANALYSIS OF PaaS CLOUD COMPUTING SYSTEM

What s the Big Deal? Big Data, Cloud & the Internet of Things. Christine Kirkpatrick San Diego Supercomputer Center, UC San Diego

Comparison of Distributed Data- Parallelization Patterns for Big Data Analysis: A Bioinformatics Case Study!

A Middleware Strategy to Survive Compute Peak Loads in Cloud

Swinburne Research Bank

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

Fig. 1 WfMC Workflow reference Model

An Efficient Hybrid P2P MMOG Cloud Architecture for Dynamic Load Management. Ginhung Wang, Kuochen Wang

Real Time Network Server Monitoring using Smartphone with Dynamic Load Balancing

IMPROVEMENT OF RESPONSE TIME OF LOAD BALANCING ALGORITHM IN CLOUD ENVIROMENT

Dynamic Resource Allocation in Software Defined and Virtual Networks: A Comparative Analysis

Group Based Load Balancing Algorithm in Cloud Computing Virtualization

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Infrastructure as a Service (IaaS)

A Brief Introduction to Apache Tez

2. Research and Development on the Autonomic Operation. Control Infrastructure Technologies in the Cloud Computing Environment

Resource Allocation Avoiding SLA Violations in Cloud Framework for SaaS

Minimal Cost Data Sets Storage in the Cloud

Privacy-Aware Scheduling for Inter-Organizational Processes

Linear Scheduling Strategy for Resource Allocation in Cloud Environment

Keywords Distributed Computing, On Demand Resources, Cloud Computing, Virtualization, Server Consolidation, Load Balancing

AN IMPLEMENTATION OF E- LEARNING SYSTEM IN PRIVATE CLOUD

Optimal Service Pricing for a Cloud Cache

Load Balancing to Save Energy in Cloud Computing

Federated Big Data for resource aggregation and load balancing with DIRAC

AN EFFICIENT LOAD BALANCING APPROACH IN CLOUD SERVER USING ANT COLONY OPTIMIZATION

Deadline Based Task Scheduling in Cloud with Effective Provisioning Cost using LBMMC Algorithm

EFFICIENT SCHEDULING STRATEGY USING COMMUNICATION AWARE SCHEDULING FOR PARALLEL JOBS IN CLUSTERS

Virtual Machine Instance Scheduling in IaaS Clouds

Collaborative & Integrated Network & Systems Management: Management Using Grid Technologies

A Data Dependency Based Strategy for Intermediate Data Storage in Scientific Cloud Workflow Systems *

Smart Manufacturing as a Real-Time Networked Enterprise and a Market-Driven Innovation Platform

A Proposed Framework for Ranking and Reservation of Cloud Services Based on Quality of Service

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic

Setting deadlines and priorities to the tasks to improve energy efficiency in cloud computing

Data-Aware Service Choreographies through Transparent Data Exchange

Administrative Issues

The Probabilistic Model of Cloud Computing

A Dynamic Resource Management with Energy Saving Mechanism for Supporting Cloud Computing

A Survey Study on Monitoring Service for Grid

Evaluating HDFS I/O Performance on Virtualized Systems

CLOUD computing has become an important computing

SLA-aware Resource Scheduling for Cloud Storage

USING VIRTUAL MACHINE REPLICATION FOR DYNAMIC CONFIGURATION OF MULTI-TIER INTERNET SERVICES

Mobile Storage and Search Engine of Information Oriented to Food Cloud

Cloud deployment model and cost analysis in Multicloud

The Theory And Practice of Testing Software Applications For Cloud Computing. Mark Grechanik University of Illinois at Chicago

Cloud Storage. Parallels. Performance Benchmark Results. White Paper.

Dynamic Resource management with VM layer and Resource prediction algorithms in Cloud Architecture

International Journal of Computer & Organization Trends Volume21 Number1 June 2015 A Study on Load Balancing in Cloud Computing

International Journal of Computer Science Trends and Technology (IJCST) Volume 2 Issue 4, July-Aug 2014

A Novel Approach for Efficient Load Balancing in Cloud Computing Environment by Using Partitioning

A Framework for Performance Analysis and Tuning in Hadoop Based Clusters

Optimized New Efficient Load Balancing Technique For Scheduling Virtual Machine

Cloud Computing Simulation Using CloudSim

OCRP Implementation to Optimize Resource Provisioning Cost in Cloud Computing

Load Balancing on a Grid Using Data Characteristics

Energy Constrained Resource Scheduling for Cloud Environment

International Journal Of Engineering Research & Management Technology

HYBRID ACO-IWD OPTIMIZATION ALGORITHM FOR MINIMIZING WEIGHTED FLOWTIME IN CLOUD-BASED PARAMETER SWEEP EXPERIMENTS

Cloud-pilot.doc SA1 Marcus Hardt, Marcin Plociennik, Ahmad Hammad, Bartek Palak E U F O R I A

VIRTUAL RESOURCE MANAGEMENT FOR DATA INTENSIVE APPLICATIONS IN CLOUD INFRASTRUCTURES

Virtualization Technology using Virtual Machines for Cloud Computing

A Proposed Service Broker Strategy in CloudAnalyst for Cost-Effective Data Center Selection

Profit Maximization Of SAAS By Reusing The Available VM Space In Cloud Computing

Dynamic Load Balancing of Virtual Machines using QEMU-KVM

Dynamic Thread Pool based Service Tracking Manager

How In-Memory Data Grids Can Analyze Fast-Changing Data in Real Time

MINIMIZING STORAGE COST IN CLOUD COMPUTING ENVIRONMENT

Environments, Services and Network Management for Green Clouds

Enhancing Dataset Processing in Hadoop YARN Performance for Big Data Applications

Reallocation and Allocation of Virtual Machines in Cloud Computing Manan D. Shah a, *, Harshad B. Prajapati b

Cloud Storage Solution for WSN Based on Internet Innovation Union

APPLICATION NOTE. Elastic Scalability. for HetNet Deployment, Management & Optimization

Multi-Tenant Engineering Architecture in SaaS

CDBMS Physical Layer issue: Load Balancing

Workflow Allocations and Scheduling on IaaS Platforms, from Theory to Practice

A Study on Service Oriented Network Virtualization convergence of Cloud Computing

A QoS-Aware Web Service Selection Based on Clustering

A Locality Enhanced Scheduling Method for Multiple MapReduce Jobs In a Workflow Application

Method of Fault Detection in Cloud Computing Systems

Scalable Multiple NameNodes Hadoop Cloud Storage System

Managing Large Numbers of Business Processes with Cloud Workflow Systems

SOLUTION BRIEF: SLCM R12.7 PERFORMANCE TEST RESULTS JANUARY, Load Test Results for Submit and Approval Phases of Request Life Cycle

Final Project Proposal. CSCI.6500 Distributed Computing over the Internet

Transcription:

Procedia Computer Science Volume 29, 2014, Pages 546 556 ICCS 2014. 14th International Conference on Computational Science Workflow as a Service in the Cloud: Architecture and Scheduling Algorithms Jianwu Wang 1, Prakashan Korambath 2, Ilkay Altintas 1, Jim Davis 3, Daniel Crawl 1 1 San Diego Supercomputer Center, UCSD, La Jolla, CA, U.S.A. 2 Institute for Digital Research and Education, UCLA, Los Angeles, CA, U.S.A. 3 University of California, Los Angeles, Los Angeles, CA, U.S.A. {jianwu,altintas,crawl}@sdsc.edu, ppk@ucla.edu, jdavis@oit.ucla.edu Abstract With more and more workflow systems adopting cloud as their execution environment, it becomes increasingly challenging on how to efficiently manage various workflows, virtual machines (VMs) and workflow execution on VM instances. To make the system scalable and easy-to-extend, we design a Workflow as a Service (WFaaS) architecture with independent services. A core part of the architecture is how to efficiently respond continuous workflow requests from users and schedule their executions in the cloud. Based on different targets, we propose four heuristic workflow scheduling algorithms for the WFaaS architecture, and analyze the differences and best usages of the algorithms in terms of performance, cost and the price/performance ratio via experimental studies. Keywords: Workflow, Cloud, Workflow as a Service (WFaaS) architecture, workflow scheduling algorithms 1 Introduction The Smart Manufacturing Leadership Coalition (SMLC) 1 is a project to build Smart Manufacturing (SM) systems that integrate manufacturing intelligence in real time cross an entire production operation including supply chain that are rare in large companies, and virtually nonexistent in small and medium size organizations. Even though the sensor, signal and response technologies have become very reliable and advanced, the implementation of data-driven manufacturing intelligence and adoption of real time performance-modeling management in achieving good operating performance across multiple units within the production line of an entire factory has 1 https://smartmanufacturingcoalition.org/ 546 Selection and peer-review under responsibility of the Scientific Programme Committee of ICCS 2014 c The Authors. Published by Elsevier B.V.

been lagging behind. Implementation of dynamic real time monitoring, analysis and modeling is essential to the development of a sophisticated smart manufacturing intelligence. Workflow and cloud computing are two main components developed in the system to date. SMLC considers workflow as an essential technique in the implementation of automation, and dynamic decision-making process through contextualization and analysis of real t ime data. Due to the capability to build flexible and complicated applications, each user application service is expressed in a workflow. The cloud platform is intended for elastic scalability and reduces cost of deploying SM services by providing guaranteed compute and data storage resources to complete jobs in real time. Following service models of cloud computing, we think Workflow as a Service (WFaaS) is a good service model on top of other cloud services to support workflow publishing, query and execution [1]. WFaaS provides a way to compose multiple software packages/services based on a certain logic within a workflow service. It facilitates a service and management environment for flexib le application integration via workflows. Utilizing other cloud services, such as IaaS and DaaS, WFaaS needs to get proper data, software packages, and VMs for its execution. The contributions of this paper are three-fold. First, we refine our conceptual WFaaS architecture by defining its services in order to make it scalable and easy-to-extend. Second, we propose four heuristic workflow scheduling algorithms for efficient workflow execution in the cloud for the WFaaS architecture. Third, we verify and compare the algorithms through simulated experiments. 2 Architecture for Workflow-as-a-Service in the Cloud 2.1 Role Separation for Virtual Machine and Workflow Management A workflow composes many computing steps that need to run with third-party packages, which brings challenges on VM management. Workflows in the cloud run on VM instances (VMIs) that are instantiated from proper VMs. We can have many independent VMIs from one single VM. For example, one of our SM workflows includes two tasks calling Octave or Matlab software package and a third task invoking Fluent CFD package. To execute such a workflow on one VMI, we can either install all needed packages during workflow execution on the VMI or have one or more VMs ready to be deployed with preinstalled package(s). The packages, e.g., Matlab and Octave, may have varying disk space and memory requirements. If we install all the packages needed for a workflow in one VMI beforehand or during runtime, the VMI could become very big and need a lot of resource. For example, one package needs at least 10 GB of disk space and 1 GB of memory, and another one needs 20 GB disk and 500 MB memory. To have a VMI with both packages, we need at least 30 GB disk and 1 GB me mory. This all-in-one approach also causes VM management difficulties in the cloud. If there are many workflows with various third-party package requirements, the VM could be extremely big if we have a single large VM with all packages installed. It is also hard to manage VM if we have a VM per workflow because the VM number grows along with workflow number. Moreover, VM and workflow are tightly coupled in the approach since VM creation depends on workflows. Figure 1. Independent role assignment for VM and workflow management. 547

Often the VM administrator and workflow composer are not going to be the same person, so it is better if these two roles are loosely coupled and work more independently, as shown in Fig. 1. Ideally, VM administrator does not need to know what the current and future workflow requests are. She only builds VMs based on commonly used packages in the domain and makes them available for the community. For the workflow composer, she normally works with application users and designs workflows according to their requirements. Therefore her main job should be expressing workflow logic, not where and when each workflow task should run. Each composed workflow is published as a service. Users will find needed workflow from published workflow services and submit service execution requests. VM information and how to run workflows on VMIs are hidden from users. To support such loose coupling and automatic execution, we need a component, called Work flow Scheduler in Fig. 1, to find proper VMs and allocate VMIs for each workflow execution. 2.2 Services in WFaaS Architecture Our WFaaS architecture is shown in Fig. 2. Following a service -oriented architecture approach, all components in our architecture are REST services, which are explained below. The first two services compose the workflow scheduler in Fig. 1. WF input and output transfer Cloud storage service WF and IO data transfer request VMIs VM management service manage VMIs... continually coming WF requests WF request management service update WF request list WF request list Workflow Scheduler WF schedule service run WF on scheduled VMI......... VMIs for Workflow System run tasks on scheduled VMI VMIs for Package A VMIs for Package B Figure 2. An architecture for Workflow-as-a-Service in the cloud. Workflow request management service accepts user requests to run a certain workflow along with input data. This service supports asynchronous requests so that users can submit new requests without waiting for the completion of existing ones. Users can use this service to check the status of each workflow request and get outputs once the workflow execution is complete. Workflow schedule service schedules workflows and tasks in the workflows to proper VMIs. Since the whole architecture calls for continuous user workflow requests, this service has to be able to schedule workflows/tasks independently without the knowledge of future workflow requests. Cloud storage service is a scalable redundant storage service found in many existing cloud environments, such as Amazon S3 2 or OpenStack Object Storage (Swift) 3. In our architecture, we will use it to store workflow specification, user inputs and outputs. VM management service is a scalable virtual computing service also found in many cloud environments, such as Amazon EC2 4 or OpenStack Compute (Nova) 5. We will use it to manage VMs and VMIs to execute workflows. 2 http://aws.amazon.com/s3/ 3 http://swift.openstack.org 4 http://aws.amazon.com/ec2/ 5 http://nova.openstack.org 548

Following the modularity and separation-of-concerns principle, we treat VM management and workflow management separately in our architecture. To keep each VM simple, we limit available packages for each VM. In this paper, we assume one VM only has one package. Workflow composer does not need to be aware of available VM information. When composing a new workflow, she just specifies the package information for each task. During execution time, workflow schedule service will find the proper VM for each task and schedule VMI for the tasks. It makes the architecture easy to extend for new VMs and workflows. This architecture also supports scalable workflow execution by allocating separate VMIs for different workflow requests. Some workflow systems [11], like Kepler [12], can handle simultaneous workflow executions at the same time by a single engine. This single engine approach, however, will become a bottleneck when workflow requests grow. Further, exception from one workflow execution might cause the workflow engine stop working for other workflow executions. To avoid single points of failure and resource competition among multip le workflow executions, we only allow workflow engines to handle one workflow execution at any time. When a new workflow request is scheduled, it either is allocated on a new VMI or waits until one of the current VMI becomes idle. 3 Workflow Scheduling in the Cloud Generally, workflow scheduling in a distributed environment is an NP-hard problem. This work targets random workflow requests over time, so it must schedule workflow execution without any knowledge of the future requests. In this section, we will present different heuristic algorithms to schedule workflow requests and analyze their features. Our algorithms have the following assumptions/limitations. First, they only process workflows that can be described in directed acyclic graphs (DAG). Second, we assume the task execution time is known beforehand since this information can be generated via performance prediction [3]. Third, we do not consider the overhead and cost of VMI instantiation and data transfer among tasks. 3.1 VMI Sharing among Workflow Tasks Our algorithms target VMI sharing among workflow tasks during workflow executions in the cloud in order to save monetary cost without affecting much performance. Studies show that virtual resource cost can be reduced greatly if multiple requests share VMIs [2]. In cloud environments, costs are normally calculated by VMI uptime hours (a.k.a. instance hour), not the real usage time period. For example, suppose two tasks need 10 and 30 minutes for their executions, respectively. Due to dependency constraints, the second task cannot start until the first one finishes. Instead of allocating one VMI for each task, both tasks can be allocated to the same VMI to save cost and still have the same performance. Workflows have a lot of task dependencies like this example, so we could potentially reduce a lot of resource cost if we take into account the dependencies in scheduling. In this paper, we do not consider resource sharing by running multiple tasks simultaneously on the same VMI since it is difficult to know how the execution time of each task will change in this situation. Fig. 3 illustrates such an example with two workflow executions, where each task is marked with its earliest start time, execution time and requested VM ID. Because the two workflows are submitted at different times and there are dependencies among tasks, some task executions could be shared on the same VMI. The schedule result 1 and 2 show two task execution plans. The first one does not have VMI sharing among workflows, whereas the second one has. The two results have the same execution times for the workflows, but the second one can save half the cost. The reason is that the instance hour is four for the first schedule result and two for the second one. We note that each workflow also costs VMI in our architecture, which is not depicted in this figure. In this paper, we only consider VMI 549

sharing for tasks, not workflows. So each workflow execution will have its own VMI and the VMI is stopped once the workflow execution is done. Figure 3: A VMI sharing example among workflow tasks. 3.2 Workflow Scheduling Process Once a workflow execution is requested, the schedule service must find VMI allocations for the workflow and its tasks. Fig. 4 depicts the basic logic of workflow request management service and workflow schedule service that is the same for our algorithms. The management service is invoked when a new workflow execution is requested. It updates the workflow list and invokes the schedule service if the workflow request is the only one in the list. If the list has other workflow requests, the workflow schedule service is already running and will track list changes during its execution. The workflow schedule service gets the latest workflow request list and schedules them on proper VMIs. It first goes through the workflow list and get the list of their tasks. During this process, we can get the earliest start time for each task by considering workflow submission time, workflow dependencies and task execution time. Because the earliest start time tells when a task can be allocated on a VMI, we also call it ready time. Then the service sorts the task list based their ready times. Next, it gets the first task from the task list and the workflow for the task. If the workflow has not been scheduled, it instantiates a new VMI for the workflow. Then it schedules the task on a VMI. The VMI could be a new one, or one already started when scheduling previous tasks. When a task is scheduled, its real start time might be later than its ready time. If so, its downstream tasks need to be updated based on the real start time. A task is removed from the task list once it is scheduled, and a workflow request is removed from the workflow request list once it no longer has any pending tasks. The VMI for the workflow will also stop once all its task finish. The service keeps checking latest workflow request list and their task list until all workflows and tasks are scheduled. 550

Figure 4: Flow chart for workflow management service and workflow schedule service. 3.3 Heuristic Task Scheduling Algorithms A good heuristic scheduling needs to make proper decisions based on available information. Three main decisions need to be made for workflow scheduling in the cloud: 1) when to start a new VMI? 2) when to stop a running VMI? and 3) how to allocate a task to a proper VMI? To boost sharing without adding cost, the best time to stop an existing VMI is when its uptime value (by minutes) is a mult iple of 60. If a VMI waits for a shorter time than it, the cost is the same and it loses chances for sharing. If a VMI is idle and waits for a longer time than it, both cost and process time are no better than those of starting a new VMI. So we have a separate monitoring process for each running VMI. It checks the status of the VMI every 60 minutes after the VMI is instantiated, and stop the VMI if it is idle. Following the same structure in Fig. 4, the differences of our algorithms lie in the task schedule step (highlighted in Fig. 4) in the workflow schedule service. Monetary cost and process time are two main criteria for workflow scheduling in the cloud. Besides these two criteria, we will also check price/performance ratios (PPR), which reflects a more combined result of cost and process time. Performance is normally measured by speed or throughput. Since process time has inverse relationship with speed/throughput, we use the product of process time and cost for the PPR value. The smaller a PPR value is, the better the result is. 551

Tables 1 through 4 present different task scheduling algorithms. Most of them take two inputs. The first is the task to be scheduled. The second, called activevmilist, is the list of VMIs that have the requested package and are up currently. This list shows existing VMIs that could be reused for the task. Table 1: Task schedule algorithm with static maximal VMI number. statictaskschedule(task, activevmilist, maxvminum) 1. search activevmilist and get the vmi with the earliest stoptime; 2. if (vmi.stoptime > task.readytime) //vmi is busy at task ready time 3. if (activevmilist.size() < maxvminum) //we still can create new VMI 4. schedule task on a new vmi (newvmi) and set newvmi.starttime = currenttime and newvmi.stoptime = (currenttime + task.exetime); 5. else //reuse the vmi for the task 6. schedule task on vmi after its current running task and set vmi.stoptime = (vmi.stoptime + task.exetime); 7. end if-else starting from line 3 8. else //reuse the vmi for the task 9. schedule task on vmi when the task is ready and set vmi.stoptime = (task.readytime + task.exetime); 10. end if-else starting from line 2 Table 1 shows a static task schedule algorithm by setting the maximal active VMI threshold (maxvminu m in the input) for each VM type. In line 1, it finds the VMI fro m activevmilist whose stop time is the earliest. We note this value only describes the current temporary setting. Once a new task is allocated here, this value will increase accordingly. When the function approaches line 4, because the current active VMI nu mber is still less than the threshold, it instantiates a new VMI for the task. Otherwise, it allocates the task on the VMI (line 6 and 9) and the VMI is reused for the task after existing tasks on the VMI finish. If the threshold number is one for each VM type, we can achieve minimal cost because it utilizes all possible sharable chances. Table 2: Task schedule algorithm for shortest process time. dynamictaskschedule (task, activevmilist) 1. search activevmilist and get the vmi with the earliest stoptime; 2. if (vmi.stoptime > task.readytime) //vmi is busy at task ready time 3. schedule task on a new vmi (newvmi) and set newvmi.starttime = currenttime and newvmi.stoptime = (currenttime + task.exetime); 4. else //reuse the vmi for the task 5. schedule task on vmi and set vmi.stoptime = (vmi.stoptime + task.exetime); 6. end if-else starting from line 3 Table 2 shows a dynamic task schedule algorithm by starting each task instantly. In this algorith m, an existing VMI is reused only if it is id le at the task s ready time (line 5). Otherwise, a new VMI is instantiated for the task. Since each task does not wait for other tasks to finish, it can start at its earliest start time and the algorithm can achieve shortest process time for all workflows. Table 3: Adaptive task schedule algorithm. adaptivetaskschedule(task, activevmilist, tasklist, historytasklist, thresholdratio) 1. get tasknum from tasklist or historytasklist within one hour interval relative to task s ready time; 2. vminum = thresholdratio tasknum; // threshold ratio could be any real number in (0, 1] 3. if (vminum > currentupvminum) //we should have more vmi 4. schedule the task on a new vmi (newvmi) and set newvmi.starttime = currenttime and newvmi.stoptime = (currenttime + task.exetime); 5. else //find a vmi from active VMI list and reuse it for the task 6. get vmi from activevmilist with the earliest stoptime; 7. schedule the task on vmi and set vmi.stoptime = (task.readytime > vmi.stoptime)? (vmi.readytime + task.exetime) : (vmi.stoptime + task.exetime); 8. end if-else starting from line 3 Table 3 shows a task schedule algorithm that allocates VMI adaptively based on the schedule history or future task information. In line 1, it first checks task number for a certain time interval based 552

on the task to be scheduled. We can use the time interval for the past hour or the next hour, both relative to the task s ready time. The algorithm counts the tasks in task list or task history list that have the same requested package and their ready times fall into the interval. Then line 2 calculates needed VMI number based on the task number and pre-defined threshold ratio. For example, a threshold ratio 0.5 means having one VMI for every two tasks. By comparing the needed VMI number and current running VMI number (line 3), it knows whether it should start a new VMI. If no new VMI should be started, the task will be allocated at the VMI whose stop time is the earliest (line 7). In summary, it utilizes information of existing task allocations or tasks to be scheduled in order to adjust VMI number for the current task. Table 4: Greedy task schedule algorithm. greedytaskschedule(task, activevmilist) 1. minpprvalue = 0 2. for each vmi in activevmilist 3. calculate pprvalue if the task is allocated on the vmi; 4. if (minpprvalue == 0 pprvalue < minpprvalue) 5. minpprvalue = pprvalue; selectedvmi = vmi; 6. end if starting from line 4 7. end for starting from line 2 8. calculate pprvalue if the task is allocated on a new vmi (newvmi); 9. if (minpprvalue == 0 pprvalue < minpprvalue) 10. selectedvmi = newvmi; // select the new vmi for the task 11. stop if starting from line 9 12. schedule task on selectedvmi and set selectedvmi.stoptime = (task.readytime > selectedvmi.stoptime)? (task.readytime + task.exetime) : (selectedvmi.stoptime + task.exetime); Table 4 shows a task schedule algorithm that tries to have the best PPR for the task to be scheduled. From line 1 to line 6, it calculates the PPR values for each VMI in activevmilist if the task is allocated on the VMI and finds the VMI with minimal PPR value. From line 8 to line 11, it calculates the PPR value if the task is allocated on a new VMI and compares it with the above minimal PPR value. By this approach, this algorithm can find the VMI with the best PPR value and allocate the task on it. Like other greedy algorithms, this algorithm cannot guarantee the results are optimal globally even with the best VMI selection for each task. 4 Experiments To verify and compare the capabilit ies of the algorith ms in Section 3, we experiment with 100 randomly generated workflow requests in a simulated environment. The 100 requests are from 10 workflows with random submission times. Each workflow has five to seven tasks with some dependencies among them. Each task also has its execution time and required software package name. In the experiments, the same workflow requests are used for the four algorithms with different configurations. We implement the simulated environment and the algorithms in Java and all the tests are done on a Mac desktop. No physical VMs are involved in the experiments. As mentioned in Section 3, we focus on three criteria: process time, monetary cost and PPR. We want to have a good overall result, not for each workflow request. So we record the average workflow process makespan, total monetary cost, and their product for the workflow requests. We include VMI usage for both tasks and workflows when the monetary cost is calculated. 553

Figure 5: Workflow static schedule results with different maximal VMI numbers. Our first experiment tests the static schedule algorithm with different maximal VMI number configurations. The results are shown in Fig. 5 where normalized values of process time, monetary cost or PPR are on Y-axis and maximal VMI number is on X-axis. Since we only want to know their differences, each value in the figure is the quotient of dividing its real value by the minimal value of all configurations. In other words, the values on Y-axis are normalized with respect to the lowest value. So if the value is 1, it means that algorithm can get the minimal result for the criterion. The figure shows different curves in three value ranges. When the maximal VMI number increases from 10 to 40, the values for all three criteria decrease. When the number increases from 40 to 60, process time values still decrease but the other two values slightly increase. When it increases from 60 to 80, all three values do not change anymore. The reason for the cost decrease from 10 to 40 is that more VMI number means faster workflow execution, which reduces the cost for workflow VMI usage. From the experiment, we conclude that: 1) the performance of a WFaaS system will be better when we increase usable VMIs and will reach a point where adding more VMIs will not make it better; 2) adding more VMIs does not always mean more cost for a WFaaS system; 3) we could find a VMI number configure for the best PPR. We plan to work on how to find the number for the best PPR automatically in the future. Figure 6: Workflow schedule results with different algorithms. The second experiment compares the four algorithms in Section 3, and the results are illustrated in Fig. 6. The maxvminum value is one for the static schedule and thresholdratio value is 0.5 for adaptive schedule. For adaptive schedule, we test it with the task information in both the last hour (backward) and the next hour (forward). Like the first experiment, only normalized values are shown here. The figure verifies our assertion that static schedule algorithm can achieve minimal cost and dynamic schedule algorithm can achieve minimal process time. For PPR, the adaptive schedule algorithm with future task information gets the minimal value in the experiments. We also find that the last four algorithms can get similar PPR results. Our tests with more sets of workflow requests show the adaptive schedule algorithm with future task information is not always the best in terms of PPR. 554

5 Related Work With the popularity of the cloud and workflow systems, several architectures have been proposed to support workflow execution in the cloud [4-6]. Zhao et al. study how to deploy different layers of a workflow management system in the cloud [4]. Liu et al. design a peer-to-peer based cloud workflow architecture for managing large scale workflow applications in [5]. Pathirage et al. propose WFaaS to host workflow in the cloud and an architecture for mult iple tenants (users) to share a single application instance securely [6]. Besides the support of workflow execution in the cloud with good scalability like these studies, our architecture further focuses on how to manage VM and VMI for workflow execution in the cloud, which are not well studied in existing work. We think it will become increasingly challenging as more VMs and workflows are added in a WFaaS system. By separating VM and workflow management, our architecture is more modular and easy-to-extend. In recent years, workflow scheduling in the c loud has become a hot research topic and many algorithms have been proposed. As surveyed in [7], these algorithms differ in schedule target, schedule approach and applicable scenarios. We mainly compare our work with algorithms that also support multiple/continuous workflow executions in the cloud. Xu et al. propose an algorithm to schedule multip le workflows with mu ltip le Quality of Serv ice (QoS) constraints in the cloud, which results a service list for the workflows [8]. The algorithm in [9] takes a set of workflows as input and generates the schedule that is executable on IaaS system and meets user QoS requirements. These two algorithms must have all the workflows ready before scheduling, whereas our work deals with continuous workflow requests. The most related work is [10], which proposes an auto-scaling algorithm to finish workflo ws by user specified deadlines with cost-efficiency in the cloud. Like our work, VMI sharing among tasks is also allowed in this algorithm to save cost. A difference is that this algorithm only allow VMI sharing for tasks of the same workflow, but our algorithms support VMI sharing among tasks no matter they are in the same workflow or not, which has potential for more VMI sharing and better cost reduction. Another difference is that algorithm target. The target in [10] is to meet each workflow s deadline, whereas our targets include execution time, cost and PPR. 6 Conclusions and Future Work Workflow and cloud become increasingly popular in cyberinfrastructure projects. Workflow has capability to build flexib le and co mp licated application and cloud platform is suitable for providing scalable and economic services. By clearly defining independent services, our WFaaS architecture makes it easy to manage increasing workflows and VMs. Based on the architecture, we also present four heuristic workflow schedule algorithms for efficient workflow execution in the cloud. We compare the algorithms in experiments in terms of process time, monetary cost and price/performance ratio. We find that an algorithm with proper configuration could reduce both cost and PPR without affecting much performance. Although originated from SM, our work can also be used in other domains. For future work, we first plan to improve our algorithms to support more complicated workflow logics, such as loop and condition. Then we will extend the Kepler workflow system to support the algorithms in physical cloud environments with real world applications in SM and bioinformatics. 7 Acknowledgements This work is supported by DOE grant DE-EE0005763 : Industrial Scale Demonstration of Smart Manufacturing Achieving Transformational Energy Productivity Gains, NSF grant DBI-1062565: 555

biokepler: A Comprehensive Bioinformatics Scientific Workflow Module for Distributed Analysis of Large-Scale Biological Data, and NSF grant 1331615: WIFIRE: A Scalable Data-Driven Monitoring, Dynamic Prediction and Resilience Cyberinfrastructure for Wildfires. References [1] P. Korambath, J. Wang, A. Kumar, L. Hochstein, B. Schott, R. Graybill, M. Baldea, J. Davis. "Deploying Kepler Workflows as Services on a Cloud Infrastructure for Smart Manufacturing", Accepted by the Second International Workshop on Advances in the Kepler Scientific Workflow System and Its Applications, at International Conference on Computational Science (ICCS 2014). [2] S. Niu, J. Zhai, X. Ma, X. Tang, W. Chen. "Cost-effective cloud HPC resource provisioning by building semi-elastic virtual clusters", In Proceedings of SC13: International Conference for High Performance Computing, Networking, Storage and Analysis, Article No. 56. ACM, 2013. [3] L. Carrington, A. Snavely, N. Wolter. "A performance prediction framework for scientific applications", Future Generation Computer Systems, 22(3) (2006): 336-346. [4] Y. Zhao, X. Fei, I. Raicu, S. Lu. "Opportunities and Challenges in Running Scientific Workflows on the Cloud", In Proceedings of IEEE International Conference on Cyber-enabled distributed computing and knowledge discovery (CyberC), pp. 455-462, 2011. [5] X. Liu, D. Yuan, G. Zhang, J. Chen, Y. Yang. "SwinDeW-C: a peer-to-peer based cloud workflow system", In Handbook of Cloud Computing, pp. 309-332. Springer US, 2010. [6] M. Pathirage, S. Perera, I. Kumara, and S. Weerawarana. "A multi-tenant architecture for business process executions", In Proceedings 2011 IEEE International Conference on Web Services (ICWS), pp. 121-128, 2011. [7] A. Bala and I. Chana. "A survey of various workflow scheduling algorithms in cloud environment", In IJCA Proceedings on 2nd National Conference on Information and Communication Technology NCICT, New York, USA. 2011. [8] M. Xu, L. Cui, H. Wang, Y. Bi. "A multiple QoS constrained scheduling strategy of multiple workflows for cloud computing", In Proceedings of IEEE International Symposium on Parallel and Distributed Processing with Applications (ISPA-09), pp. 629-634, 2009. [9] P. Varalakshmi, A. Ramaswamy, A. Balasubramanian, P. Vijaykumar. "An optimal workflow based scheduling and resource allocation in cloud", In Advances in Computing and Communications, pp. 411-420. Springer Berlin Heidelberg, 2011. [10] M. Mao and M. Humphrey. "Auto-scaling to minimize cost and meet application deadlines in cloud workflows", In Proceedings of SC11: International Conference for High Performance Computing, Networking, Storage and Analysis, Article No. 49, 2011. [11] I. J. Taylor, E. Deelman, D. B. Gannon, M. Shields (Eds.), Workflows for e-science: Scientific Workflows for Grids, Springer, 2007. [12] B. Ludaescher, I. Altintas, C. Berkley, D. Higgins, E. Jaeger-Frank, M. Jones, E. A. Lee, J. Tao, Y. Zhao, "Scientific workflow management and the Kepler system", Concurrency and Computation: Practice & Experience, 18 (10) (2006) pp. 1039-1065. 556