


Research Interests 

Performance Modeling and Evaluation: Generally, performance is the key issue for any system that services user requests. Modeling the performance of a computer system helps system providers to analyze the current system and apply modifications to the system to improve the performance measures if it is required. Performance modeling and evaluation can also be considered as a design tool when the system under study does not still exist. There are several mathematical approaches which can be 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. Exploiting Stochastic Reward Nets (SRNs) and Stochastic Activity Networks (SANs), we can appropriately model and analyze the performance parameters of various computing systems. In some cases, Markov
Chains (MCs), Markov Reward Models (MRMs), 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 case of computer systems and networks is an interesting research filed which has attracted many researchers. In addition to modeling and evaluating 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 which is known as performability analysis is a more interesting issue especially in modern largescale distributed systems in which their resources are prone to failure. We use mathematical models to simultaneously analyze the performance and dependability measures of computer systems.

Grid and Cloud Computing:
Grid computing is a technology to build dynamically constructed problem solving environments using geographically and organizationally distributed computational resources connected via communication links. Grid computing provides supercomputing like power on demand, just as a power grid which provides electricity on demand. Based on definition, a computational grid is a large collection of computers (computing resources) linked via the Internet (any network) so that their combined processing power can be harnessed to work on difficult or time consuming problems. The term cloud computing came into popularity, which is conceptually similar to the basic definition of grid computing. There are many problems in grid and cloud computing we are interested in studying them. For example, performance/dependability evaluation of
grid manager and distributed resources in grid, efficient task scheduling among grid resources, modeling the virtual machine migration in clouds, virtualization and rejuvenation concepts in cloud computing, power consumption and so forth.

Task Scheduling Algorithms:
Task scheduling is one of the wellknown problems in computer systems involving dispatching incoming requests to the resources with the aim of achieving a predefined goal. We are especially interested in this problem when it is applied to the distributed computing systems. Since computing resources in a largescale distributed system are very heterogeneous and locally distributed, task scheduling problem 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 focus is on proposing novel and
stateoftheart scheduling algorithms and disciplines to increase
the performance of the system and achieve satisfiable QoS. In some
cases, we use heuristic algorithms since the problem we consider
is NPhard.




