Research Breakthrough Possible @S-Logix pro@slogix.in

Office Address

Social List

How to Create Multiple Hosts with Difference MIPS Value?

How to Create Multiple Hosts with Difference MIPS Value

Condition for Multiple Hosts with Difference MIPS Value

  • Description:
    In CloudSim, a host represents a physical machine or server that is capable of running Virtual Machines (VMs). Each host can have multiple Processing Elements (PEs), which are the individual units of computation. The MIPS (Million Instructions Per Second) value of a host or PE indicates its computational power (i.e., the speed at which it can execute tasks). When setting up a CloudSim simulation, you may want to create multiple hosts with different MIPS values to represent a heterogeneous environment where some machines are faster (higher MIPS) and others are slower.
Steps
  • Define the MIPS values: Define an array or list of MIPS values for each Processing Element (PE) in your hosts.
  • Create the PEs with different MIPS values: Create the Pe objects with the specified MIPS values for each host.
  • Create Hosts: Create multiple Host objects, each containing different PEs (with different MIPS values).
  • Add Hosts to Datacenter: Add the hosts to a Datacenter object.
Sample Code
  • import org.cloudbus.cloudsim.*;
    import org.cloudbus.cloudsim.provisioners.*;
    import java.util.*;
    import org.cloudbus.cloudsim.core.CloudSim;
    public class MultipleHostsExample {
    public static void main(String[] args) {
    try {
    // Initialize CloudSim
    int numUsers = 1; // Number of cloud users
    Calendar calendar = Calendar.getInstance();
    boolean traceFlag = false; // trace events
    CloudSim.init(numUsers, calendar, traceFlag);
    // Create a list to hold all hosts
    List hostList = new ArrayList<>();
    // Create multiple hosts with different MIPS values
    for (int hostId = 0; hostId < 3; hostId++) { // Creating 3 hosts with different MIPS values
    List peList = new ArrayList<>();
    // Define MIPS values for the host's PEs (different values for each host)
    int[] mipsValues;
    if (hostId == 0) {
    mipsValues = new int[] {1000, 1500}; // Host 1: 2 PEs with different MIPS
    } else if (hostId == 1) {
    mipsValues = new int[] {2000, 2500, 3000}; // Host 2: 3 PEs with different MIPS
    } else {
    mipsValues = new int[] {500, 700}; // Host 3: 2 PEs with different MIPS
    }
    // Create PEs for the current host with corresponding MIPS values
    for (int i = 0; i < mipsValues.length; i++) {
    // Create a PE with specific MIPS value
    PeProvisioner peProvisioner = new PeProvisionerSimple(mipsValues[i]);
    Pe pe = new Pe(i, peProvisioner);
    peList.add(pe);
    }
    // Create a Host with the PE list and some basic configuration
    Host host = new Host(
    hostId, // Host ID
    new RamProvisionerSimple(16384), // 16 GB RAM
    new BwProvisionerSimple(10000), // 10 GB Bandwidth
    1000000, // 1 TB Storage
    peList, // List of PEs
    new VmSchedulerTimeShared(peList) // VM Scheduler
    );
    hostList.add(host);
    }
    // Create Datacenter with the list of hosts
    DatacenterCharacteristics characteristics = new DatacenterCharacteristics(
    "x86", "Linux", "Xen", hostList, 10.0, 3.0, 0.05, 0.001, 0.0);
    Datacenter datacenter = new Datacenter("Datacenter_1", characteristics,
    new VmAllocationPolicySimple(hostList), new LinkedList<>(), 0);
    // Print the details of the hosts and their PEs for verification
    for (Host host : hostList) {
    System.out.println("Host ID: " + host.getId());
    for (Pe pe : host.getPeList()) {
    System.out.println(" PE ID: " + pe.getId() + " | MIPS: " + pe.getMips());
    }
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
ScreenShots
  • multiple-hosts-with-different-mips-values