2. INTRODUCTION
In this chapter we seek to provide a background for the term
grid that Essential in this thesis. We explore the short history of the grid
and go on discussing various definition of the grid.
HISTORY OF GRID TECHNOLOGY
THE BEGINNING
In the early to mid 90s several specific grid projects were
begun. At the time they were called meta computing projects but they
paved the way for several of today’s grids. [Roure 2002].
The FAFNER project [Fafner 1996] that used computational web
servers, As the nodes in the grid were one of these projects. FAFNER
were able to run on computers with as little as4mb of ram and the
FAFNER effort won the TeraFlop challenge at Supercomputing in 1995.
Another project at that time were the I-WAY project that were
an experimental network linking supercomputers at 17 US sights
together with a heterogeneous network.
3. I-WAY paved the way for projects like Globus. [Globus 2002]
Both FAFNER and I-WAY were difficult to set up. When running FAFNER
you had to compile, link and run a client to participate in the FAFNER
network. I-WAY’s front-end were special UNIX servers that
were configured the same way for every I-WAY making access to I-WAY
uniform.
DISTRIBUTED SUPERCOMPUTING
Distributed Supercomputing applications couple multiple
computational resources - supercomputers and/or workstations
Distributed supercomputing applications include SFExpress (largescale modeling of battle entities with complex interactive behavior for
distrtibuted interactive simulation), Climate Modeling (modeling of
climate behavior using complex models and long time-scales)
HIGH-THROUGHPUT APPLICATIONS
Grid used to schedule large numbers of independent or loosely
coupled tasks with the goal of putting unused cycles to workHighthroughput applications include RSA key cracking, seti@home (detection
of extra-terrestrial communication)
4. DEFINING THE GRID
GRID DEFINITION
What is a grid? In the Merriam-Webster dictionary the word
grid is: “a network of conductors for distribution of electric power” One
might think of a computer grid the same way – a way to distribute
compute power.
Different people use different words to describe this area of
computing. Dr. Ian Foster, one of the leads behind the Globus project,
describes grid technology talking about sharing resources as:
“Grid technologies seek to make this possible, by providing
the Protocols, services and software development kits needed to enable
flexible, controlled resource sharing on a large scale”.
[Foster 2000]
viktors berstis of ibm states it:
Grid computing, most simply stated, is distributed computing
taken to the next evolutionary level. The goal is to create the illusion of
a simple yet large and powerful self managing virtual computer out of a
5. large collection of connected heterogeneous systems sharing various
combinations of resources.[Berstis 2002]
Grid start, an eu funded initiative, defines it as:
The GRID is widely seen as a step beyond the Internet,
incorporating pervasive high-bandwidth, high-speed computing,
intelligent sensors and large-scale databases into a seamless pool of
managed and brokered resources, available to industry, scientists and
the man in the street.[Grid start 2002]
VARIOUS FORMS OF GRID
There are different variations of grids and different ways of
categorizing them.
• Computational grids - the distributed compute resource consisting of
different hardware
• Data grids - distributed large-scale databases
• Access grids – distributed audio-visual equipment like video monitors,
Cameras,
microphones aso.
ANOTHER WAY TO CATEGORIZE TYPES OF GRIDS IS THE LEVEL OF
DEPLOYMENT THEY ARE TO BE:
6. 1) Cluster Grids are grids typically used within a single project for a
certain task at a time. This type of grid is for instance groups of
multiprocessor High Performance systems and networks of
workstations
2) Enterprise Grids are a collection of cluster grids within the same
geographical location
3) Global Grids is a collection of enterprise grids linking different
geographical locations together traditionally using the internet at
the net which links the enterprise grids together.
FIGURE 1.1 TYPES OF GRID
7. CONTEMPORARY GRID PROJECTS AND PRODUCTS
OVERVIEW OF GRID COMPUTING:
Grid Computing is about making large amounts of compute
power available for applications and users. Collaborative development of
Java Grid Engine technology provides the proper development
framework to ensure that Grid Engine technology meets the
requirements of the largest number of users.
Grid Engine is helpful in three elementary ways. It can:
1. optimally place computing tasks and balance the load on a set of
networked computers
2. allow users to generate and queue more computing tasks than can be
run at the moment
3. Ensure that tasks are executed with respect to priority and to
providing all users with a fair share of access over time.
Grid Engine presents users a seamless, integrated computing
capability. Grid Engine is used to support a wide variety of
requirements; for instance, where users start many interactive and
batch tasks as in product design or financial simulations; where sets of
repetitious tasks are run as in software QA; where large numbers of
8. users are placing jobs on limited resources as in education
environments; and where users are launching parallel applications
across massive numbers of processors for applications such as weather
simulation.
MERITS OF THE GRID COMPUTING:
The merits of the grid computing over the distributed computing are
listed below
Cost-effective
Distributed Geography
Scalable of Resources
Reliable Network
Zero Latency
Infinite Bandwidth
Secured Network
Heterogeneous Network is also Possible
THE FUTURE
The word “grid” is already used to describe the electrical grid
we use every day to power almost everything. No one thinks twice
about plugging in an electrical appliance. Perhaps, in the future, we
might look at grid computing at we look at electrical power today. You
9. simply plug your appliance in and you pay for the amount of processing
power you use.
WHAT IS POV RAY?
POV-Ray is a high-quality, freely available ray-tracing software
package that is available for PC, Macintosh and UNIX platforms. Yes,
that's right, it's free! If you're a programmer interested in POV-Ray, you
can also pick up a copy of the source code without charge. POV-Ray is
perhaps one of the most commonly used ray-tracing software to date,
because of its relative ease of use, cheap price, and high quality.POVRay is one of the most popular ray-tracing programs to date.
POV-Ray is no toy. Despite not generating any direct income
from their POV-Ray software, the POV-Ray Team has managed to create
a commercial-quality product and, in the true spirit of the Internet,
distribute it widely and without charge. As a consequence, POV-Ray is
one of the most popular ray-tracing programs to date.
POV-Ray is what is known as a "rendering engine". What this
means is that POV-Ray will take a file as input and generate an output
file, but does not have much in the way of interface
10. 1. What type of object you want (one of POV-Ray's simple objects or
one you've created yourself); and
2. Various attributes of the object (its color, how it reflects light,
etc).
WHAT IS RAY-TRACING?
Ray-tracing is a method of creating visual art in which a
description of an object or scene is mathematically converted into a
picture. In more precise terms, ray-tracing is the process of
mathematically generating near-photorealistic images from a given
description of a scene via geometrical modeling of light rays.
Ray-tracing can generate very beautiful and complex scenes,
and can open exciting possibilities as a new method of creating visual
art. One of the most important advantages of computer-based raytracing over more "orthodox" art forms is that it removes the need for
technical skills (such as the ability to paint, draw, or sculpt) that may
take years to master, and places the burden on the computer. This
leaves the user to be as creative as possible, without having to spend
years learning difficult skills.
11. Ray-tracing can require millions and even billions of complex
mathematical calculations and, as such, is usually done by computer
(and even then, is not a speedy process). Usually, in the computerbased ray-tracing procedure, a file containing the description of a scene
(in terms that the ray-tracing software can understand, and usually in
some human-readable format) is converted, by the computer, into an
actual image of the scene.
HOW DOES RAY-TRACING WORK?
We won't go into all the gory details, but having a general
understanding of what's going on behind the scenes (so to speak) can
be helpful when you start ray-tracing your own images. Although there
are several methods of ray-tracing, one of the most common (and the
one the POV-Ray software package uses) works something like this:
First, an internal model of the scene is generated, with your computer
screen included as the receiving "eye" in the model. Then, the software
traces imaginary light rays backwards from where their endpoint lies (a
pixel on your computer screen) to their initial point (some light source in
the scene). This step is repeated, pixel by pixel, until the entire image
has been created.
12. The reason the software traces the light rays backwards,
instead of starting at the light source, is for efficiency's sake -- if a light
ray doesn't end up on your screen, then you, as the user, don't care
about it (because you'll never see it). By tracing the light rays
backwards, beginning at the computer screen, the software can assure
that every light ray it calculates is one you care about, because it knows
that it will end up on your screen.
In their journey, the light rays can be reflected by mirrors, refracted by
glass, or undergo various other contortions, all of which result in a
single pixel of the final image. Because the ray-tracing software must
trace one ray of light for each pixel in the output image, and because
the light rays can undergo so many contortions, the process of raytracing can take a very long time, depending on the size and complexity
of the image and the processing power of your computer. Unless you
have an extraordinarily fast computer, you will most likely find yourself
waiting around impatiently for your scene to finish rendering once
you've begun to ray-trace in earnest.
REQUIREMENTS
This chapter describes requirements, purpose and goals of the
Java Grid Prototypes. Goals and requirements are structured in the
following sections:
Purpose and goals – defines the overall goals of the prototype.
Requirements – defines the functional and technological requirements
of the prototype.
Primary use cases – describes the functionality of the prototype as a
13. set of primary
Use
cases or scenarios.
PURPOSE ANS GOALS
The purpose and goal of the Java Grid prototypes are to show
that a grid system based on the distributed nature of Java can be build
and that it solves many of the difficult problems in distributed systems
and grid technology rather smoothly .It is not the intension to create a
complete system that engages and solves all problems and problem
areas of grid computing and distributed systems in general.
REQUIREMENTS
In this section we will list functional and technological
requirements that the Java Grid prototypes will have to meet. To define
the functionality of the prototypes requirements are defined as both
positive (included) and negative (excluded) requirements.
OVERVIEW OF REQUIREMENTS AND PRIMARY USE CASES
The requirements are listed in the following. All requirements
are prioritized according to their importance in realizing a system for
real.
The priority levels can be summarized like this:
14. Priority 1 – Essential requirement.
Priority 2 – Important requirement (should be included in a real grid).
REQUIREMENT
PRORITY
Grid participant (clients, grid nodes) can
1
communicate over a TCP/IP-based
intranet or LAN.
Services are defined as Java byte code
1
(Java classes/jar files) that implements
the necessary interfaces.
Support for Windows 2000/XP with Java 2
1
SE 1.4.
Support for fault tolerance and high
1
availability
(reliability).
Support for Service descriptors – in form
1
of Java
interfaces.
Grid participants (clients and grid nodes)
can
Communicate over the Internet.
2
15. FUNCTIONAL REQUIREMENTS
DYNAMIC HOSTING AND DEPLOYMENT OF APPLICATION TASK
The Grid must be able to host applications defined by users and
uploaded dynamically.
FAULT TOLERANCE AND HIGH AVAILABILITY
16. When hosting an application task (job or service) the Grid must
provide high availability features that can guaranty that if the machine
or server node hosting the task crashes another machine or server node
in the Grid can take over after a short delay and carry on as if nothing
has happened.
SCALABILITY
Scalability can have several aspects:
•
Many concurrent operations
•
Many simultaneous clients
•
Large amounts of data
SECURITY
Security of the Grid involves many aspects of authentication
and authorization.
TECHNOLOGICAL REQUIREMENTS
Supported operating systems and runtime environments The
prototype will run on Windows XP Professional with Java 2 Standard
Edition version 1.4 (J2SE 1.4) installed. Since the Grid is written in Java
it can properly run on must Windows and Unix/Linux-based operating
systems for which J2SE 1.4 is available. This is however not a
18. PROBLEM DEFINITION
The Existing Model of our Project is the Cluster Computing.
In Cluster Computing the nodes have some restrictions. They must be
homogeneous in resources. The bandwidth used by a cluster network is
high, so network traffic is high. It is restricted to geography. Resources
of heterogeneous nature are not applicable. Distributed geography
cannot be achieved. Scalability of resources is not possible. Due to the
above disadvantages, the time taken for execution is more. So to
overcome all these disadvantages, the proposed system was developed.
Grid Computing allows using the unutilized resources of other
systems. This is achieved by distributing the workload of the system to
the other systems in order to use their un-used resources such as their
memory, Processor, etc which results in balancing the workload,
decreasing the network traffic, bandwidth, etc. This concept is used in
our project to render a large image in a very short time by distributing
the image to many systems for using their resources
19. MODULARIZATION OF THE PROJECT
Java Grid project is divided into three modules server,
client and worker
•
SERVER MODULE
User interface Job Scheduler
Workload Management
Resource Management
Data Management
•
WORKER MODULE
Job Requests Receiver
Job Processing Manager
Job Requests Sender
•
CLINET MODULE
Job Fragmenter
Job Requests Sender
Job Results Receiver
Job Results Aggregator