APPROACH FOR RESOURCE MANAGEMENT IN GRID ENVIRONMENTS USING GENETIC ALGORITHM

The use of ‘proper energy computation system’ is the best method to investigate the problem of energy deficiency, since energy consumption in computational resources is proportional with the work load in the applied program. Also, the best method to improve the use of resources and decrease in energy consumption is dynamic integration of virtual machines which can be a base for the integration of resources in independent systems through virtualization technology, so that it is possible to use resources and equipment for long time and consequently assuring quicker return of investment. Today, grid computation is a new technology connecting heterogeneous computational resources to each other; thus, this structure operates as an individual and integrated virtual machine. Then, it is possible to implement very complex applied programs requiring high processing capacity and huge amount of input data on this virtual machine. In this regard, the purpose of this study is to present an approach for resource management in grid environments using PSO and Genetic algorithms, and also ants colony to find the location of virtual machines.


INTRODUCTION
These days there is a huge amount of data and calculations, geographically distributed around the world and these have created some challenges of accessing, processing and distributing data. In fact, it is a tedious task to handle large amount of data to do complicated calculations. Data Grid is an alternative solution for these kinds of problems, which is an architecture for management analyses of large scientific data sets. Data Grid is a development concept based on a "Grid", which is an infrastructure for integrating distributed computational elements. In an advanced distributed environment of a grid, there are some data access matrices, response time, access cost [12].
Energy computation system is a suitable method to study the problem of energy deficien-cy through which energy consumption in computational resources is appropriate with work load. This method is performed somehow through acceptable technique of dynamic voltage and frequency scaling (DVFS). In this method, voltage and frequency of processor change based on current need to resource; as a result, desktop and server processors can consume less than 30% of electricity in low-activity mood causing dynamic electricity more than 70%. On the other hand, amount of dynamic electricity is much less for other sectors of server: less than 20% for dynamic random access memory (DRAM), 25% for disk drives, 12% for network switches and a little amount for other sectors. The reason of this low electricity is that just processor supports low electricity, but active mode and other sectors can partially or complementally be in OFF mode. Electricity deficiency in unemployed sectors of sever causes little dynamic electricity for server (30%), i.e. though a server is completely unemployed but still consumes more than 70% of electricity. Dynamic integration of virtual machines (VMs) is a method to improve the use of resources and decrease in energy consumption provided by virtualization technology. Virtualization enables server to establish various samples of virtual machine in an individual-physical server causing improvement in resource consumption and increase in return on investment (ROI). Integration without restriction can lead to performance degradation. Virtualization can be a base for resource integration of independent systems to use resources and equipment for long term and consequently assuring more rapid return on investment. Trust of service quality performed by agreements about the level of services between cloud suppliers and their costumers is necessary for cloud computing environments. Therefore, cloud suppliers must manage energyperformance relationship with decrease in energy consumption while considering condition of service quality.

VIRTUALIZATION
Virtualization is a technique that hidden physical features of resources and enables users' access to resources. This technique that is called 'virtual machine' and enables the separation or sharing computer resources between several environments simultaneously; so that these virtual machines can activate balance with/ without each other. In other words, virtualization is a process of virtual resource allocation and their management in several services so that applied programs can use virtual resources created in real resources. Virtualization technology is a tool to create a method with a function similar to a physical computer. Here, features of physical hardware are created through the use of software. In other words, virtualization creates software performing similar to hardware. This technology provides a possibility of installing an operator system on hardware without its physical existence. Virtualization differentiates application environment from host calculations, network hardware, and memories; this differentiation means logical classification of a device to several devices, or integration of several physi-cal devices in logical storage of resources and/ or both. Sever type of virtualization includes hardware virtualization, network virtualization, virtualization of storage resources, and virtualization of applied programs [11].
The other capability provided by virtualization is 'effective immigration', i.e. capability of transforming a virtual machine between physical servers related to loop or host with stop time close to zero. Using effective immigration, virtual machines can combine with small fluctuations dynamically and keep active physical servers at least in all times. Dynamic integration of virtual machine includes two main processes: 1. Immigration of virtual machines from used hosts to decrease the number of active hosts.

Discharge of virtual machines from hosts
when they have high loads; it is due to avoid performance degradation by virtual machines. Performance degradation can lead to violation from condition considered for service quality. However, dynamic integration of virtual machine is important in clouds since new programs have highly variable work load causing dynamic patterns of resource consumption; thus, infinite integration of virtual machine can lead to performance degradation [11].

Complete virtualization
The machine based on complete virtualization creates a perfect simulation of lower hardware; as a result, the established virtual machine as a real system can be infrastructure of different operator systems and all the applied programs. Here, a software layer lies between hardware resources and several operator systems. The model of middle layer might have up to 20% negative impact on efficiency when obtaining all procedures required by virtual machines. Further, when two virtual machines work on a single server at the same time, complete virtualization is not able to share resources in two adjacent virtual machines. For example, two virtual machines of type 'web' running on hardware of a server cannot share their web pages in each moment of use. Also, the main failure in complete virtualization could be host's operator system. In addition, complexity and constraints of scaling is another concern of complete virtualization [11].

Partial virtualization
Partial virtualization simulates some parts of lower hardware; in this method, most hardware features (but not all of them) are simulated. As a result, it creates virtual machines where some parts of software could be performed without change, i.e. input operator systems cannot be performed on a virtual machine but most applied programs can [11].

Semi-virtualization
Virtual machine based on semi-virtualization presents a software intermediate closely similar (not completely) to lower hardware. The difference between this virtual machine and that of complete virtualization is that the former change in order to recognize middle layer. This helps cloud supervisor to prevent their virtualization through substituting processor instructions with common procedures. This type of virtualization provides possibility of sharing memories between virtual machines without changing host's operator system.

Virtualization at level of operator system
This type of virtualization is a model in which operator system core creates several separate operator systems that are distinct in view of user. In UNIX systems, this technology can be recognized as and advances type of change mechanism of standard root; thus, the main OS installed on physical server provides the possibility of creating several secure virtual servers. Guest OS is completely similar to OS of a host running individually [2,8].
According to what was said, virtualization also has some benefits including: • Decrease in costs. Costs of organizations that use virtualization strategy are controlled significantly due to optimization of servers, decrease in hardware, decrease in occupied space, reduction in system's overall complexity, and decrease in consistency of applications. Thus, we can reduce hardware costs with virtualization due to decrease in physical constructs, physical location, and required power. Decrease in costs is performed by integration of smaller servers and creating bigger ones either reducing accreditation level of the obtained software; thus, overall saving is between 29-64% [2].
• Creating agility. Virtualization causes dynamic allocation of resources, readiness of hardware and systems for effective support of business growth, and ease supply in level of services. Database virtualization through effective sharing of resources would cause agility in business activities; therefore, virtualization respond to demands of internal and external costumer in terms of applied programs, speed, and efficiency [2].
• Simplification of procurement. Increase of computational resources can be accelerated through a hardware support process.
If a particular business activity needs additional abilities to supply its activities, then it is possible to add this capability through virtualization. Advanced virtual environment supplies computational load requirements automatically and performs dynamic resource allocation. The risks of lack of rapid access to resources would be removed by help of virtualization and supplying virtual resources dynamically. In fact, virtualization decreases access time to required resources up to 90%; as a result, it increases response of suppliers against advanced needs of customers [1].
• Increase of efficiency. Virtualization provides space to improve efficiency of applied programs and to enhance overall performance simultaneously; this is an effective factor for optimum implementation of available resources.

VIRTUAL MACHINE
Virtual machine refers to a system having parts of virtual system. Each virtual machine has its particular bios, OS, software, and hardware. The OS used in virtual machine is called 'guest operator system'. In fact, virtual machine is a computer performing apart from main computer that supports multiple performances of machine samples. Also, failure of a virtual machine has no effect on performance of other machined due to activity in separate environments. Virtual machines are composed of some files in which adjustments and resources delivered by hypervisor are registered. In virtual machines, it is possible to overflow resources that are referenced indirectly [11].

CLOUD COMPUTING
Most software and data storage systems need to perform on a hardware space with high accessibility and extensibility. In traditional approach of calculations, system resources are not used optimally and in a period of time, it is possible for a series of resources to be unemployed; in this typology, system failure in one of hardware parts would lead to service breakdown. On the other hand, providing necessary equipment to present services will require great investments. Applying hardware and software resources appropriate with overall needs is very extensive. In this regard, it is necessary to apply new methods and techniques in order to effective execution and to prevent loss of resource. Cloud computing is one of growing technologies attractive for scientific and trade communities, so that most countries and also great firms are investing and studying in this field. It must be noted that cloud computing relies on virtualization technology. As said before, virtualization is one of effective and useful ideas in order to increase efficiency of hardware and software systems; it is also proposed as a new technology providing integration of several hardware and software resources so that all users have access to their private environments. Virtual infrastructures provide virtualization techniques of resources and applications anywhere and anytime necessary. Some benefits of this method are decreased in main costs due to lower needs for hardware, and decrease in operational costs including maintenance and management; at the same time, increase of systems and available spaces would decrease the need to physical development of resources [6,7,8].

Main features of cloud computing
Cloud computing has mostly features similar to other computational styles, but correct use of these features caused superiority of this technique.
• extensive access to network: access to cloud resources is possible throughout the network with standard methods. This system uses the Internet to deliver and present services; thus, costumers of services need not to any specific hardware and software and they can enjoy cloud services just using a web browser. • rapid development capability: the principle of 'rapid development' performs well in cloud computing well. Expectation and viewpoint of costumers toward cloud computing is that they must be infinite and purchasable anytime with any scale. • choosing services based on demand: costumer can supply cloud computing of his/her resources without the need to interaction with service provider personnel; here, we pay money due to the use of resources. In this system, it is easily possible to demand for additional processors and/or memory and band width. • calculation service: one of other unique futures of cloud computing is measurement and report delivery to costumer. This calculation is performed based on services and resources used by costumers. • resource density: we a observe great amount of resources in cloud computing. Using virtualization, these resources are independent from their physical location. Therefore, they can move through the network easily and in fact all resources (databases, web servers, OS, applied software, storage media, and ...) appear in system as virtual servers. • multi-tenant: this feature increases applying non-used resources and provides possibility of sharing resources between a group of users. • cloud changes in life: since firms and trade brands are transforming their software on the web and these applications are displayed by browsers everyday with new and more interesting features, we are able to get access anything using any browser and computer without any boundary between our personal computer and internet.
In addition to features mentioned above, cloud computing has some advantages [6, 7, 8]: 1. Optimum efficiency of resources. Efficiency increases in system without need to pay, as it is possible to use available equipment without need to specific hardware. You will observe better efficiency of your PC because of fewer programs occupying its memory. In other words, computers with a cloud computing system are booted and installed more rapidly so once they have less programs and processes on the memory [ Hardware and software virtualization are used in cloud more than other items. Hardware vitalization is used in management of hardware equipment in a form of 'plug & play'. Therefore, it is possible to add hardware equipment to the system or remove them; also computational capacity and cloud storing space change dynamically. Software virtualization is used for software sharing [5].

GRID COMPUTING NETWORKS
Generally, grid computing is a new technology that provides remote access to resources using communication infrastructures, computer networks, and also valuable concepts and equipment of distribution systems. Today, we can connect heterogeneous computational resources using grid technology, so that this structure seems like an integrated virtual machine ;then, it is possible to perform very complex applied programs on this virtual; machine. For example, it is possible to connect multiple supercomputers, clusters, and personal computers all together. Grid has no constraints in terms of geographical location and type of resources under coverage. More generally, a grid network can cover multiple big clusters, several microchips, and thousands of personal computers and work stations throughout the world; it also provides high level connection of these heterogeneous computers and identifies different resources and remote access to them. In fact, connection to one of grid networks provides access to high computational power performing huge projects. On the other hand, grid provides cooperation of several firms throughout the world in the field of joint projects; it establishes an appropriate field to realize dynamic virtual firms [1,2].
In fact, grid technologies can support decentralized resources and systems and provide connection of systems with each other. When grid was invented for the first time, its goal was just sharing system's resources and having a powerful system; generally, it was in hand of research institutes. But today, grid has more importance especially in e-commerce and distributed trade systems. For example, let's assume B2B e-commerce model in which two trade institutions exchange their information through internet; in a similar manner, grid can connect two or more trade systems so that firms can share their information. Grid technology also can be a proper solution for access increases, reliability and security of decentralized systems. Parts forming grid are: • user link, • security members, • workload management, • scheduler, • data management, • resource management.
Grid computational networks are a set of several systems with different computational power that altogether forms a virtual supercomputer to perform most complex calculations of math, astronomy, biology, etc. in a very short time. The standard of computational networks is to ignore concerns caused by hardware constraints of computer systems. In computational networks, resources (i.e. physical ones) are similar between several users in the network. Each user shares his/her demands with other users simultaneously; thus, processes and works are done by several users independently and each demand is different from others. Resource management usually receives works with different calculations, speed, and measures; then, it assigns these input processes to computational nodes available in network. Now, grids are available in 3 forms: 1. Cluster grids as the simplest type of this system are a set of computers working together; they create an access point to system for users of a specific project or organizational sector.
2. Campus grid allows various projects and organizational sectors to share their computer resources. Organizations can use this type of system to manage great amount of tasks ranging from trade processes of organizations to data mining.
3. Global grid is a set of several campus grids going beyond organizational boundaries to create a huge virtual system. Users can access computer resources beyond what they have in organization.
In this regard, researchers conducted several studies of the field. Khana et al. proposed a dynamic management algorithm that starts when a physical server is loading more or less than standard value. Main goals of algorithm are: • assuring lack of failure in SLAs (SLA is power and response time), • minimizing immigration costs, • optimization of system's maintained capacity and minimizing number of physical servers.
The other project to study SLAs is proposed by Babrov et al. They suggest and evaluate dynamic server integration algorithm to decrease required capacity and SLA error rate. This algorithm uses historical data to predict further demand and relies on periodic performance to minimize the number of physical servers. Spitamp and Bichler describe linear programming for integration problems of dynamic and static server. They also designed development constraints to limit the number of virtual machines in physical servers assuring that some virtual machines are related to different physical servers. Mapping virtual machines relates to a specific set of physical servers including some unique features and limiting the total number of immigration for dynamic integration. In addition, they proposed a method to minimize cost of linear programming formulation. Mahta and Nogy introduced 'Recon' with purpose of dynamic server integration in clusters of data centers. Recon investigates dynamic and static costs of physical service providers, costs of VM immigration and historical resources to present an optimum and dynamic program to physical mapping server during time. Similarly, Verma et al. developed p-Mapper architecture and a set of server integration algorithm for heterogeneous virtual resources. Algorithms calculate power, immigration costs, and performance profitability in physical server during integration of applied programs. Wood et al. developed 'sandpiper' system to monitor and recognize important points and re-mapping. sandpiper classifies them using volume to size ratio (VSR) that is a metric based on processor, network, and physical server; it tries to transform most VMs overloaded in a physical server to a server with enough additional capac-ity. Besides several methods available for server integration, we also study the fact that VMs have fixed loads; thus, users must experience such stability. Further, keeping VMs on their main physical servers will reduce partial error. Recently, problem of determining location of virtual machines is highly attractive since virtualization is one of the main subjects in cloud computing; the goal is reducing energy consumption in data centers. In an algorithm, finding location is a hierarchy that considers requirements of processing resources, communications, and also availability. We use birds' algorithm to optimize performance costs of virtual machines, their running time and cost of communications between resources leading to answer close to optimum [6,7,8].

METHODOLOGY
The research method includes several consecutive steps: 1. Main definitions and concepts in virtualization space.

Theoretical analysis of dynamic integration
virtual machine algorithms. 3. Study of problems related to virtual machine dynamic integration in cloud computing environment. 4. Applying PSO, genetic, and ant algorithms to determine location of virtual machines. 5. Evaluation of algorithm proposed through event virtual simulation using clouds.
Since target system is a 'service infrastructure', a cloud computing environment is necessary to evaluate algorithms proposed for a database infrastructure [10].

RESULTS
Using the data of the detailed work, all possible combinations of four proposed algorithms were simulated to determine host overload (LPR, LR, MAD, and IQR) and four selection algorithms (MMT, VM, MC and RS). In addition, we used genetic and ant algorithms to determine location of virtual machines (Figures 1-5   of VM is more important than minimizing a correlation between specific VMs of a host. 3. Host overload detection algorithms that are based on local regression perform thresholdbased algorithms because of reduction in SLA violation level and number of immigration of VMs. 4. LR algorithm yields better results than its fixed version; since what is important for simulated workload is rapid reaction to load pulses, not prepare rapture samples. 5. To detect location of virtual machines, algorithm of ants colony yields better results than that of two other algorithms.

CONCLUSIONS
Virtualization can be a base to integrate the resources of independent systems, so that we can use resources and equipment for a longer period by help of this technology and to ensure quicker return on investment. Also, cloud providers must manage performance-energy relationship by reducing energy consumption while considering the quality of services. In this article, virtual machine assignment was described as an optimiza-tion problem. To solve this optimization problem, algorithm of ants colony was proposed for effective search of extensive mode space. On the other hand, live immigration technique was used to optimize location of virtual machines. Also several experiments were performed by simulation to investigate the efficiency of the proposed method. The results showed that the proposed method has a better performance than problem solving known methods in terms of waste in electrical energy and resources. Further, studies showed that time delay caused by virtual machine immigration will have a little impact on the efficiency of these machines.