You are on page 1of 14

JAYPEE UNIVERSITY OF ENGINEERING & TECHNOLOGY GUNA (MP)

2011-12

Department of Computer Science & Engineering Group No. 6

Final year Project

Project Guide:
Mr. Neeraj Rathore Lecturer (CSE)

Submitted By:
Ankit Jain (08224G) Basu Bhattar (08240G) Ayush Rathi (08239G)

ACKNOWLEDEMENT

We express our deepest acknowledgement to our guide Mr. Neeraj Rathore for his very able guidance and immense help during the thick and thin of this project. His inspiration and perfective criticism was extremely helpful in this project. His support has been immeasurable. We acknowledge the help and superlative presence of the Head of Department of Computer Science & Engineering, Dr. Shishir Kumar for the opportunities he has given us not only during the project but throughout the course of B.Tech. We also duly acknowledge all the faculty members of computer science department for guiding us in the making of this project and for solving our problems whenever they surfaced and also for catalyzing our thinking when it seemed to stagnate. We acknowledge with our most sincere thanks the co-operation given by Mr. Ratnesh Tiwari (Lab In charge) who supported us throughout in making the project by providing his unlimited support in the form of lab resources. We also value the support our director Prof. N.J. Rao and dean Prof. K.K. Jain for providing us with conductive atmosphere for working in this project.

Ankit Jain Date:

Basu Bhattar Date:

Ayush Rathi Date:


2

INDEX
1.Title of the Project 2. Introduction
2.1 Relevance of the Project in the Present Scenario 2.2 Importance of the project 2.3 Existing Work 2.4 What Is Required? 2.5 Expected End Product 2.6 Technology 2.7 Project Model 2.8 Testing & Evaluation 2.9 Usage and Benefits

3. Requirements 4. Feasibility Study


4.1 Preliminary Work Done
4.2

Resources Available

4.3 Confidence Factor 4.4 Capability Index 4.5 Relative Significance Factor (RSF) 4.6 Viability Index 4.7 System Integration Factor 4.8 System Realize-ability Index 4.9 Inadequacy Parameter

TITLE OF THE PROJECT


An Efficient Dynamic Distributed Load balancing Technique

INTRODUCTION
Scheduling and load balancing techniques are crucial for implementing efficient parallel and distributed applications and for making best use of parallel and distributed systems. These techniques can be provided either at the application level or at the system level, and both. At the application level, the mapping of distributed and parallel applications on to infrastructure the development of dynamic load balancing algorithms that are able to exploit the particular characteristics and the actual utilization of the underlying system are of particular relevance. At the system level, areas of interest include the support of modern many-core architectures as well as virtual systems like Cloud infrastructures. Load balancing refers to the practice of distributing work among tasks/nodes so that all tasks are kept busy all of the time. It can be considered a minimization of task idle time.Load balancing is important to parallel programs for performance reasons. For example, if all tasks are subject to a barrier synchronization point, the slowest task will determine the overall performance.

2.1 Relevance of the Project in the Present Scenario


Despite an impressive body of research, parallel and distributed computing remains a complex task prone to resolve software issues that can affect both the correctness and the performance of the computation. The increasing demand to distribute computing over largescale parallel and distributed platforms, such as clouds, grids and large clusters, often combined with the use of multi-core processors results an increasing pressure to make computing more dependable. With Load Balancing we can address many of these challenges.

2.2 Importance of the project


Load Balancing improves performance by selecting processing power of nodes appropriately. It creates Resilience by high availability of pairs for load balancer, and creates faulttolerance. It Improves flexibility and scalability of the system.

2.3 Existing Work


Many existing dynamic algorithms are often used to schedule a-periodic tasks and rarely used to schedule periodic tasks. Periodic tasks are mostly scheduled by static scheduling algorithms. Most existing dynamic homogeneous scheduling approaches target load balancing as the main motivation for dynamic reassignment of jobs and differ according to their accuracy and the amount of processor load information they exchange.

2.4 What Is Required?


We are interested in the distributed load balancing problem where load packets are generated and consumed dynamically during runtime in an unpredictable way. In practice, this problem has two possible variations: For some applications it is sufficient to balance the workload in a way that every processor has some load at any time. For others, it is necessary that all processors have nearly the same load at any time. In general, we consider the second type of application, but it will be shown that the balancing quality of our algorithm is scalable, thus making also an application to problems of the former type possible.

