Tuesday, 30 June 2015

Priority Scheduling in Cloudsim Using AHP!!

             

               

Heyloo friends,

                       
                       I tried priority scheduling in cloudsim using AHP(Analytical hierarchical Process).AHP is just a theoretical method of finding out the priorities using some mathematical calculations.The output of AHP is just priorities and it is most efficient method of finding priorities.
so,below i gave the code by which  i got the folloeing output.I dint make any changes in DatacenterBroker.java file i just created a new class file and wrote the following code.But the problem is everything is working right but if you observe in the output all the burst times are same..It shouldnt be like that i tried alot but failed..I would be grateful if anyone could find the error or add any kind of code so that their burst times are correct.


Step 1:
Code which i saved as PJSC.java.


package org.cloudbus.cloudsim.examples;
/*
* Title:       CloudSim Toolkit
* Description:  CloudSim (Cloud Simulation) Toolkit for Modeling and Simulation
*               of Clouds
* Licence:      GPL - http://www.gnu.org/copyleft/gpl.html
*
* Copyright (c) 2009, The University of Melbourne, Australia
*/

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
import org.cloudbus.cloudsim.Cloudlet;
import org.cloudbus.cloudsim.CloudletSchedulerTimeShared;
import org.cloudbus.cloudsim.Datacenter;
import org.cloudbus.cloudsim.DatacenterBroker;
import org.cloudbus.cloudsim.DatacenterCharacteristics;
import org.cloudbus.cloudsim.Host;
import org.cloudbus.cloudsim.Log;
import org.cloudbus.cloudsim.Pe;
import org.cloudbus.cloudsim.Storage;
import org.cloudbus.cloudsim.UtilizationModel;
import org.cloudbus.cloudsim.UtilizationModelFull;
import org.cloudbus.cloudsim.Vm;
import org.cloudbus.cloudsim.VmAllocationPolicySimple;
import org.cloudbus.cloudsim.VmSchedulerTimeShared;
import org.cloudbus.cloudsim.core.CloudSim;
import org.cloudbus.cloudsim.provisioners.BwProvisionerSimple;
import org.cloudbus.cloudsim.provisioners.PeProvisionerSimple;
import org.cloudbus.cloudsim.provisioners.RamProvisionerSimple;

