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
`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

All Methods Instance Methods Concrete Methods
`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 Detail

#### 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 Detail

#### 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