Agent Based Grid Computing S. Faraz Mahmood, S. M. Aneel, Noman Juzar Lakdawala, Moiz Moin uddin National University of Computer And Emerging Sciences St-4, sector 17-D, ShahLatif Town on National Highway, Karachi, Pakistan Email: [email protected]

Abstract A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities. The key concept is the ability to negotiate resourcesharing arrangements among a set of participating parties (providers and consumers) and then to use the resulting resource pool for computational problems [1]. This research paper focuses on proposing a modified cost effective framework of a Grid Computing Environment that has most of its features from the domain of Grid Computing established by IBM [2] i.e. it must cater for the heterogeneous network environment, dynamic resource management and coordinated resource sharing. In addition the mobility, autonomous execution of the Software Agent[3] is also exploited to drive the Grid Computing Environment. The research of Grid Computing is mainly focused on Linux platform. Our Agent Based Grid Computing architecture focuses on platform independence. Keywords Parallel Computing, Resource Management, Grid Architecture, Software Agents Introduction The term 'grid' derived from the electricity grid, implying that any compatible device could be plugged in anywhere on the Grid and be guaranteed a certain level of resources, irrespective of the origin of those resources.[4] Grid computing evolved from the parallel processing systems of the 1970s, the large-scale cluster computing systems of the 1980s, and the distributed processing systems of the 1990s, and is often referred to by these names. Grid computing can make a more cost-effective use of

computer resources, can be applied to solve problems that require large amounts of computing power, and may be the forerunner of pervasive computing—computer applications that pervade our environment without our being aware of their presence.[4],[5] “Waste not, want not.” Following the above stated theme IBM has promoted the evolutionary area of Grid Computing [6], [7]. A number of research papers have been written by the IBM researchers regarding Grid Computing [8], [2], [9]. IBM has developed a toolkit for Grid based application development. This toolkit is more or less targeted towards the Linux platform. Now the Toolkit development is maintained by Globus as Globus Toolkit [10], [11]. The Globus Toolkit is a very rich set of tools to establish a Grid Computing Environment. It provides features like Resource Discovery, Security and Management etc [11]. Although the core services are available to any platform, but most of the services are only available to Linux platform [10]. Mobile Agents are also an evolving technology. Agents have the unique ability to transport themselves form one system in a network to another. The ability to travel allows mobile agents to move to a system that contains services with which they want to interact and then to take advantage of being in the same hosts or network as the service. The mobile agents reduce network traffic and provide an efficient means of overcoming network latency. Through their ability to operate asynchronously and independently of the process that created them, mobile agents help us to construct highly robust and fault-tolerant system [3]. We have merged the two emerging technologies of Software Agents and Grid Computing. Our

model of Grid Computing consists of Software Agents. The concept of Grids has evolved from another similar paradigm called PVM (Parallel Virtual Machine). In PVM, the nodes participating in the computation are fixed. The task is divided into certain number of smaller tasks which is divisible by the computing nodes which have to execute and evaluate the results [12]. While in Grid Computing, the number of participating nodes is not fixed and PCs dynamically join the virtual network [8].

OUR MODIFIED COST-EFFECTIVE FRAMEWORK •

• Parallelism • Usually Homogenous Environment • Fixed Network Configuration

• • •



The key features that have been enhanced in our proposed Agent Based Grid Architecture are: 1. resuming of tasks (by using software agents) after a CPU has returned back to its idle state 2. all the communication and the execution of tasks are handled by software agents 3. support of task migration is provided by our architecture due to the introduction of agents whereas in Globus Toolkit task migration isn’t supported. It handles fault tolerance by maintaining multiple copies of the task.

Dynamic Resource Management Coordinated Resource Sharing Open & Standard Protocol Non-trivial Quality of Service

Grid Comput

PVM

• • • • • •

Parallelism Dynamic Resource Management Coordinated Resource Sharing Open & Standard Protocol Mobility of code Autonomous Execution

• Agent Based Grid Computing

• Reactive • Autonomous • Goal-driven • Temporally continuous • Mobile

Agents

Figure 1: Agent Based Grid Computing is actually the combination of the above shown key features of PVM , Grid Computing and Software Agents.