/**
* A simple example showing how to create a datacenter with one host and run one
* cloudlet on it.
*/
public class PJSC {

/** The cloudlet list. */
private static List<Cloudlet> cloudletList;

/** The vmlist. */
private static List<Vm> vmlist;

/**
* Creates main() to run this example.
*
* @param args the args
*/
static int[] ids;
@SuppressWarnings("unused")
public static void main(String[] args) {

Log.printLine("Starting CloudSimExample1...");

try {
// First step: Initialize the CloudSim package. It should be called
// before creating any entities.
int num_user = 1; // number of cloud users
Calendar calendar = Calendar.getInstance();
boolean trace_flag = false; // mean trace events

// Initialize the CloudSim library
CloudSim.init(num_user, calendar, trace_flag);

// Second step: Create Datacenters
// Datacenters are the resource providers in CloudSim. We need at
// list one of them to run a CloudSim simulation
Datacenter datacenter0 = createDatacenter("Datacenter_0");

// Third step: Create Broker
DatacenterBroker broker = createBroker();
int brokerId = broker.getId();

// Fourth step: Create one virtual machine
vmlist = new ArrayList<Vm>();

// VM description
int vmid = 0;
int mips = 1000;
long size = 10000; // image size (MB)
int ram = 512; // vm memory (MB)
long bw = 1000;
int pesNumber = 1; // number of cpus
String vmm = "Xen"; // VMM name

// create VM
Vm vm = new Vm(vmid, brokerId, mips, pesNumber, ram, bw, size, vmm, new CloudletSchedulerTimeShared());

// add the VM to the vmList
vmlist.add(vm);

// submit vm list to the broker
broker.submitVmList(vmlist);

// Fifth step: Create one Cloudlet
cloudletList = new ArrayList<Cloudlet>();
// Creates a container to store Cloudlets
LinkedList<Cloudlet> list = new LinkedList<Cloudlet>();
// Cloudlet properties
int id = 0;
long length = 400000;
long fileSize = 300;
long outputSize = 300;
UtilizationModel utilizationModel = new UtilizationModelFull();
         //  double priority = 0;
/*Cloudlet cloudlet1 = new Cloudlet(id, length,priority, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
cloudlet1.setUserId(brokerId);
cloudlet1.setVmId(vmid);
id++;
Cloudlet cloudlet2 = new Cloudlet(id, length,priority, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
cloudlet2.setUserId(brokerId);
cloudlet2.setVmId(vmid);
id++;
Cloudlet cloudlet3 = new Cloudlet(id, length,priority, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
cloudlet3.setUserId(brokerId);
cloudlet3.setVmId(vmid);
id++;
Cloudlet cloudlet4 = new Cloudlet(id, length,priority, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
cloudlet4.setUserId(brokerId);
cloudlet4.setVmId(vmid);
id++;
*/
Cloudlet[] cloudlet = new Cloudlet[5];
int userId=0,cloudlets=0,idShift=0;

for(int i=0;i<4;i++)
{
cloudlet[i] = new Cloudlet(  idShift + i, length, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel, utilizationModel);
cloudlet[i].setUserId(brokerId);
cloudlet[i].setVmId(vmid);
}
 
A a=new A();
   int i,j;
   float[][] resource=new float[3][3];
float[] eigen1=new float[3]; 
float[] pv=new float[3];
float[] f=new float[4];
//resource matrix
System.out.println("enter the resource matrix");
Scanner sc =new Scanner(System.in);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
resource[i][j]=sc.nextFloat();
}
}
for(j=0;j<3;j++)
{
for(i=0;i<3;i++)
{
eigen1[j]+=resource[i][j];
}
}
for(j=0;j<3;j++)
{
System.out.println(eigen1[j]);
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
resource[j][i]=resource[j][i]/eigen1[i];
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
System.out.println(resource[i][j]);
}
}
System.out.println("CSE2");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
pv[i]+=resource[i][j];
}
pv[i]=pv[i]/3;
}

for(j=0;j<3;j++)
{
System.out.println(pv[j]);
}
for(j=0;j<3;j++)
{
a.jungle();
}
System.out.println("Priority Order");
for(j=0;j<4;j++)
{
f[j]=0;
}

for(j=0;j<4;j++)
{
for(int k=0;k<3;k++)
{
f[j]+=pv[k] * a.pv1[j][k];
}

}
 


for(j=0;j<4;j++)
{
System.out.println(f[j]);
}
int[] ids={0,1,2,3};
for(j=0;j<4;j++)
{
for(i=j+1;i<4;i++)
{
if (f[j]<f[i])
{
float temp;
temp=f[j];
f[j]=f[i];
f[i]=temp;
int t;
t=ids[j];
ids[j]=ids[i];
ids[i]=t;
}
}
}
System.out.println("sorted priorities");
for(i=0;i<4;i++)
{
System.out.println(f[i]+"\t"+ids[i]);
}
// add the cloudlet to the list
for(i=0;i<4;i++)
{
cloudletList.add(cloudlet[ids[i]]);
}
          /*cloudletList.add(cloudlet[1]);
cloudletList.add(cloudlet[2]);
cloudletList.add(cloudlet[3]);
cloudletList.add(cloudlet[4]);
 */

// submit cloudlet list to the broker
broker.submitCloudletList(cloudletList);
//bind the cloudlets to the vms. This way, the broker
        // will submit the bound cloudlets only to the specific VM
