summaryrefslogtreecommitdiff
path: root/Simulator/include/modeling
diff options
context:
space:
mode:
Diffstat (limited to 'Simulator/include/modeling')
-rw-r--r--Simulator/include/modeling/Datacenter.h40
-rw-r--r--Simulator/include/modeling/Entity.h12
-rw-r--r--Simulator/include/modeling/ModelingTypes.h7
-rw-r--r--Simulator/include/modeling/Rack.h33
-rw-r--r--Simulator/include/modeling/Room.h52
-rw-r--r--Simulator/include/modeling/TypeIndex.h9
-rw-r--r--Simulator/include/modeling/machine/CPU.h37
-rw-r--r--Simulator/include/modeling/machine/GPU.h33
-rw-r--r--Simulator/include/modeling/machine/Machine.h117
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();
- };
-}