Cloud computing enables the delivery of computing resources like hardware, software, and networking resources over the internet in a pay-per-use mode. Virtualization technology of the cloud provides a large number of powerful and scalable computational resources for the deployment of large-scale applications. In recent years, the cloud has become the most sought-after platform for large-scale application execution with its capability to provide a vast collection of computing resources on demand from its shared pool of resources with minimal interaction of users. Since many of today’s business and scientific applications have large data and computing requirements, the cloud has become a preferred choice for the deployment of such applications. Large scientific and business applications are represented as workflows for deployment in distributed systems. Workflows specify series of computational operations which allows the data processing in an organized and distributed way. Workflows provide a structured method to extract and process knowledge from large volumes of data available from business applications and scientific tools, that is very significant in today’s big data era. Cloud computing offers several advantages for the deployment of such workflow applications with its large-scale scalable and elastic virtualized resources.
Complex computational operations and problems pertaining to scientific applications can be specified by means of workflow structures for efficient processing in distributed environments. Workflows consist of thousands of tasks interconnected according to various dependency constraints. These tasks need to be executed according to the precedence constraints specified in the workflow structure. Normally, a workflow task executes a large number of instructions and operates on large input data files. Different tasks in a workflow may have different computing requirements. Different combinations of resources are available in the cloud for distributing these different types of workflow tasks for execution. The optimal distribution of workflow tasks to computing resources becomes very significant for workflow execution.