for(i=0;i<4;i++)
{
broker.bindCloudletToVm(cloudlet[ids[i]].getCloudletId(),vm.getId());
}
       /* broker.bindCloudletToVm(cloudlet[1].getCloudletId(),vm.getId());
        broker.bindCloudletToVm(cloudlet[2].getCloudletId(),vm.getId());
        broker.bindCloudletToVm(cloudlet[3].getCloudletId(),vm.getId());
        broker.bindCloudletToVm(cloudlet[4].getCloudletId(),vm.getId());*/


// Sixth step: Starts the simulation
CloudSim.startSimulation();

CloudSim.stopSimulation();

//Final step: Print results when simulation is over
List<Cloudlet> newList = broker.getCloudletReceivedList();
printCloudletList(newList);

Log.printLine("PJSC Successfully Executed!!!");
 catch (Exception e) 
   {
   e.printStackTrace();
    Log.printLine("Unwanted errors happen");
   }
}

/**
* Creates the datacenter.
*
* @param name the name
*
* @return the datacenter
*/
private static Datacenter createDatacenter(String name) {

// Here are the steps needed to create a PowerDatacenter:
// 1. We need to create a list to store
// our machine
List<Host> hostList = new ArrayList<Host>();

// 2. A Machine contains one or more PEs or CPUs/Cores.
// In this example, it will have only one core.
List<Pe> peList = new ArrayList<Pe>();

int mips = 1000;

// 3. Create PEs and add these into a list.
peList.add(new Pe(0, new PeProvisionerSimple(mips))); // need to store Pe id and MIPS Rating

// 4. Create Host with its id and list of PEs and add them to the list
// of machines
int hostId = 0;
int ram = 2048; // host memory (MB)
long storage = 1000000; // host storage
int bw = 10000;

hostList.add(
new Host(
hostId,
new RamProvisionerSimple(ram),
new BwProvisionerSimple(bw),
storage,
peList,
new VmSchedulerTimeShared(peList)
)
); // This is our machine

// 5. Create a DatacenterCharacteristics object that stores the
// properties of a data center: architecture, OS, list of
// Machines, allocation policy: time- or space-shared, time zone
// and its price (G$/Pe time unit).
String arch = "x86"; // system architecture
String os = "Linux"; // operating system
String vmm = "Xen";
double time_zone = 10.0; // time zone this resource located
double cost = 3.0; // the cost of using processing in this resource
double costPerMem = 0.05; // the cost of using memory in this resource
double costPerStorage = 0.001; // the cost of using storage in this
// resource
double costPerBw = 0.0; // the cost of using bw in this resource
LinkedList<Storage> storageList = new LinkedList<Storage>(); // we are not adding SAN
// devices by now

DatacenterCharacteristics characteristics = new DatacenterCharacteristics(
arch, os, vmm, hostList, time_zone, cost, costPerMem,
costPerStorage, costPerBw);

// 6. Finally, we need to create a PowerDatacenter object.
Datacenter datacenter = null;
try {
datacenter = new Datacenter(name, characteristics, new VmAllocationPolicySimple(hostList), storageList, 0);
} catch (Exception e) {
e.printStackTrace();
}

return datacenter;
}

// We strongly encourage users to develop their own broker policies, to
// submit vms and cloudlets according
// to the specific rules of the simulated scenario
/**
* Creates the broker.
*
* @return the datacenter broker
*/
private static DatacenterBroker createBroker() {
DatacenterBroker broker = null;
try {
broker = new DatacenterBroker("Broker");
} catch (Exception e) {
e.printStackTrace();
return null;
}
return broker;
}

