Commit 693bcad3 authored by Ahmad Siavashi's avatar Ahmad Siavashi

Decopule RemoteGpuTask

parent 7da71f9a
......@@ -33,10 +33,10 @@ import org.cloudbus.cloudsim.gpu.VgpuScheduler;
import org.cloudbus.cloudsim.gpu.VideoCard;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicy;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicyNull;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridGpuVmAllocationPolicyDepthFirst;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVgpuSchedulerFairShare;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVgpuTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridGpuVmAllocationPolicyDepthFirst;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVgpuSchedulerFairShare;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVgpuTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.provisioners.GpuBwProvisionerShared;
import org.cloudbus.cloudsim.gpu.provisioners.GpuGddramProvisionerSimple;
import org.cloudbus.cloudsim.gpu.provisioners.VideoCardBwProvisioner;
......@@ -52,7 +52,7 @@ import de.vandermeer.asciitable.AsciiTable;
/**
* This example demonstrates the use of gpu package in simulations. <br>
* GPU virtualization mode: hardware-assisted <br>
* GPU virtualization mode: GRID <br>
* Performance Model: off <br>
* Interference Model: off <br>
* Power Model: off
......@@ -185,7 +185,7 @@ public class CloudSimGpuExample1 {
UtilizationModel gddramBwUtilizationModel = new UtilizationModelFull();
GpuTask gpuTask = new GpuTask(gpuTaskId, taskLength, numberOfBlocks, taskInputSize, taskOutputSize,
requestedGddramSize, 0, gpuUtilizationModel, gddramUtilizationModel, gddramBwUtilizationModel);
requestedGddramSize, gpuUtilizationModel, gddramUtilizationModel, gddramBwUtilizationModel);
GpuCloudlet gpuCloudlet = new GpuCloudlet(gpuCloudletId, length, pesNumber, fileSize, outputSize,
cpuUtilizationModel, ramUtilizationModel, bwUtilizationModel, gpuTask, false);
......
......@@ -34,10 +34,10 @@ import org.cloudbus.cloudsim.gpu.VgpuScheduler;
import org.cloudbus.cloudsim.gpu.VideoCard;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicy;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicyNull;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridGpuVmAllocationPolicyBreadthFirst;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVgpuSchedulerFairShare;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVgpuTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridGpuVmAllocationPolicyBreadthFirst;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVgpuSchedulerFairShare;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVgpuTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.interference.InterferenceGpuTaskSchedulerLeftover;
import org.cloudbus.cloudsim.gpu.interference.models.InterferenceModel;
import org.cloudbus.cloudsim.gpu.interference.models.InterferenceModelGpuMemory;
......@@ -56,7 +56,7 @@ import de.vandermeer.asciitable.AsciiTable;
/**
* This example demonstrates the use of gpu package in simulations. <br>
* GPU virtualization mode: hardware-assisted <br>
* GPU virtualization mode: GRID <br>
* Performance Model: off <br>
* Interference Model: on <br>
* Power Model: off
......@@ -189,7 +189,7 @@ public class CloudSimGpuExample2 {
UtilizationModel gddramBwUtilizationModel = new UtilizationModelFull();
GpuTask gpuTask = new GpuTask(gpuTaskId, taskLength, numberOfBlocks, taskInputSize, taskOutputSize,
requestedGddramSize, 0, gpuUtilizationModel, gddramUtilizationModel, gddramBwUtilizationModel);
requestedGddramSize, gpuUtilizationModel, gddramUtilizationModel, gddramBwUtilizationModel);
GpuCloudlet gpuCloudlet = new GpuCloudlet(gpuCloudletId, length, pesNumber, fileSize, outputSize,
cpuUtilizationModel, ramUtilizationModel, bwUtilizationModel, gpuTask, false);
......
......@@ -34,10 +34,10 @@ import org.cloudbus.cloudsim.gpu.VgpuScheduler;
import org.cloudbus.cloudsim.gpu.VideoCard;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicy;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicyNull;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridGpuVmAllocationPolicyBreadthFirst;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridPerformanceVgpuSchedulerFairShare;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVgpuTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridGpuVmAllocationPolicyBreadthFirst;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridPerformanceVgpuSchedulerFairShare;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVgpuTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.interference.InterferenceGpuTaskSchedulerLeftover;
import org.cloudbus.cloudsim.gpu.interference.models.InterferenceModel;
import org.cloudbus.cloudsim.gpu.interference.models.InterferenceModelGpuMemory;
......@@ -59,7 +59,7 @@ import de.vandermeer.asciitable.AsciiTable;
/**
* This example demonstrates the use of gpu package in simulations. <br>
* GPU virtualization mode: hardware-assisted <br>
* GPU virtualization mode: GRID <br>
* Performance Model: on <br>
* Interference Model: on <br>
* Power Model: off
......@@ -134,7 +134,7 @@ public class CloudSimGpuExample3 {
UtilizationModel gddramBwUtilizationModel = new UtilizationModelFull();
GpuTask gpuTask = new GpuTask(gpuTaskId, taskLength, numberOfBlocks, taskInputSize, taskOutputSize,
requestedGddramSize, 0, gpuUtilizationModel, gddramUtilizationModel,
requestedGddramSize, gpuUtilizationModel, gddramUtilizationModel,
gddramBwUtilizationModel);
GpuCloudlet gpuCloudlet = new GpuCloudlet(gpuCloudletId, length, pesNumber, fileSize, outputSize,
......
......@@ -32,11 +32,11 @@ import org.cloudbus.cloudsim.gpu.VgpuScheduler;
import org.cloudbus.cloudsim.gpu.VideoCard;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicy;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicyNull;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridGpuVmAllocationPolicyBreadthFirst;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridPerformanceVgpuSchedulerFairShare;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVgpuTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardPowerModelK1;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridGpuVmAllocationPolicyBreadthFirst;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridPerformanceVgpuSchedulerFairShare;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVgpuTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardPowerModelK1;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.performance.models.PerformanceModel;
import org.cloudbus.cloudsim.gpu.performance.models.PerformanceModelGpuConstant;
import org.cloudbus.cloudsim.gpu.power.PowerGpuDatacenter;
......@@ -61,7 +61,7 @@ import de.vandermeer.asciitable.AsciiTable;
/**
* This example demonstrates the use of gpu package in simulations. <br>
* GPU virtualization mode: hardware-assisted <br>
* GPU virtualization mode: GRID <br>
* Performance Model: on <br>
* Interference Model: off <br>
* Power Model: on
......@@ -194,7 +194,7 @@ public class CloudSimGpuExample4 {
UtilizationModel gddramBwUtilizationModel = new UtilizationModelFull();
GpuTask gpuTask = new GpuTask(gpuTaskId, taskLength, numberOfBlocks, taskInputSize, taskOutputSize,
requestedGddramSize, 0, gpuUtilizationModel, gddramUtilizationModel, gddramBwUtilizationModel);
requestedGddramSize, gpuUtilizationModel, gddramUtilizationModel, gddramBwUtilizationModel);
GpuCloudlet gpuCloudlet = new GpuCloudlet(gpuCloudletId, length, pesNumber, fileSize, outputSize,
cpuUtilizationModel, ramUtilizationModel, bwUtilizationModel, gpuTask, false);
......
......@@ -32,11 +32,11 @@ import org.cloudbus.cloudsim.gpu.VgpuScheduler;
import org.cloudbus.cloudsim.gpu.VideoCard;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicy;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicyNull;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridGpuVmAllocationPolicyBreadthFirst;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridPerformanceVgpuSchedulerFairShare;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVgpuTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardPowerModelK1;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridGpuVmAllocationPolicyBreadthFirst;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridPerformanceVgpuSchedulerFairShare;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVgpuTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardPowerModelK1;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.performance.models.PerformanceModel;
import org.cloudbus.cloudsim.gpu.performance.models.PerformanceModelGpuConstant;
import org.cloudbus.cloudsim.gpu.power.PowerGpuDatacenter;
......@@ -62,7 +62,7 @@ import de.vandermeer.asciitable.AsciiTable;
/**
* This example demonstrates the use of gpu package for the simulation of mixed
* workloads. <br>
* GPU virtualization mode: hardware-assisted <br>
* GPU virtualization mode: GRID <br>
* Performance Model: on <br>
* Interference Model: off <br>
* Power Model: on
......@@ -195,7 +195,7 @@ public class CloudSimGpuExample5 {
UtilizationModel gddramBwUtilizationModel = new UtilizationModelFull();
GpuTask gpuTask = new GpuTask(gpuTaskId, taskLength, numberOfBlocks, taskInputSize, taskOutputSize,
requestedGddramSize, 0, gpuUtilizationModel, gddramUtilizationModel, gddramBwUtilizationModel);
requestedGddramSize, gpuUtilizationModel, gddramUtilizationModel, gddramBwUtilizationModel);
GpuCloudlet gpuCloudlet = new GpuCloudlet(gpuCloudletId, length, pesNumber, fileSize, outputSize,
cpuUtilizationModel, ramUtilizationModel, bwUtilizationModel, gpuTask, false);
......
......@@ -32,8 +32,8 @@ import org.cloudbus.cloudsim.gpu.VgpuScheduler;
import org.cloudbus.cloudsim.gpu.VideoCard;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicy;
import org.cloudbus.cloudsim.gpu.allocation.VideoCardAllocationPolicySimple;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardPowerModelK1;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardPowerModelK1;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.performance.models.PerformanceModel;
import org.cloudbus.cloudsim.gpu.performance.models.PerformanceModelGpuConstant;
import org.cloudbus.cloudsim.gpu.placement.GpuDatacenterBrokerEx;
......@@ -47,6 +47,7 @@ import org.cloudbus.cloudsim.gpu.provisioners.GpuGddramProvisionerSimple;
import org.cloudbus.cloudsim.gpu.provisioners.VideoCardBwProvisioner;
import org.cloudbus.cloudsim.gpu.provisioners.VideoCardBwProvisionerShared;
import org.cloudbus.cloudsim.gpu.remote.RemoteGpuDatacenterEx;
import org.cloudbus.cloudsim.gpu.remote.RemoteGpuTask;
import org.cloudbus.cloudsim.gpu.remote.RemoteGpuVmAllocationPolicySimple;
import org.cloudbus.cloudsim.gpu.remote.RemoteVgpuSchedulerFairShareEx;
import org.cloudbus.cloudsim.gpu.remote.RemoteVgpuTags;
......@@ -195,8 +196,8 @@ public class CloudSimGpuExample6 {
UtilizationModel gddramUtilizationModel = new UtilizationModelFull();
UtilizationModel gddramBwUtilizationModel = new UtilizationModelFull();
GpuTask gpuTask = new GpuTask(gpuTaskId, taskLength, numberOfBlocks, taskInputSize, taskOutputSize,
requestedGddramSize, 0, gpuUtilizationModel, gddramUtilizationModel, gddramBwUtilizationModel);
GpuTask gpuTask = new RemoteGpuTask(gpuTaskId, taskLength, numberOfBlocks, taskInputSize, taskOutputSize,
requestedGddramSize, 1.5f, gpuUtilizationModel, gddramUtilizationModel, gddramBwUtilizationModel);
GpuCloudlet gpuCloudlet = new GpuCloudlet(gpuCloudletId, length, pesNumber, fileSize, outputSize,
cpuUtilizationModel, ramUtilizationModel, bwUtilizationModel, gpuTask, false);
......
package org.cloudbus.cloudsim.gpu;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardTags;
/**
*
......
......@@ -48,11 +48,6 @@ public class GpuTask {
*/
private final long requestedGddramSize;
/**
* The communication overhead when executed on a remote GPU.
*/
private float communicationOverhead;
/**
* Total number of task block. The length of the task is
* {@link #getBlockLength()} * {@link #numberOfBlocks}
......@@ -216,10 +211,10 @@ public class GpuTask {
* @post $none
*/
public GpuTask(final int taskId, final long blockLength, final int numberOfBlocks, final long inputSize,
final long outputSize, final long requestedGddramSize, final float communicationOverhead,
final long outputSize, final long requestedGddramSize,
final UtilizationModel utilizationModelGpu, final UtilizationModel utilizationModelGddram,
final UtilizationModel utilizationModelBw) {
this(taskId, blockLength, numberOfBlocks, inputSize, outputSize, requestedGddramSize, communicationOverhead,
this(taskId, blockLength, numberOfBlocks, inputSize, outputSize, requestedGddramSize,
utilizationModelGpu, utilizationModelGddram, utilizationModelBw, false);
}
......@@ -245,7 +240,7 @@ public class GpuTask {
* @post $none
*/
public GpuTask(final int taskId, final long blockLength, final int numberOfBlocks, final long inputSize,
final long outputSize, final long requestedGddramSize, final float communicationOverhead,
final long outputSize, final long requestedGddramSize,
final UtilizationModel utilizationModelGpu, final UtilizationModel utilizationModelGddram,
final UtilizationModel utilizationModelBw, final boolean record) {
status = CREATED;
......@@ -261,7 +256,6 @@ public class GpuTask {
this.taskInputSize = Math.max(1, inputSize);
this.taskOutputSize = Math.max(1, outputSize);
this.requestedGddramSize = Math.max(1, requestedGddramSize);
this.communicationOverhead = communicationOverhead;
// Normally, a task is only executed on a resource without being
// migrated to others. Hence, to reduce memory consumption, set the
......@@ -561,10 +555,6 @@ public class GpuTask {
return taskOutputSize;
}
public float getCommunicationOverhead() {
return communicationOverhead;
}
/**
* Sets the resource parameters for which the task is going to be executed. From
* the second time this method is called, every call make the task to be
......
......@@ -11,7 +11,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
import org.cloudbus.cloudsim.Pe;
import org.cloudbus.cloudsim.Vm;
import org.cloudbus.cloudsim.gpu.hardware_assisted.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.hardware_assisted.grid.GridVideoCardTags;
import org.cloudbus.cloudsim.gpu.selection.PgpuSelectionPolicy;
/**
......
package org.cloudbus.cloudsim.gpu.hardware_assisted;
package org.cloudbus.cloudsim.gpu.hardware_assisted.grid;
import java.util.ArrayList;
import java.util.Collections;
......
package org.cloudbus.cloudsim.gpu.hardware_assisted;
package org.cloudbus.cloudsim.gpu.hardware_assisted.grid;
import java.util.Collections;
import java.util.Comparator;
......
package org.cloudbus.cloudsim.gpu.hardware_assisted;
package org.cloudbus.cloudsim.gpu.hardware_assisted.grid;
import java.util.ArrayList;
import java.util.Arrays;
......
package org.cloudbus.cloudsim.gpu.hardware_assisted;
package org.cloudbus.cloudsim.gpu.hardware_assisted.grid;
import java.util.Collections;
import java.util.Comparator;
......
package org.cloudbus.cloudsim.gpu.hardware_assisted;
package org.cloudbus.cloudsim.gpu.hardware_assisted.grid;
import java.util.List;
import java.util.Map.Entry;
......
package org.cloudbus.cloudsim.gpu.hardware_assisted;
package org.cloudbus.cloudsim.gpu.hardware_assisted.grid;
import java.util.List;
import java.util.Map.Entry;
......
package org.cloudbus.cloudsim.gpu.hardware_assisted;
package org.cloudbus.cloudsim.gpu.hardware_assisted.grid;
import java.util.HashMap;
import java.util.Map;
......
package org.cloudbus.cloudsim.gpu.hardware_assisted;
package org.cloudbus.cloudsim.gpu.hardware_assisted.grid;
import java.util.HashMap;
import java.util.Map;
......
package org.cloudbus.cloudsim.gpu.hardware_assisted;
package org.cloudbus.cloudsim.gpu.hardware_assisted.grid;
import org.cloudbus.cloudsim.gpu.VideoCard;
......
......@@ -44,7 +44,7 @@ public class RemoteGpuDatacenterEx extends GpuDatacenterEx {
@Override
protected void processGpuMemoryTransfer(SimEvent ev) {
GpuTask gt = (GpuTask) ev.getData();
RemoteGpuTask gt = (RemoteGpuTask) ev.getData();
double bandwidth = Double.valueOf(BusTags.PCI_E_3_X16_BW);
......
package org.cloudbus.cloudsim.gpu.remote;
import org.cloudbus.cloudsim.UtilizationModel;
import org.cloudbus.cloudsim.gpu.GpuTask;
public class RemoteGpuTask extends GpuTask {
/**
* The communication overhead when executed on a remote GPU.
*/
private float communicationOverhead;
public RemoteGpuTask(int taskId, long blockLength, int numberOfBlocks, long inputSize, long outputSize,
long requestedGddramSize, float communicationOverhead, UtilizationModel utilizationModelGpu,
UtilizationModel utilizationModelGddram, UtilizationModel utilizationModelBw) {
super(taskId, blockLength, numberOfBlocks, inputSize, outputSize, requestedGddramSize, utilizationModelGpu,
utilizationModelGddram, utilizationModelBw);
this.communicationOverhead = communicationOverhead;
}
public RemoteGpuTask(int taskId, long blockLength, int numberOfBlocks, long inputSize, long outputSize,
long requestedGddramSize, float communicationOverhead, UtilizationModel utilizationModelGpu,
UtilizationModel utilizationModelGddram, UtilizationModel utilizationModelBw, boolean record) {
super(taskId, blockLength, numberOfBlocks, inputSize, outputSize, requestedGddramSize, utilizationModelGpu,
utilizationModelGddram, utilizationModelBw, record);
this.communicationOverhead = communicationOverhead;
}
public float getCommunicationOverhead() {
return communicationOverhead;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment