Package org.apache.sysds.resource

# Class CloudInstance

java.lang.Object
org.apache.sysds.resource.CloudInstance

public class CloudInstance extends Object
This class describes the configurations of a single VM instance. The idea is to use this class to represent instances of different cloud hypervisors - currently supporting only EC2 instances by AWS.

## Constructor Summary

Constructors
Constructor
Description
`CloudInstance(String instanceName, double pricePerHour, double extraFee, double storagePrice, long memory, int vCPUCores, double GFlops, double memoryBandwidth, double diskReadBandwidth, double diskWriteBandwidth, double networkBandwidth, boolean NVMeStorage, int numberStorageVolumes, double sizeStorageVolumes)`

## Method Summary

Modifier and Type
Method
Description
`double`
`getDiskReadBandwidth()`
`double`
`getDiskWriteBandwidth()`
`double`
`getExtraFee()`
`double`
`getExtraStoragePrice()`
`long`
`getFLOPS()`
`String`
`getInstanceName()`
`long`
`getMemory()`
`double`
`getMemoryBandwidth()`
`double`
`getNetworkBandwidth()`
`int`
`getNumStorageVolumes()`
`double`
`getPrice()`
`double`
`getSizeStoragePerVolume()`
`int`
`getVCPUs()`
`boolean`
`isNVMeStorage()`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### CloudInstance

public CloudInstance(String instanceName, double pricePerHour, double extraFee, double storagePrice, long memory, int vCPUCores, double GFlops, double memoryBandwidth, double diskReadBandwidth, double diskWriteBandwidth, double networkBandwidth, boolean NVMeStorage, int numberStorageVolumes, double sizeStorageVolumes)

## Method Details

### getInstanceName

public String getInstanceName()

### getMemory

public long getMemory()

Returns:
  memory of the instance in B

### getVCPUs

public int getVCPUs()

Returns:
  number of virtual CPU cores of the instance

### getPrice

public double getPrice()

Returns:
  price per second of the instance

### getExtraStoragePrice

public double getExtraStoragePrice()

Returns:
  price per second of whole extra storage (to be) attached

### getExtraFee

public double getExtraFee()

Returns:
  price per second for extra fee per instance (cluster management)

### getFLOPS

public long getFLOPS()

Returns:
  number of FLOPS of the instance

### getMemoryBandwidth

public double getMemoryBandwidth()

Returns:
  memory bandwidth of the instance in MB/s

### getDiskReadBandwidth

public double getDiskReadBandwidth()

Returns:
  disk read bandwidth of the instance in MB/s

### getDiskWriteBandwidth

public double getDiskWriteBandwidth()

Returns:
  disk write bandwidth of the instance in MB/s

### getNetworkBandwidth

public double getNetworkBandwidth()

Returns:
  network bandwidth of the instance in MB/s

### isNVMeStorage

public boolean isNVMeStorage()

Returns:
  flag if the instance has attached NVMe-based storage volume(s)

### getNumStorageVolumes

public int getNumStorageVolumes()

Returns:
  number of storage volumes (attached or to be configured)

### getSizeStoragePerVolume

public double getSizeStoragePerVolume()

Returns:
  size of each storage volume (all equally sized) in GB