/**
* Prints the Cloudlet objects.
*
* @param list list of Cloudlets
*/
private static void printCloudletList(List<Cloudlet> list) {
int size = list.size();
Cloudlet cloudlet;

String indent = "    ";
Log.printLine();
Log.printLine("========== OUTPUT ==========");
Log.printLine("Cloudlet ID" + indent + "STATUS" + indent
+ "Data center ID" + indent + "VM ID" + indent + "Time" + indent
+ "Start Time" + indent + "Finish Time");

DecimalFormat dft = new DecimalFormat("###.##");
for (int i = 0; i < size; i++) {
cloudlet = list.get(i);
Log.print(indent + cloudlet.getCloudletId() + indent + indent);

if (cloudlet.getCloudletStatus() == Cloudlet.SUCCESS) {
Log.print("SUCCESS");

Log.printLine(indent + indent + cloudlet.getResourceId()
+ indent + indent + indent + cloudlet.getVmId()
+ indent + indent
+ dft.format(cloudlet.getActualCPUTime()) + indent
+ indent + dft.format(cloudlet.getExecStartTime())
+ indent + indent
+ dft.format(cloudlet.getFinishTime()));
}
}
}

}

class A
{
static int k=0;
static float[][] pv1=new float[4][3];
void jungle()
{
//float[][] resource=new float[3][3];
//float[] eigen1=new float[3];
float[] eigen2=new float[4];
float[][] job1=new float[4][4];
//float[][] job2=new float[4][4];
//float[][] job3=new float[4][4];
//float[] pv=new float[3];
int i,j;
System.out.println("enter the job  matrix");
 Scanner sc1=new Scanner(System.in);
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
job1[i][j]=sc1.nextFloat();
}
}
for(j=0;j<4;j++)
{
for(i=0;i<4;i++)
{
eigen2[j]+=job1[i][j];
}
}
for(j=0;j<4;j++)
{
System.out.println(eigen2[j]);
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
job1[j][i]=job1[j][i]/eigen2[i];
}
}
// this is for printing eigen matrix.
/*for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
System.out.print(job1[i][j]+"\t");
}
System.out.print("\n");
}*/
System.out.println("CSE2");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
pv1[i][k]+=job1[i][j];
}
pv1[i][k]=pv1[i][k]/4;
}
for(j=0;j<4;j++)
{
System.out.print(pv1[j][k]+"\t");
}
System.out.print("\n\n");
k++;

if(k==3)
{
/*for(i=0;i<3;i++)
{
 for(j=0;j<4;j++)
 {
pv1[j][i]=pv1[i][j];
//System.out.print(pv1[i][j]+"\t"); 
 }
//System.out.print("\n");
}*/
for(j=0;j<4;j++)
{
 for(i=0;i<3;i++)
 {
System.out.print(pv1[j][i]+"\t"); 
 }
System.out.print("\n");
}
}
}
}

Step 2:I saved it in package org.cloudbus.cloudsim.examples on the left side.




Step:3

Output Screens.

1)
2)

3)

4)

5)
In Below output you can see that burst times are same it shouldnt be like that,they have to change after executing each cloudlet.this is the problem!!



I would be really very Grateful if you people could spend time on it and let me know where do i need to change or add any code to get correct burst times..Thanx in Advance!!!!...:)

Thursday, 5 February 2015

SHARING KNOWLEGDE!!!

Hiii friends it has been long time posting new updates..."Last but not least"

                  As u all know cloud computing is the current buzzword in the market.People define cloud in many ways,but the standard definition for cloud was given by NIST(National Institute of Standard and technology) as follows:

 NIST Definition of Cloud Computing:

                 Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models.
Essential Characteristics:
  • On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service’s provider.
  • Broad network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
  • Resource pooling. The provider’s computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.
  • Rapid elasticity. Capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out and rapidly released to quickly scale in. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time.
  • Measured Service. Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported providing transparency for both the provider and consumer of the utilized service.
Service Models:
  • Cloud Software as a Service (SaaS). The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
  • Cloud Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations.
  • Cloud Infrastructure as a Service (IaaS). The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).


Deployment Models:
  • Private cloud. The cloud infrastructure is operated solely for an organization. It may be managed by the organization or a third party and may exist on premise or off premise.
  • Community cloud. The cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by the organizations or a third party and may exist on premise or off premise.
  • Public cloud. The cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services.
  • Hybrid cloud. The cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load-balancing between clouds).