2.5 Expected End Product


In this project, we will propose algorithm, to develop a load balancing system for improving the utilization of distributed computing resources. Experimental results should be achieved in the process of distributed load balancing in heterogeneous environment of any LAN. These results must be verified on the basis of suitable graphs and required tables.

2.6 Technology
Dynamic approach executes schedules online. They respond to the systems current state and dynamically determine the feasibility of scheduling new tasks without jeopardizing the guarantees that have been provided for the previously scheduled tasks, so are able to provide better performance. Dynamic scheduling algorithms may again be divided into two categories: centralized and distributed. In a centralized approach, one of the nodes functions as a central coordinator. The central coordinator, having all the information of the system, is fully responsible for scheduling. In a distributed approach, the decision making for scheduling is distributed across the entire system consisting of several nodes. Each node, having the information of the entire system, is responsible for its own decision.

2.7 Project Model


5

In order to make optimal balancing and work distribution decisions in Distributed environment, The Model must have following considerations: Available capacity on each node (CPU, memory, disk space) Current load of each node Required capacity for each task Network connectivity and capacity Communication pattern for each task (if applicable) Choice of load index to use when measuring the performance of a node has a Considerable effect on the performance of the load balancer as a whole.

2.8 Testing & Evaluation


2.8.1 Performance Analysis Performance analysis is an iterative subtask during program development. The goal is to identify program regions that do not perform well. Performance analysis is structured into three phases: 1. Measurement Performance analysis is done based on information on runtime events gathered during program execution. The basic events are, for example, cache misses, start and stop of a subroutine or message passing operation.The information on individual events can be summarized during program execution (proling) or individual trace records can be collected for each event (tracing). 2. Analysis During analysis the collected runtime data are inspected to detect performance problems. Performance problems are based on performance properties, such as the existence of message passing in a program region, which have a condition for identifying it and a severity function that specifies its importance for program performance. 3. Ranking During program analysis the severest performance problems need to be identied. This means that the problems need to be ranked according to the severity. The most severe problem is called the program bottleneck. This is the problem the programmer tries to resolve by applying appropriate program transformations. 2.8.2 Workload Modelling:

Workload can be described as "the perceived relationship between the amount of mental processing capability or resources and the amount required by the task". Workload modelling is the analytical technique used to measure and predict workload.

2.9 Usage and Benefits


Load balancing and partitioning strategy are important components of parallel computations. Many different partitioning strategies have been developed, with great effectiveness in parallel applications. But the load-balancing problem is not yet solved completely; new applications and architectures require new partitioning features. Existing algorithms must be enhanced to support more complex applications. New models are needed for non-symmetric and highly connected systems arising from applications in biology, circuits, and materials simulations. Increased use of heterogeneous computing architectures requires load balancing that account for non-uniform computing, network, and memory resources. And, for greatest impact, these new capabilities must be delivered in toolkits that are robust, easy-to-use, and applicable to a wide range of applications.

REQUIREMENTS
1. Measure of load- a useful measure of processor load is needed, and the algorithm still must handle stale and incomplete load information. 2. Interoperability- The algorithm designed should be platform independent i.e. it should run on any operating system. 3. Interconnection of systems- There should be connection between the different processors so as to transfer the jobs to other processors. Load Balancing is done between different processors to balance the work load on the systems. 4. Flexibility- The load balancing algorithm must have flexibility in its initial allocation as a process can be moved at any time. 5. Security of Data- Secure transfer of data from one system to another system 6. Equal division of load- Load should be divided equally to the parallel systems. 7. Independent sharing- Sharing of the data to be done independently 8. Synchronization- Proper synchronization should be achieved. 9. Continuous Execution of jobs- The system should not remain idle. It should be busy executing a job at any given moment of time. 10. Processes should not wait in queue for a longer period.

FEASIBILITY STUDY
8

4.1 Preliminary Work Done : (8/10)


We studied annotated bibliographies of around 35 research papers and articles related to our topic, to understand the importance of Dynamic Load Balancing Concept .We also use Software Engineering methodologies for the timely and organized project development. Fundamentals of Algorithms helped us in better understanding of algorithms.

4.2

Resources Available : (8/10)

The requirements lists the need of Hardware Interfaces, which needs a high speed network card which can be supported by the Operating System and would be used as a medium of communication between computers. Languages used: VB.NET/JAVA All the required resources are available in order to implement the project. Source language used will be JAVA. We also have required OS and Software installed in our computers. Resource Availability Index (RAI) : (0 <= RAI <= 1) *EF + (1- )*EF RAI = -------------------------------10 Here, EF= Expertise Factor (0<= EF <= 10) . We can decide our Expertise Factor on the basis of knowledge of the subject and how well we can utilize the existing available resources. Expertise Factor (EF) = 8.0 Suppose = 0.1 Therefore, as per our knowledge, we can rank the Resources available as 0.8 on a scale of 0 to 1.

4.3

Confidence Factor : (8/10)

This factor accounts for how much we are able to exploit the resources available. Since, most of the resources mentioned above are easily accessible to us and we have studied around 34 research papers so our confidence level is high, which is good for any team to work in an organized and systematic manner.
9

Different parameters to decide the Confidence Factor are :


Available resources: We have all the hardware and software resources to develop

this project. CF1 = 0.8


Knowledge of the Subject: To develop the system it is required that we must have

knowledge of the basics of Computer Network & JAVA. On the basis of our knowledge we assume, CF2 = 0.8
Time Management: Time available to accomplish the project is sufficient, so all the

phases can be completed in expected time slots. We have 9 months to complete our project and as for now it is expected that we will successfully do it. CF3 = 0.85 Thus to calculate the confidence factor (CF) CF= Average (0.8, 0.8, 0.85) CF= 0.81 Therefore, the confidence factor, until now, can be considered to be 0.77 on a scale of 0 to 1.
4.4

Capability Index : (6.5/10)


It is the ability required to synergize the resources available. Since we are equipped with most of the resources, Our capability index shows that we will complete our work in the specified time limits. CI= RAI * CF CAPABILITY INDEX (CI) = (0.80 * 0.81) CI= 0.648

4.5

Relative Significance Factor (RSF) : (8/10)


It lies between : (0<=RSF<=10) This factor denotes the relative importance of a particular technology for a Specific Subsystem.
Technology 1 : Dynamic Load Balancing 10

Relative Significance Factor (RSF1) = 8


Technology 2 : JAVA

Relative Significance Factor (RSF1) = 8 RSF = Average (8,8) RSF = 8

4.6

Viability Index : (.65/1)


It ranges from : (0<= VI<= 1)

(CI*RSF) VI = ----------------------- (RSF)

0.648*8 + 0.648*8 VI = ---------------------------------------16

VI= 0.648 Interpretation of Viability Index (VI): VI > 0.7 (Proven Subsystem)
VI >= 0.4 (Development Possible) 11

VI >= 0.3 (Find technology gaps)

4.7 System Integration Factor : (8/10)


0<= SIF <= 10 The confidence factor and the capability index shows that we as a team are capable to test the subsystems and integrate them for a realizing system, in order to demonstrate the effectiveness of Load Balancing arrangement.

Different parameters to decide the System Integration Factor are :

Available resources : We have all the hardware and software resources to develop

this project. SIF 1 = 8


Knowledge of the Subject : To develop the system it is required that we must have

knowledge of the basics of Computer Network & JAVA. On the basis of our knowledge we assume, SIF 2 = 8
Time Management: Time available to accomplish the project is sufficient, so all the

phases can be completed in expected time slots. We have 9 months to complete our project and as for now it is expected that we will successfully do it. SIF3 = 8.5 Thus to calculate the System Integration Factor (SIF) SIF= Average (8, 8, 8.5) SIF= 8.1

4.8

System Realize-ability Index : ( 5.5/10)


0<= SRI <=10

12

The successful completion or development of a realizing system will depend upon the above mentioned factors and indices. Due to several different constraints, it is possible that the project might take some extra time to go-live or if there is any delay in availability of resources during the lifecycle of project development.

(VI*RIF)*SIF SRI = --------------------------------- (RIF)

(0.648*9 + 0.648*8 ) * 8 SRI = -----------------------------------17

SRI = 5.184

4.9 Inadequacy

Parameter 0:

This parameter portrays the dearth in the development of the project due to several constraints which includes time being the key constraint. We cannot compromise with the quality of the final functioning product.

IP = (1-CI) * RSF avg

8+8 RSF avg. = -----------------2

RSF avg. = 8

13

IP = (1-0.648) * 8

IP = 2.81

14

You might also like