image transformation using grid(synopsis)

23
Image Transformation using Grid (Synopsis)

Upload: mumbai-academics

Post on 11-May-2015

175 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Image transformation using grid(synopsis)

Image Transformation using Grid

(Synopsis)

Page 2: 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.

Page 3: Image transformation using grid(synopsis)

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)

Page 4: Image transformation using grid(synopsis)

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]

Page 5: Image transformation using grid(synopsis)

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

Page 6: Image transformation using grid(synopsis)

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

Page 7: Image transformation using grid(synopsis)

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.

Page 8: Image transformation using grid(synopsis)

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.

Page 9: Image transformation using grid(synopsis)

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).

Page 10: Image transformation using grid(synopsis)

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.

Page 11: Image transformation using grid(synopsis)

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

Page 12: Image transformation using grid(synopsis)

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.

Page 13: Image transformation using grid(synopsis)

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).

Page 14: Image transformation using grid(synopsis)

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

Page 15: Image transformation using grid(synopsis)

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

Page 16: Image transformation using grid(synopsis)

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.

Page 17: Image transformation using grid(synopsis)

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

Page 18: Image transformation using grid(synopsis)

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