There are many Cloud Providers  like: 

1) AWS:Amazon web services

  •  EC2:Elastic Compute cloud.
  • S3:Simple storage service.
  • EBS:Elastic Block storage.
2) Microsoft Azure.
3)Google Compute Engine.
4)Salesforce,Gigaspaces,Vm Ware,Yahoo,Cloudera.


What Is Amazon EC2?

Amazon Elastic Compute Cloud (Amazon EC2) provides scalable computing capacity in the Amazon Web Services (AWS) cloud. In simple words it provides computing services.Using Amazon EC2 eliminates your need to invest in hardware up front, so you can develop and deploy applications faster. You can use Amazon EC2 to launch as many or as few virtual servers as you need, configure security and networking, and manage storage. Amazon EC2 enables you to scale up or down to handle changes in requirements or spikes in popularity, reducing your need to forecast traffic.



Features of Amazon EC2:
  • Virtual computing environments, known as instances.
  • Preconfigured templates for your instances, known as Amazon Machine Images (AMIs), that package the bits you need for your server (including the operating system and additional software)
  • Various configurations of CPU, memory, storage, and networking capacity for your instances, known as instance types
  • Secure login information for your instances using key pairs (AWS stores the public key, and you store the private key in a secure place)
  • Storage volumes for temporary data that's deleted when you stop or terminate your instance, known as instance store volumes.
For more info. you can watch this video:



What is AWS S3??
     Amazon Simple Storage Service (Amazon S3), provides developers and IT teams with secure, durable, highly-scalable object storage. Amazon S3 is easy to use, with a simple web services interface to store and retrieve any amount of data from anywhere on the web. With Amazon S3, you pay only for the storage you actually use. There is no minimum fee and no setup cost.



        Amazon S3 can be used alone or together with other AWS services such as Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Block Store (Amazon EBS), and Amazon Glacier, as well as third party storage repositories and gateways. Amazon S3 provides cost-effective object storage for a wide variety of use cases including cloud applications, content distribution, backup and archiving, disaster recovery, and big data analytics.

What is AWS EBS??
                   Amazon Elastic Block Store (Amazon EBS) provides persistent block level storage volumes for use with Amazon EC2 instances in the AWS Cloud. Each Amazon EBS volume is automatically replicated within its Availability Zone to protect you from component failure, offering high availability and durability. Amazon EBS volumes offer the consistent and low-latency performance needed to run your workloads. With Amazon EBS, you can scale your usage up or down within minutes – all while paying a low price for only what you provision.

Map Reduce Paradigm in Cloud:
                               MapReduce has been emerging as a popular programming paradigm for data intensive computing in clustered environments such as enterprise data-centers and clouds. There has been an extensive use of the MapReduce as a framework for solving embarassingly parallel problems, using a large number of computers (nodes), collectively referred to as a cluster. These frameworks support ease computation of petabytes of data mostly through the use of a distributed file system. For example, the Google File System - used bythe proprietary 'Google Map-Reduce', or the 'Hadoop Distributed File System' used by Hadoop, an open source product from Apache.
For Amazons Map reduce watch the video:


https://www.youtube.com/watch?v=5fpTuCuGxlc

                                                             "Sharing is Knowledge
                                  Its a way to achieve immortality" 

Thursday, 30 October 2014

UNDERSTANDING CLOUDSIM:INTRODUCTION

