diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2017-07-09 23:48:06 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2017-07-09 23:48:06 +0200 |
| commit | c94d0c347fdbd8acc774df4ac17617a3f63e4507 (patch) | |
| tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /Simulator/include/modeling | |
| parent | bc4c41e21a64b444bdbab3b6d1d407fd5d919419 (diff) | |
Delete old codebase
This change removes version 1 of the OpenDC simulator codebase as it
will be replaced by a complete rewrite in the Kotlin language.
Diffstat (limited to 'Simulator/include/modeling')
| -rw-r--r-- | Simulator/include/modeling/Datacenter.h | 40 | ||||
| -rw-r--r-- | Simulator/include/modeling/Entity.h | 12 | ||||
| -rw-r--r-- | Simulator/include/modeling/ModelingTypes.h | 7 | ||||
| -rw-r--r-- | Simulator/include/modeling/Rack.h | 33 | ||||
| -rw-r--r-- | Simulator/include/modeling/Room.h | 52 | ||||
| -rw-r--r-- | Simulator/include/modeling/TypeIndex.h | 9 | ||||
| -rw-r--r-- | Simulator/include/modeling/machine/CPU.h | 37 | ||||
| -rw-r--r-- | Simulator/include/modeling/machine/GPU.h | 33 | ||||
| -rw-r--r-- | Simulator/include/modeling/machine/Machine.h | 117 |
9 files changed, 0 insertions, 340 deletions
diff --git a/Simulator/include/modeling/Datacenter.h b/Simulator/include/modeling/Datacenter.h deleted file mode 100644 index a9558f0a..00000000 --- a/Simulator/include/modeling/Datacenter.h +++ /dev/null @@ -1,40 +0,0 @@ -#pragma once -#include "modeling/Room.h" -#include "simulation/schedulers/Scheduler.h" -#include "modeling/TypeIndex.h" - -#include <vector> - -namespace Modeling -{ - /* - The Datacenter class models a datacenter with rooms/entities. - */ - template<typename ...RoomTypes> - class Datacenter - { - public: - /* - Returns a reference to the vector of rooms in this datacenter. - */ - template<typename RoomType> - std::vector<RoomType>& getRoomsOfType() - { - return std::get<indexOfType<RoomType, RoomTypes...>::value>(rooms); - } - - /* - Adds a room to this datacenter. - */ - template<typename RoomType> - void addRoomOfType(RoomType& room) - { - std::get<indexOfType<RoomType, RoomTypes...>::value>(rooms).push_back(std::move(room)); - } - - - private: - // A vector of rooms that are part of this datacenter. - std::tuple<std::vector<RoomTypes>...> rooms; - }; -} diff --git a/Simulator/include/modeling/Entity.h b/Simulator/include/modeling/Entity.h deleted file mode 100644 index c8c5a7cd..00000000 --- a/Simulator/include/modeling/Entity.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once -namespace Modeling -{ - class Entity - { - public: - explicit Entity(int id); - - // The id of this entity in the database - int id; - }; -} diff --git a/Simulator/include/modeling/ModelingTypes.h b/Simulator/include/modeling/ModelingTypes.h deleted file mode 100644 index 611a3653..00000000 --- a/Simulator/include/modeling/ModelingTypes.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -// Define a DefaultDC type, capable of holding server rooms. -using DefaultDatacenter = Modeling::Datacenter<Modeling::ServerRoom, Modeling::Hallway, Modeling::PowerRoom>; - -// Define a type of simulation, capable of simulating the DefaultDC. -using DefaultSection = Simulation::Section<DefaultDatacenter>;
\ No newline at end of file diff --git a/Simulator/include/modeling/Rack.h b/Simulator/include/modeling/Rack.h deleted file mode 100644 index 7e5638ef..00000000 --- a/Simulator/include/modeling/Rack.h +++ /dev/null @@ -1,33 +0,0 @@ -#pragma once -#include "modeling/Entity.h" -#include "modeling/machine/Machine.h" - -#include <unordered_map> - -namespace Modeling -{ - /* - The Rack class models a physical rack. It holds a vector of machines. - */ - class Rack : public Entity - { - public: - /* - Initializes the rack with the given machines. - */ - Rack(int id, std::unordered_map<uint32_t, Machine> machines); - - /* - Returns all machines in this rack. - */ - std::unordered_map<uint32_t, Machine>& getMachines(); - - /* - Returns the machine at the given slot. - */ - Machine& getMachineAtSlot(int slot); - - private: - std::unordered_map<uint32_t, Machine> machines; - }; -} diff --git a/Simulator/include/modeling/Room.h b/Simulator/include/modeling/Room.h deleted file mode 100644 index a57b045e..00000000 --- a/Simulator/include/modeling/Room.h +++ /dev/null @@ -1,52 +0,0 @@ -#pragma once -#include "modeling/Rack.h" -#include "modeling/TypeIndex.h" - -#include <vector> - -namespace Modeling -{ - /* - The Room class models the rooms that can be created in the simulation. It contains a list of all entities in the room. - */ - template<typename ...EntityTypes> - class Room - { - //static_assert(std::is_base_of<Entity, EntityTypes>..., "Each type must be derived from Entity!"); - public: - /* - Initializes the room with the given name. - */ - explicit Room(int id) : id(id) {} - - /* - Adds the entity to the list of entities in this room. - */ - template<typename EntityType> - void addEntity(EntityType& e) - { - std::get<indexOfType<EntityType, EntityTypes...>::value>(entities).push_back(e); - } - - /* - Returns all entities of the given type. - */ - template<typename EntityType> - std::vector<EntityType>& getEntitiesOfType() - { - return std::get<indexOfType<EntityType, EntityTypes...>::value>(entities); - } - - // The id of this room corresponding to its id in the database. - const int id; - - private: - // A vector for each type of entity - std::tuple<std::vector<EntityTypes>...> entities; - }; - - using ServerRoom = Room<Modeling::Rack>; - using Hallway = Room<>; - using PowerRoom = Room<>; - -} diff --git a/Simulator/include/modeling/TypeIndex.h b/Simulator/include/modeling/TypeIndex.h deleted file mode 100644 index 6fcda550..00000000 --- a/Simulator/include/modeling/TypeIndex.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once -template<typename T, typename... Ts> struct indexOfType; - -template <typename T, typename... Ts> -struct indexOfType<T, T, Ts...> : std::integral_constant<std::size_t, 0> {}; - -template <typename T, typename Tail, typename... Ts> -struct indexOfType<T, Tail, Ts...> : std::integral_constant<std::size_t, 1 + indexOfType<T, Ts...>::value> {}; - diff --git a/Simulator/include/modeling/machine/CPU.h b/Simulator/include/modeling/machine/CPU.h deleted file mode 100644 index 95af1c86..00000000 --- a/Simulator/include/modeling/machine/CPU.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once - -namespace Modeling -{ - class CPU - { - public: - /** - * \brief Creates a CPU with the given speed/core, number of cores, energy consumption, and failure model id. - */ - CPU(int speed, int cores, int energyConsumption, int failureModelId); - - /** - * \return the speed of this CPU. - */ - int getSpeed() const; - - /** - * \return The nr of cores of this CPU. - */ - int getCores() const; - - /** - * \return The energy consumed by this CPU. - */ - int getEnergyConsumption() const; - - /** - * \return The failure model id of this CPU. - */ - int getFailureModelId() const; - - - private: - int speed, cores, energyConsumption, failureModelId; - }; -} diff --git a/Simulator/include/modeling/machine/GPU.h b/Simulator/include/modeling/machine/GPU.h deleted file mode 100644 index 049b928e..00000000 --- a/Simulator/include/modeling/machine/GPU.h +++ /dev/null @@ -1,33 +0,0 @@ -#pragma once - -namespace Modeling -{ - class GPU - { - public: - GPU(int speed, int cores, int energyConsumption, int failureModelId); - - /* - Returns the speed of this CPU. - */ - int getSpeed(); - - /* - Returns the nr of cores of this CPU. - */ - int getCores(); - - /* - Returns the energy consumed by this CPU. - */ - int getEnergyConsumption(); - - /* - Returns the failure model id of this CPU. - */ - int getFailureModelId(); - - private: - int speed, cores, energyConsumption, failureModelId; - }; -} diff --git a/Simulator/include/modeling/machine/Machine.h b/Simulator/include/modeling/machine/Machine.h deleted file mode 100644 index f18f8352..00000000 --- a/Simulator/include/modeling/machine/Machine.h +++ /dev/null @@ -1,117 +0,0 @@ -#pragma once -#include "simulation/workloads/Workload.h" -#include "modeling/machine/CPU.h" -#include "modeling/machine/GPU.h" - -#include <stdint.h> -#include <vector> -#include <memory> - -namespace Modeling -{ - // Defines the initial temperature of machine - constexpr float ROOM_TEMPERATURE_CELCIUS = 23.0f; - - // Defines the usage of memory by the kernel - constexpr uint32_t KERNEL_MEMORY_USAGE_MB = 50; - - /* - The Machine class models a physical machine in a rack. It has a speed, and can be given a workload on which it will work until finished or interrupted. - */ - class Machine - { - public: - /* - Initializes the machine as idle with the given speed. - */ - Machine(int id); - - /* - Adds a cpu to the list of this machine. - */ - void addCPU(CPU cpu); - - /* - Adds a cpu to the list of this machine. - */ - void addGPU(GPU gpu); - - /* - Gives the task to this machine. If the machine is already busy this does nothing. - */ - void giveTask(Simulation::Workload* workload); - - /* - Returns true if the machine is busy. - */ - bool isBusy() const; - - /* - Does work on the given task and updates temperature and load appropriately. - */ - void work(); - - /* - Returns the id of the current workload of this machine. - */ - int getWorkloadId() const; - - /* - Returns the id of this machine. - */ - int getId() const; - - /* - Returns the temperature of this machine. - */ - float getTemperature() const; - - /* - Returns the memory used by this machine. - */ - int getMemory() const; - - /* - Returns the load fraction on this machine. - */ - float getLoad() const; - - /** - * \return The number of cores in this machine. - */ - uint32_t getNumberOfCores() const; - - private: - // A list of cpus in this machine. - std::vector<CPU> cpus; - - // A list of gpus in this machine. - std::vector<GPU> gpus; - - // True if the machine is working on a task. - bool busy = false; - - // The current workload the machine is working on. - Simulation::Workload* currentWorkload; - - // Db id of this machine. - int id; - - // Temperature of this machine. - float temperature = ROOM_TEMPERATURE_CELCIUS; - float maxTemperature = 80.0f; - float minTemperature = 0.0f; - float temperatureIncrease = 10.f; - - // Memory used by this machine. - int memory = KERNEL_MEMORY_USAGE_MB; - - // The fraction of load on this machine. - float load = 0.0f; - - /* - Returns the speed of the machine. - */ - uint32_t getSpeed(); - }; -} |
