Research

  • Performance Modeling and Evaluation: Performance is the key issue for any system that serves user requests. Modeling and evaluation of the performance of a computer system, system providers can analyze the current system and apply their desired modifications to improve the system. Performance modeling and evaluation can also be considered as a design tool, when the system under-study does not still exist. There are several analytical approaches, used as modeling tools, to evaluate the performance of a computer system. Our main tools for modeling the performance are stochastic extensions of Petri nets. Applying Stochastic Reward Nets (SRNs) and Stochastic Activity Networks (SANs), we can appropriately model and analyze the performance measures of various computing systems. In some cases, Markov chains, Markov reward models, and queueing systems help us to achieve our goal.

  • Dependability and Performability: Dependability of a system is the ability to avoid service failures that are more frequent and more severe than is acceptable. Actually, dependability is an integrating concept that encompasses measures availability, reliability, safety, integrity, and maintainability. Dependability analysis, especially in the case of computer networks, is an interesting research area which has attracted many researchers. In addition to modeling and evaluation of dependability measures, e.g. reliability and availability, we are interested in simultaneously studying the performance of a system. Combined performance and dependability analysis of fault tolerant computing systems, known as performability analysis, is an interesting issue in modern large-scale distributed systems in which their resources are prone to failure. We use mathematical models to simultaneously analyze the performance and dependability of computer systems.

  • Cloud Computing: Cloud computing is the on-demand delivery of compute power, database, storage, applications, and other IT resources through a cloud services platform via the internet with pay-as-you-go pricing. It provides a simple way to access servers, storage and a broad set of application services over the Internet. There are however many challenges involved in cloud computing such as security, resource management, pricing, virtualization, resource consolidation, migration and so forth, each of which needs to be precisely investigated. We are interested in performance/dependability evaluation of cloud services, studying the algorithms and mechanisms used in cloud resource management system, designing efficient task scheduling strategies to assign tasks/virtual machines to the available resources, modeling the virtual machine migration in clouds, studying the virtualization and rejuvenation in cloud computing systems, analyzing the Web service composition, and assessing power consumption.

  • Resource Allocation and Task Scheduling: Task scheduling is one of the well-known problems in computer systems involving dispatching incoming requests to the resources with the aim of achieving a predefined goal. From the viewpoint of resources, each resource is allocated to a use/request to serve it. In this context, we are interested in studying the allocation and scheduling problems when they are applied to the distributed computing systems. Since computing resources in a large-scale distributed system are heterogeneous and locally distributed, task scheduling plays an important role in achieving high performance/throughput computing. There have been proposed many static and dynamic scheduling algorithms to schedule tasks among the resources to achieve the required amount of Quality of Service (QoS). Our main focus is on proposing novel and state-of-the-art scheduling algorithms and disciplines to increase the performance of the system and achieve satisfiable QoS. In some cases, meta-heuristics are used to attain the goal since the problem is NP-complete.