Our architecture is actually a modification of Globus Toolkit by the introduction of software agents. By introducing software agents in the grid environment we have: 1. reduced the communication overhead. 2. provided support for task migration hence increasing the overall resource utilization Nowadays in Pakistan Linux is evolving but Microsoft maintains its greater share in market. Therefore these two different platforms provide an issue as currently Grid Computing is mainly being focused on Linux platform. So to provide platform independence we have two options: 1. JAVA platform 2. .Net platform As far as .Net is concerned it is not recommended to use .Net because currently there is no implementation of agents on .NET. Whereas JAVA is being focused a lot for the implementation of agents and agents have been implemented in JAVA [6]. Therefore our recommendation is to use JAVA as the core programming language for implementing the Agent Based Grid Computing Framework. So by introducing our modified framework we provide platform independence and thus this enables various platforms to integrate in forming a Grid Computing environment. Approach We have recommended the usage of MasterSlave design pattern for the development of the Agent Based Grid Computing Framework[3]. In our framework there is a single server and it is fixed. This server actually manages the grid, whereas the nodes are dynamic. It is the responsibility of the server to manage the entire grid. The Master agent has the logic for the distribution of processes into tasks and recompilation of the results. This logic is provided by the user. The tasks are then sent to nodes with idle CPU cycles in order to utilize the free CPU cycles. Programming Model On the basis of the proposed framework, we also propose a programming model, to exploit the features of the framework. This model is a derivation of Master-Slave Pattern. The user has to provide the distribution and re-compilation logic of the problem. This portion of the code is

called Master. Master has all the controlling logic. It divides the problem into small computable tasks which are called slaves. User has to specify its Master and Slave class files. There should be only one Master class, but one or more then one Slave files can exist. Along with the code, user must also specify three files: 1. Input 2.Output 3. Error which is equivalent to: a. StdIn b. StdOut c. StdError respectively. Input file is used to input Data, while Output file is used to write the output data. Error file is used to write the Error messages. The framework will provide its own threading construct which will be mapped to the agents. For each user process created, a thread will be started which will be executing the master logic code. During the execution, the master thread will create slave threads, which will be executing the slave code. These threads will be mapped to the Agents. The framework will provide necessary transparency to support the model. The master logic will be actually running as an agent. When a call to create a slave thread is made, a new task will be created and assigned to any available agent, which will execute it. The slave code will message back to the master after finisheing the task assigned to it. The messaging is supported through the agents framework. The pseudo-code for master logic: Master { void Initialize () { //do initialization here. } void CreateSlave(){ for i=0;i
The slave pseudo-code will be: Slave{ Void DoTask() { //performs computation //when done send message to master. }

Figure 3: slave logic pseudo code

To cater the resume support for the task, during task migration, as agents move from one host to another, some constructs will also be available, to the programmer. Currently, the agent framework does not support resuming the code. It maintains its state through data, the code executing within an agent can not be resumed. To solve the problem, we have two alternatives. The first one is to use JNI (JAVA Native Interface) to schedule the JVM through our framework. The second option is to provide a resume support layer which exposes it functionality via API(application programming interface) similar to transaction processing. Using JNI we can directly manipulate the underlying JVM. This will provide immediate access to manipulate the objects in the JVM(Java Virtual Machine). But we are accessing the system functionalities. The applications would be more Operating System aware, thus increasing the dependence on the Operating System.[13] On the other hand, providing a resume support layer in the frameowrk will keep the application more platform independent but at the same time the introduction of the layer which is providing an abstraction layer will create inefficiency. The performance of JNI based solution is more efficient as there will be no intermediate layer to translate calls from user programs to the framework. As far as performance is concerned, the first approach will provide the best performance, but it will make the framework more tightly coupled with the underlying operating system, therefore we opted for the later option. The framework will also provide the API for resuming the state of a task. To save the state of the variables, we can call the

framework the list of variables, while to resume the state we can call the framework the list of variables along with a checkpoint id, which is obtained in previous call. These two calls will be used in pairs. A sample pseudo code is given below: void afunc() { save all variables for loop resume variables perfrom computation save variables }

Figure 4: resume support pseudo code This is just a pesudo code to demonstrate the usage of the framework and its support for resuming the task support. Similar pattern can be adopted for other programming constructs e.g while, if , switch cases etc. Framework Following are the major components of the Architecture. 1)Process Manager: The job of the process manager is to manage the user process. It will maintain a data structure similar to the PCB. Major reponsiblities will include Process creation, Process termination, Task creation , Task termination ,Process and Task Scheduling. In addition to these, the process manager will also maintain process queue,which can be schedule using any scheduling algorithm e.g FCFS(First Come First Serve),PQ(Priority Queue),LCFS(Last Come First Serve) etc. Partitioning of the process (task creation) will also be managed by this component. 2)Resource Manager: This component will keep track of the agents:thier location and their status. It will also cater the reqeust for idle agent from task completed. 3)Process Allocator: The purpose of this component is to assign a task to an agent. It will take a

USER PROCESSES

PROCESS MANAGER

RESOURCE MANAGER

PROCESS ALLOCATOR

AGENT LAYER STATS ANALYZER

MANAGEMENT SERVER / HOST

Figure 5: Architecture Diagram task from Process Manager and an agent from Resource Manager, and then assign that agent the task. After assignment it will send the agent for execution. 4)Agents Manager: Agents manager will be responsible for creating and destroying agents. It will also maintains an agent pool. 5)Statistical Anaylser: This component will interact with the other components and collect the statistic from them. Statistical analyser will also be responding to the queries regarding the statistics of the grid. Recommendations In our proposed model, agents are representing computational resources. We can extend this concept to data agents, synchronization agents and service agents. Data agents will store data. Such agents’ interactions will form a huge distributed virtual memory that can be utilized in problem solving. Synchronization agents will serve as semaphores in order to deal with subtleties of intra agent communication. Such agents will ease

