Modifying PVM task scheduler to use a load-based scheduling policy

Saratnath Buddiraju and Radhika Dsouza
Dept. of CSE, University College of Engineering,
Osmania University

About Parallel Virtual Machine (PVM)

The Parallel Virtual Machine (PVM) is a software package that allows a programmer to create and access a concurrent computing system made from networks of loosely coupled processing elements. Developed at the Oak Ridge National Laboratory, USA. PVM has evolved over the years as one of the favorite platforms for application development in parallel environments. It is based on the parallel message-passing model to allow the programmers to exploit distributed computing across a wide variety of computer systems, ranging from Massively Parallel Processors to Clusters.

Problem Statement

The PVM system consists of PVM daemon processes running on each node of the cluster, to which are responsible for participation of the nodes in the PVM system. When a user task needs to spawn parallel sub-task it contact the PVM deamon which running on its current node to process the fork request. The local PVM daemon then creates mutliple task instances and assigns them across other nodes in the cluster in a round-robin allocation. Thus the task scheduling across the cluster is determined by a static alogirthm which have good average throuput.

However, the load conditions on individual nodes in the cluster are ignored by the PVM scheduling policy. Since the nodes are not exclusively used by PVM, there is a possibility that the nodes are heavily loaded by non-PVM application as well. Thus, this static node allocation, may result in sub-optinal performance of the system.

Project Work

We made the following modifications on the PVM system.

1. PVM daemon hosted on each node polls the /proc file system to gather current load statistics of the node.

2. The current load is weighed against the load-history of the node to get a avg. load on the system. The factor to which the current load is allowed to skew the average is made configurable.

3. All the PVM daemon exchange this load information. Thus every PVM daemon now has load information about every other node in the system.

4. While allocating nodes to tasks, the PVM Scheduler chooses the best available node. This results in better performance over the static round robin scheduler.

Results

1. We were able to exhibit upto 200% speedup in turn around times over the default scheduling policy used by PVM.

2. The study gave us a fair understanding of methods to be used of determining the CPU load. We we able to measure the effect of number of processes, process priority, memory usage and CPU processing speed on the processing abilities of a node in the cluster.

Links

1. Report (.doc)

2. Presentation(.ppt)

3. Source Code (.zip)

Hosted by www.Geocities.ws

1