Recently, cloud computing emerged as the leading technology for delivering reliable, secure, fault-tolerant, sustainable, and scalable computational services, which are presented as Software, Infrastructure, or Platform as services (SaaS, IaaS, PaaS). Moreover, these services may be offered in private data centers (private clouds), may be commercially offered for clients (public clouds), or yet it is possible that both public and private clouds are combined in hybrid clouds.
                                   These already wide ecosystem of cloud architectures, along with the increasing demand for energy-efficient IT technologies, demand timely, repeatable, and controllable methodologies for evaluation of algorithms, applications, and policies before actual development of cloud products. Because utilization of real testbeds limits the experiments to the scale of the testbed and makes the reproduction of results an extremely difficult undertaking, alternative approaches for testing and experimentation leverage development of new Cloud technologies.

Main features:

Overview of CloudSim functionalities:

  • support for modeling and simulation of large scale Cloud computing data centers
  • support for modeling and simulation of virtualized server hosts, with customizable policies for provisioning host resources to virtual machines
  • support for modeling and simulation of energy-aware computational resources
  • support for modeling and simulation of data center network topologies and message-passing applications
  • support for modeling and simulation of federated clouds
  • support for dynamic insertion of simulation elements, stop and resume of simulation
  • support for user-defined policies for allocation of hosts to virtual machines and policies for allocation of host resources to virtual machines.

First, you have to know some essential entities in CloudSim. Each entity is represented as a class in Java. The description is briefed as below. For more information of all classes, please visit CloudSim 3.0 API
Datacenter is composed of a set of hosts and it is responsible for managing virtual machines (VMs) (e.g., VM provisioning). It behaves like an IaaS provider by receiving requests for VMs from brokers and creating the VMs in hosts.
This class represents a broker acting on behalf of a user. It modifies two machanisms: the machanism for submitting VM provisioning requests to data centers and the mechanism for submitting the tasks to VMs. The CloudSim users have to extend this class for conducting experiments with their own policies.
3Host:
Host executes actions related to management of VMs (e.g., creation and destruction) and update task processing to VMs. A host has a defined policy for provisioning memory, processing elements, and bandwidth to virtual machines. A host is associated to a datacenter. It can host virtual machines.
4. VM:
It represents a software implementation of a machine that executes applications called virtual machine (VM) which works like a physical machine. Each virtual machine divides the resources received from the host among tasks running on it.
5Cloudlet:

A cloudlet class is also known as a task. CloudSim represents the complexity of an application in terms of its computational requirements. This class is managed by the scheduling policy which is implemented in DatacenterBroker Class.      

 REQUIREMENTS:

HARDWARE REQUIREMENTS:  

  • Hard disk -40GB.
  • Processor-Pentium1V2.4 GHz.
  • RAM-1 GB.

SOFTWARE REQUIREMENTS:
  • WindowsXP (32- bit), Vista (32 –bit or 64-bit) or      Windows7 (32-bit or 64-bit).
  • Eclipse classic (versions 3.5.1 and higher).
  • JDK 1.6 or later.
  • CloudSim toolkit

            Install CloudSim with eclipse (In Windows Machine)

Step-1:

  • Download eclipse. For that following link

http://www.eclipse.org/downloads/

Step-2:

  • Extract eclipse to particular directory. Here let’s say C:\eclipse

Step-3:

  • Download CloudSim. For that follow following link

http://code.google.com/p/cloudsim/downloads/list

Step-4:

  • Extract CloudSim to particular directory. Here let’s say C:\cloudsim-3.0.2

Step-5:

  • Download Michael Thomas Flanagan's Java Scientific and Numerical Library. For that follow following link

http://www.ee.ucl.ac.uk/~mflanaga/java/

Step-6:

  • Copy this flanagan.jar file into C:\cloudsim-3.0.2\jars\

Step-7:

  • Open the eclipse IDE. For that go to C:\eclipse and open the eclipse application (blue ball like icon).

Step-8:

  • Select the workspace, where eclipse stores your projects.
    Step-9:
  • In eclipse IDE go to New -->Java Project
Step-10:
  • Specify Project name as CloudSim, untick the use default location option and select extracted CloudSim folder. 
  • Click finish. It might take some time to finish.


Step-11:
Start enjoying cloud computing with CloudSim.