Task Scheduling in Cloud Environments for Optimum Performance
Task scheduling is one of the primary components of any Operating System and Cloud is not an exception. In fact, task scheduling in the Cloud is one of the hottest research areas for practitioners driven by increasing need for squeezing maximum performance out of a Cloud deployment. A typical Cloud deployment follows the cluster architecture where multiple users spin VM instances which race for the physical resources available. In addition to task scheduling, load balancing has to be handled effectively and if the load balancing and task scheduling are not optimized, the performance degradation will augment, resulting in failure to extract maximum performance out of your Cloud deployment. Various frameworks are already in practice to ensure optimized task scheduling, for example, Hadoop deploys the master slave architecture of genetic algorithms in which the nodes have specific quota of map and reduce calls to ensure servicing of requests.
Genetic algorithms are used for generalizing task scheduling techniques and the specific architectures are sorted out depending upon the nature of the tasks. In grid computing, the load balancing and task scheduling algorithms are generally divided as centralized, decentralized, dynamic and static algorithms but cloud computing being based on the virtual resource allocation principal cannot deploy the centralized architecture. Private Cloud deployments done for the first time are quite volatile when it comes to load balancing and may lead to blocking conditions were multiple service calls from the clients tend to cease the optimization architecture.
Going a bit deeper towards the hardware, algorithms like Fuzzy algorithms, which are based on runtime-decide architecture. Fuzzy algorithms are good in handling complex non-linear industrial problem solving. The algorithms select and decide optimization servicing technique on the go. First, the fuzzification property of the parameters is decided keeping in view the demands of remote clients. Second, a suitable and optimized strategy for implementation of the algorithm is sorted out.
Fuzzy algorithms also give the capability to program architectures in a way where the engine decides which task is in need of greater response time and which request can wait. Fuzzy algorithms, unlike genetic algorithms facilitate Cloud layer to use both the exclusive calls to the resources and shared calls. Tools like kernel canonical correlation analysis (KCCA) and job analysis tools like HDFS must be used to overhaul task optimization of any Cloud environment. Tasks in cloud computing are always a-periodic which means they can arrive any time and they have their specific time stamps. The dispatch Queue (DQ) must be maintained in order to keep a track of the scheduled arrivals. The scheduler must be smart enough to introduce the preemptive actions if there is a need to disturb the conventional job servicing flow for optimization of the Cloud deployment.
By Salman UI Haq