Image transformation using grid(synopsis)
-
Upload
mumbai-academics -
Category
Technology
-
view
177 -
download
0
Transcript of Image transformation using grid(synopsis)
Image Transformation using Grid
(Synopsis)
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.
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 (large-
scale 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 workHigh-
throughput applications include RSA key cracking, seti@home (detection
of extra-terrestrial communication)
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
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:
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
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 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 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.POV-
Ray 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
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 ray-
tracing 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.
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 computer-based
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.
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 ray-tracing 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
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:
Priority 1 – Essential requirement.
Priority 2 – Important requirement (should be included in a real grid).
FUNCTIONAL REQUIREMENTS
DYNAMIC HOSTING AND DEPLOYMENT OF APPLICATION TASK
REQUIREMENT PRORITY
Grid participant (clients, grid nodes) can
communicate over a TCP/IP-based intranet
or LAN.
1
Services are defined as Java byte code
(Java classes/jar files) that implements the
necessary interfaces.
1
Support for Windows 2000/XP with Java 2
SE 1.4.
1
Support for fault tolerance and high
availability
(reliability).
1
Support for Service descriptors – in form of
Java
interfaces.
1
Grid participants (clients and grid nodes)
can
Communicate over the Internet.
2
The Grid must be able to host applications defined by users and
uploaded dynamically.
FAULT TOLERANCE AND HIGH AVAILABILITY
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
requirement.
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
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