transaction processing and shared memory operations. Service agents will be an abstraction to hardware and software services, facilitating the user to use them by making a simple call to the API layer.

Host 2

Data Agent 2

Host 4

Host 1

Data Agent 1

Management Server

Data Agent 3

Data Agent Manager

Data Agent 6

Data agents are residing on different hosts, which are part of grid environment. Data Agent Manager will keep tracks of all data agents.

Host 5 Host 3 Data Agent 7 Data Agent 5

Data Agent 4

Figure 6: Data Agents – Resident on hosts

Data Agent 1

Data Agent 2

Data Agent 3

Data Agent 4

Data Agent 5

Data Agent 6

Data agents, when combined, can be viewed as a large distributed virtual memory that can fulfill the storage requirements of a problem.

Data Agent 7

Figure 7: Data Agents – forming memory

(1) Request to print the document

Management Server

Services Manager

Host A

(2) Assigns job to the printer agent

Host X

Printer Agent

Printer

Figure 8: Service Agent (3) Goes to the host having printer

Sample Application Exploiting IBM Aglets We deployed Tahiti Server (implemented by IBM aglets) to demonstrate the idea of using agents to divide and solve computational problems. The following figures depict the creation of Agents which is showing the division of the Matrix multiplication.

2.

3.

4. 5. 6. 7. Figure 9: Agents' creation on "TAHITI" server

8. 9.

10. 11.

Figure 10: Retracting Agents on remote server

Conclusion The key purpose for proposing this Agent based Grid Architecture is twofold: 1. to make the Grid Computing environment more efficient by exploiting Software Agents 2. to exploit platform independence In this research paper we have proposed a modified cost effective framework and a programming model to prove how the introduction of Software Agents in the Grid Environment can greatly enhance the efficiency of the Grid Computing Environment and how platform independence can be achieved by using JAVA as the core programming language. References 1. Ian Foster (2002). What is the Grid? A Three Point Checklist

12.

13.

Luis Ferreira, Viktors Berstis, Jonathan Armstrong, Mike Kendzierski, Andreas Neukoetter, MasanobuTakagi, Richard Bing-Wo, Adeeb Amir, Ryo Murakawa, Olegario Hernandez, James Magowan and Norbert Bieberstein (2003). Introduction to Grid Computing with Globus Danny B. Lange and Mitsuru Oshima(1998) Programming and Deploying JAVA™ Mobile Agents with Aglets™ http://www.itdirector.com/article.php?articleid=2865 http://www.encyclopedia.com/html/g1/ gridcomp.asp www-1.ibm.com/grid www106.ibm.com/developerworks/grid Viktors Berstis (2002) Fundamentals of Grid Computing Bart Jacob, Luis Ferreira, Norbert Bieberstein, Candice Gilzean, JeanYves Girard, Roman Strachowski and Seong (Steve) Yu (2003). Enabling Applications for Grid Computing with Globus www.globus.org Ian Foster and Carl Kesselman. Globus:A Metacomputing Infrastructure Toolkit Dr. Misbah U. Mirza, Dr. Asim-urRehman, Dr. Zubair A. Shaikh, Ovais A. Khan (2003). A Parallel Distributed Environment for Pakistan. http://www.java.sun.com/j2se/1.4.2/doc s/guide/jni/spec/jniTOC.html

Agent Based Grid Computing

agents to move to a system that contains services with which they want to interact and then to take advantage of being in the same hosts or network.

59KB Sizes 1 Downloads 300 Views

Recommend Documents

Agent Based Grid Computing
modified cost effective framework of a Grid. Computing ... Grid Computing architecture focuses on platform ..... director.com/article.php?articleid=2865.

Cloud Computing For Agent-Based Urban Transportation System - IJRIT
with the urban-traffic management system using intelligent traffic clouds. .... management systems is based on cloud computing which has two roles: service ...

Cloud-Computing-for-Agent-Based-Urban-Transportation-System.pdf
Cloud-Computing-for-Agent-Based-Urban-Transportation-System.pdf. Cloud-Computing-for-Agent-Based-Urban-Transportation-System.pdf. Open. Extract.

Cloud Computing For Agent-Based Urban Transportation System - IJRIT
traffic control and management based on real-time traffic conditions. .... [2] I. Foster et al., “Cloud Computing and Grid Computing 360-Degree Compared,” Proc.

difference between grid computing and cloud computing pdf ...
difference between grid computing and cloud computing pdf. difference between grid computing and cloud computing pdf. Open. Extract. Open with. Sign In.

Computing Dynamic Heterogeneous-Agent Economies ...
Jun 24, 2011 - Keywords: Numerical Solutions, Heterogeneous Agents, Projection Methods. JEL Codes: ..... analytic solution is also given. The OLG model is ...

what is grid computing pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. what is grid ...

Parallel Processing, Grid computing & Clusters
Clusters. 1. SERIAL COMPUTING. ➢ Traditionally, software has been written for serial .... “The primary advantage of distributed computing is that each node can ...

Computing Dynamic Heterogeneous-Agent Economies
Jun 24, 2011 - Feasibility is achieved by using Smolyak's (1963) sparse-grid ... to introduce a method for computing equilibrium in these models by ...... This is made clear in Figure 2 where a scatter plot of today vs ... today's shocks and capital

application of grid computing pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. application of ...

application of grid computing pdf
application of grid computing pdf. application of grid computing pdf. Open. Extract. Open with. Sign In. Main menu. Displaying application of grid computing pdf.

Grid Computing Looking Forward
fiber-optic cable that is already in the ground but not in use. A few technical hurdles still need to be overcome ..... PCI bus for attaching peripherals to a CPU in the early 1990s brought considerable improvement over the .... time with the tag rem

Some Basic Concepts of Grid Computing
that uses geographically and administratively dispa- rate resources. In grid ... Grid is a software environment that makes it possible to ... given amount of computer resources, (2) as a way to solve problems ... capacity among business groups that a

Agent Based Computational Economics
Oct 22, 2007 - of a simple interest rate change, aggregate savings movement is the result ..... agent is located in a high sugar level area, she will have a higher ...

AESCS2015_Service Ecosystem Innovation Agent-based Approach.pdf
A US-based international society with history of. more than fifty years. – A Nobel Laureate, I. Prigogine served as President in 1980s. • Past-Vice President of the ...