diff --git a/pb/rebuild.sh b/pb/rebuild.sh index a3b6e469a966f16dda5afc2f8395c20f63fea1bf..404afa470898c58ea8cf5b4be8909080026eebff 100644 --- a/pb/rebuild.sh +++ b/pb/rebuild.sh @@ -3,12 +3,13 @@ BASE_DIR=`dirname $0`/.. LIBLOOM_DIR=${BASE_DIR}/src/libloom +LIBLOOMW_DIR=${BASE_DIR}/src/libloomw PYTHON_DIR=${BASE_DIR}/python/loom/pb # LIBLOOM protoc loomcomm.proto --cpp_out=${LIBLOOM_DIR} protoc loomplan.proto --cpp_out=${LIBLOOM_DIR} -protoc loomrun.proto --cpp_out=${LIBLOOM_DIR}/tasks +protoc loomrun.proto --cpp_out=${LIBLOOMW_DIR}/tasks # CLIENT (Python) protoc loomcomm.proto --python_out=${PYTHON_DIR} diff --git a/src/libloom/CMakeLists.txt b/src/libloom/CMakeLists.txt index 5ab0b0118389db96e010c46a673dc147a7191a9f..6a99f322e209340d9dc0ef8f8e6873841387a6e8 100644 --- a/src/libloom/CMakeLists.txt +++ b/src/libloom/CMakeLists.txt @@ -11,6 +11,13 @@ add_library(libloom log.h pbutils.h pbutils.cpp + dictionary.cpp + dictionary.h + types.h + loomcomm.pb.h + loomcomm.pb.cc + loomplan.pb.h + loomplan.pb.cc ) target_include_directories(libloom PUBLIC ${PROJECT_SOURCE_DIR}/src) diff --git a/src/libloom/compat.h b/src/libloom/compat.h index 91b31ad84ffced08c408b0e1ccd991629d97ef79..f948f2e036eaa49b6a361b0c2e121c8ea49acb9a 100644 --- a/src/libloom/compat.h +++ b/src/libloom/compat.h @@ -5,8 +5,8 @@ In the current version it provides std::make_unique */ -#ifndef LIBLOOMNET_COMPAT_H -#define LIBLOOMNET_COMPAT_H +#ifndef LIBLOOM_COMPAT_H +#define LIBLOOM_COMPAT_H #include <cstddef> #include <memory> diff --git a/src/libloomw/dictionary.cpp b/src/libloom/dictionary.cpp similarity index 100% rename from src/libloomw/dictionary.cpp rename to src/libloom/dictionary.cpp diff --git a/src/libloomw/dictionary.h b/src/libloom/dictionary.h similarity index 50% rename from src/libloomw/dictionary.h rename to src/libloom/dictionary.h index 692c7a73d255d049ec09e815d8840b1a3ea09fc3..83be72acbd5809f601f439ced5f8ce77003b6640 100644 --- a/src/libloomw/dictionary.h +++ b/src/libloom/dictionary.h @@ -8,6 +8,7 @@ #include <vector> namespace loom { +namespace base { /** Container for symbols */ class Dictionary { @@ -15,17 +16,18 @@ class Dictionary { public: Dictionary(); - loom::Id find_symbol_or_fail(const std::string &symbol) const; - loom::Id find_symbol(const std::string &symbol) const; - loom::Id find_or_create(const std::string &symbol); - const std::string& translate(loom::Id id); + loom::base::Id find_symbol_or_fail(const std::string &symbol) const; + loom::base::Id find_symbol(const std::string &symbol) const; + loom::base::Id find_or_create(const std::string &symbol); + const std::string& translate(loom::base::Id id); std::vector<std::string> get_all_symbols() const; private: - std::unordered_map<std::string, loom::Id> symbol_to_id; + std::unordered_map<std::string, loom::base::Id> symbol_to_id; }; +} } #endif // LIBLOOM_DICTIONARY_H diff --git a/src/libloom/listener.h b/src/libloom/listener.h index 2d96a0b56058917ae62a23733e5bb0272523c023..f934788ad03826533bf2ba542928e6150d4a9b4d 100644 --- a/src/libloom/listener.h +++ b/src/libloom/listener.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOMNET_LISTENER_H -#define LIBLOOMNET_LISTENER_H +#ifndef LIBLOOM_LISTENER_H +#define LIBLOOM_LISTENER_H #include "socket.h" @@ -31,4 +31,4 @@ protected: } } -#endif // LIBLOOMNET_LISTENER_H +#endif // LIBLOOM_LISTENER_H diff --git a/src/libloom/log.h b/src/libloom/log.h index e2fa92967459da1c103c0caebbe0f2996ce98b3d..00156ca9a8884860b0eae8cdb4d7180993d048ef 100644 --- a/src/libloom/log.h +++ b/src/libloom/log.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOMNET_LOG_H -#define LIBLOOMNET_LOG_H +#ifndef LIBLOOM_LOG_H +#define LIBLOOM_LOG_H #include <sys/types.h> #include "spdlog/spdlog.h" diff --git a/src/libloomw/loomcomm.pb.cc b/src/libloom/loomcomm.pb.cc similarity index 100% rename from src/libloomw/loomcomm.pb.cc rename to src/libloom/loomcomm.pb.cc diff --git a/src/libloomw/loomcomm.pb.h b/src/libloom/loomcomm.pb.h similarity index 100% rename from src/libloomw/loomcomm.pb.h rename to src/libloom/loomcomm.pb.h diff --git a/src/libloomw/loomplan.pb.cc b/src/libloom/loomplan.pb.cc similarity index 100% rename from src/libloomw/loomplan.pb.cc rename to src/libloom/loomplan.pb.cc diff --git a/src/libloomw/loomplan.pb.h b/src/libloom/loomplan.pb.h similarity index 100% rename from src/libloomw/loomplan.pb.h rename to src/libloom/loomplan.pb.h diff --git a/src/libloom/pbutils.cpp b/src/libloom/pbutils.cpp index f062960ea2c0083031b45a26c40ccae07387c3eb..f783615694fc76e5ad9bf0dce6daacc34a6c0100 100644 --- a/src/libloom/pbutils.cpp +++ b/src/libloom/pbutils.cpp @@ -1,5 +1,5 @@ #include "pbutils.h" -#include "libloomw/loomcomm.pb.h" +#include "loomcomm.pb.h" #include "compat.h" diff --git a/src/libloom/pbutils.h b/src/libloom/pbutils.h index 04225ee7f003794a8641925234e8f63c23d7a9a0..0adb16f353e4476fd1caba74ae1c3f111869ce94 100644 --- a/src/libloom/pbutils.h +++ b/src/libloom/pbutils.h @@ -1,5 +1,5 @@ -#ifndef LOOM_SERVER_UTILS_H -#define LOOM_SERVER_UTILS_H +#ifndef LIBLOOM_UTILS_H +#define LIBLOOM_UTILS_H #include "sendbuffer.h" #include "socket.h" @@ -21,4 +21,4 @@ void send_message(loom::base::Socket &socket, ::google::protobuf::MessageLite &m }} -#endif // LOOM_SERVER_UTILS_H +#endif // LIBLOOM_UTILS_H diff --git a/src/libloom/sendbuffer.h b/src/libloom/sendbuffer.h index a8891621c81cb32f507f11976c9fba941ee361f2..8eb88fa1d349b321fecb7b4bd1b49b3af2f9b2bb 100644 --- a/src/libloom/sendbuffer.h +++ b/src/libloom/sendbuffer.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOMNET_SENDBUFFER_H -#define LIBLOOMNET_SENDBUFFER_H +#ifndef LIBLOOM_SENDBUFFER_H +#define LIBLOOM_SENDBUFFER_H #include <uv.h> #include <memory> @@ -97,4 +97,4 @@ protected: }} -#endif // LIBLOOMNET_SENDBUFFER_H +#endif // LIBLOOM_SENDBUFFER_H diff --git a/src/libloom/socket.h b/src/libloom/socket.h index c03a069d3c58b8073ec23173f43b8d27a0ee5c12..780d4f18e102ff23bf363ecf8a5b566beb831e82 100644 --- a/src/libloom/socket.h +++ b/src/libloom/socket.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOMNET_SOCKET_H -#define LIBLOOMNET_SOCKET_H +#ifndef LIBLOOM_SOCKET_H +#define LIBLOOM_SOCKET_H #include "sendbuffer.h" @@ -90,4 +90,4 @@ private: }} -#endif // LIBLOOMNET_CONNECTION_H +#endif // LIBLOOM_CONNECTION_H diff --git a/src/libloomw/types.h b/src/libloom/types.h similarity index 76% rename from src/libloomw/types.h rename to src/libloom/types.h index b505c359f7f9d37a0eb37fd8880fd4c6cd666608..304a1b47e6ad855755d2a63f0b114c69bc0a26e0 100644 --- a/src/libloomw/types.h +++ b/src/libloom/types.h @@ -2,13 +2,12 @@ #define LIBLOOM_TYPES_H namespace loom { +namespace base { const int PROTOCOL_VERSION = 1; typedef int Id; -typedef int TaskId; -typedef int DataTypeId; - +} } #endif // LIBLOOM_TYPES_H diff --git a/src/libloomw/CMakeLists.txt b/src/libloomw/CMakeLists.txt index 5c7ebf8fde98ae11ab85d92a94b7f6fd7cdf41be..a20006b5b1fd7c60621410ec17e5c91c880a790a 100644 --- a/src/libloomw/CMakeLists.txt +++ b/src/libloomw/CMakeLists.txt @@ -30,8 +30,6 @@ add_library(libloomw threadjob.h ttinstance.h taskfactory.h - dictionary.cpp - dictionary.h data.cpp data.h unpacking.cpp @@ -41,11 +39,6 @@ add_library(libloomw task.cpp task.h taskdesc.h - loomcomm.pb.h - loomcomm.pb.cc - loomplan.pb.h - loomplan.pb.cc - types.h config.cpp config.h utils.h diff --git a/src/libloomw/config.h b/src/libloomw/config.h index 0791f84cf784de1c1c39a7e1bf48add97831be43..cb64a607ff0717782acd0b37df8c8f2a3757c7da 100644 --- a/src/libloomw/config.h +++ b/src/libloomw/config.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOM_INIT_H -#define LIBLOOM_INIT_H +#ifndef LIBLOOMW_INIT_H +#define LIBLOOMW_INIT_H #include <string> #include <argp.h> @@ -48,6 +48,3 @@ private: #endif - - - diff --git a/src/libloomw/data.cpp b/src/libloomw/data.cpp index f393af69c0b4bf2d3c38d58b674b54e9f57a1cd8..1a7ffec0aa752d07b795af049a813dc25fd787ca 100644 --- a/src/libloomw/data.cpp +++ b/src/libloomw/data.cpp @@ -37,7 +37,7 @@ bool Data::has_raw_data() const return false; } -Id Data::get_type_id(Worker &worker) const +base::Id Data::get_type_id(Worker &worker) const { return worker.get_dictionary().find_symbol(get_type_name()); } diff --git a/src/libloomw/data.h b/src/libloomw/data.h index 8205a21d40e80b58b400f9ad93802859d856e32a..df570f8ad56d877964370952aa2a1505eabb7937 100644 --- a/src/libloomw/data.h +++ b/src/libloomw/data.h @@ -1,10 +1,10 @@ -#ifndef LOOM_DATA_H -#define LOOM_DATA_H +#ifndef LIBLOOMW_DATA_H +#define LIBLOOMW_DATA_H -#include "types.h" -#include "loomcomm.pb.h" +#include "libloom/loomcomm.pb.h" +#include "libloom/types.h" #include "libloom/sendbuffer.h" #include <uv.h> @@ -51,7 +51,7 @@ public: virtual bool has_raw_data() const; - loom::Id get_type_id(Worker &worker) const; + loom::base::Id get_type_id(Worker &worker) const; protected: }; @@ -72,4 +72,4 @@ typedef std::vector<std::shared_ptr<Data>> DataVector; } -#endif // LOOM_DATA_H +#endif // LIBLOOMW_DATA_H diff --git a/src/libloomw/data/array.cpp b/src/libloomw/data/array.cpp index 52f06558033add9b318206c81d0d709c76a5f84f..c07486a4050288c3b9ec34a873c74818fbe3a55c 100644 --- a/src/libloomw/data/array.cpp +++ b/src/libloomw/data/array.cpp @@ -77,8 +77,8 @@ std::shared_ptr<Data> Array::get_at_index(size_t index) size_t Array::serialize(Worker &worker, loom::base::SendBuffer &buffer, std::shared_ptr<Data> &data_ptr) { - auto types = std::make_unique<base::MemItemWithSz>(sizeof(loom::Id) * length); - loom::Id *ts = reinterpret_cast<loom::Id*>(types->get_ptr()); + auto types = std::make_unique<base::MemItemWithSz>(sizeof(loom::base::Id) * length); + loom::base::Id *ts = reinterpret_cast<loom::base::Id*>(types->get_ptr()); for (size_t i = 0; i < length; i++) { ts[i] = items[i]->get_type_id(worker); } diff --git a/src/libloomw/data/array.h b/src/libloomw/data/array.h index d7a4a5ee75a7925cdb99e1e4011743f6b1bb6dfc..97d6651b8596a40fded6a94998a1adef7002d8d2 100644 --- a/src/libloomw/data/array.h +++ b/src/libloomw/data/array.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOM_DATA_ARRAY_H -#define LIBLOOM_DATA_ARRAY_H +#ifndef LIBLOOMW_DATA_ARRAY_H +#define LIBLOOMW_DATA_ARRAY_H #include "../data.h" #include "../unpacking.h" @@ -47,7 +47,7 @@ public: private: std::unique_ptr<DataUnpacker> unpacker; - std::vector<Id> types; + std::vector<loom::base::Id> types; std::unique_ptr<std::shared_ptr<Data>[]> items; size_t index; Worker &worker; @@ -55,4 +55,4 @@ private: } -#endif // LIBLOOM_DATA_ARRAY_H +#endif // LIBLOOMW_DATA_ARRAY_H diff --git a/src/libloomw/data/externfile.h b/src/libloomw/data/externfile.h index d739a74a667a5e0a15847dd1b2f9be4914a549c6..d7f5d66c08a9ebdac604e212ee086daea68a54b4 100644 --- a/src/libloomw/data/externfile.h +++ b/src/libloomw/data/externfile.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOM_EXTERNFILE_H -#define LIBLOOM_EXTERNFILE_H +#ifndef LIBLOOMW_EXTERNFILE_H +#define LIBLOOMW_EXTERNFILE_H #include "../data.h" @@ -46,4 +46,4 @@ protected: } -#endif // LIBLOOM_EXTERNFILE_H +#endif // LIBLOOMW_EXTERNFILE_H diff --git a/src/libloomw/data/index.h b/src/libloomw/data/index.h index a8f337396cfcbb21145bc66e3b1036be90d521f3..d1560a68051428616f911f9edd4c540cc497ba35 100644 --- a/src/libloomw/data/index.h +++ b/src/libloomw/data/index.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOM_INDEX_H -#define LIBLOOM_INDEX_H +#ifndef LIBLOOMW_INDEX_H +#define LIBLOOMW_INDEX_H #include "../data.h" #include "../unpacking.h" @@ -50,4 +50,4 @@ public: }; } -#endif // LIBLOOM_INDEX_H +#endif // LIBLOOMW_INDEX_H diff --git a/src/libloomw/data/rawdata.h b/src/libloomw/data/rawdata.h index 8f33d192b7c71af0fbb0ed888ef5e1e375375894..48989296028674bdc31d28fe934315ff3599dcd2 100644 --- a/src/libloomw/data/rawdata.h +++ b/src/libloomw/data/rawdata.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOM_RAWDATA_H -#define LIBLOOM_RAWDATA_H +#ifndef LIBLOOMW_RAWDATA_H +#define LIBLOOMW_RAWDATA_H #include "../data.h" #include "../unpacking.h" @@ -71,4 +71,4 @@ private: } -#endif // LIBLOOM_RAWDATA_H +#endif // LIBLOOMW_RAWDATA_H diff --git a/src/libloomw/interconnect.cpp b/src/libloomw/interconnect.cpp index f5e95f2f6a0f846e35b5972620ccf3becd6de693..c448a59be82839792bd4ecc3dd55c3486570a250 100644 --- a/src/libloomw/interconnect.cpp +++ b/src/libloomw/interconnect.cpp @@ -1,6 +1,6 @@ #include "interconnect.h" #include "worker.h" -#include "loomcomm.pb.h" +#include "libloom/loomcomm.pb.h" #include "libloom/log.h" #include "libloom/pbutils.h" #include "libloom/sendbuffer.h" diff --git a/src/libloomw/interconnect.h b/src/libloomw/interconnect.h index ff72a94dce05758166028a1c6ff111d6a6a6a79a..fb123ff8a291c6d6ecf1a2b5d97531c2f14f4839 100644 --- a/src/libloomw/interconnect.h +++ b/src/libloomw/interconnect.h @@ -1,5 +1,5 @@ -#ifndef LOOM_INTERCONNECT_H -#define LOOM_INTERCONNECT_H +#ifndef LIBLOOMW_INTERCONNECT_H +#define LIBLOOMW_INTERCONNECT_H #include "libloom/socket.h" #include "libloom/listener.h" @@ -22,7 +22,7 @@ public: InterConnection(Worker &worker); ~InterConnection(); - void send(Id id, std::shared_ptr<Data> &data); + void send(base::Id id, std::shared_ptr<Data> &data); std::string get_peername() { return socket.get_peername(); @@ -57,7 +57,7 @@ protected: std::string address; std::unique_ptr<DataUnpacker> unpacker; - Id unpacking_data_id; + base::Id unpacking_data_id; static std::string make_address(const std::string &host, int port); @@ -66,4 +66,4 @@ protected: } -#endif // LOOM_INTERCONNECT_H +#endif // LIBLOOMW_INTERCONNECT_H diff --git a/src/libloomw/task.cpp b/src/libloomw/task.cpp index 6616a861277ead81cb4b9c1cdcf0c0005876426c..c545a8e8be21f4f4b8b5c2118de5ce370c1a716b 100644 --- a/src/libloomw/task.cpp +++ b/src/libloomw/task.cpp @@ -5,7 +5,7 @@ using namespace loom; bool loom::Task::is_ready(const Worker &worker) const { - for (Id id : inputs) { + for (auto id : inputs) { if (!worker.has_data(id)) { return false; } diff --git a/src/libloomw/task.h b/src/libloomw/task.h index 21e3220ab5ca3ac5b86dacfc3d5489482f8f0493..f169fb039f1f89a4106df8bb0ac2ae35af632d2b 100644 --- a/src/libloomw/task.h +++ b/src/libloomw/task.h @@ -1,7 +1,7 @@ -#ifndef LIBLOOM_TASK_H -#define LIBLOOM_TASK_H +#ifndef LIBLOOMW_TASK_H +#define LIBLOOMW_TASK_H -#include "types.h" +#include "libloom/types.h" #include <vector> #include <string> @@ -13,17 +13,17 @@ class Worker; class Task { public: - Task(Id id, int task_type, const std::string &config) + Task(base::Id id, int task_type, const std::string &config) : id(id), task_type(task_type), config(config) {} - Task(Id id, int task_type, std::string &&config) + Task(base::Id id, int task_type, std::string &&config) : id(id), task_type(task_type), config(std::move(config)) {} - Id get_id() const { + base::Id get_id() const { return id; } - Id get_task_type() const { + base::Id get_task_type() const { return task_type; } @@ -33,21 +33,21 @@ public: bool is_ready(const Worker &worker) const; - void add_input(Id id) { + void add_input(base::Id id) { inputs.push_back(id); } - const std::vector<Id>& get_inputs() const { + const std::vector<base::Id>& get_inputs() const { return inputs; } protected: - Id id; - Id task_type; - std::vector<Id> inputs; + base::Id id; + base::Id task_type; + std::vector<base::Id> inputs; std::string config; }; } -#endif // LIBLOOM_TASK_H +#endif // LIBLOOMW_TASK_H diff --git a/src/libloomw/taskdesc.h b/src/libloomw/taskdesc.h index 3db0edd2c09a9fb7af36d3892fd6553fa54f8608..af0556845bb68040365458c33380ba03adaaf7a9 100644 --- a/src/libloomw/taskdesc.h +++ b/src/libloomw/taskdesc.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOM_TASKREDIRECT_H -#define LIBLOOM_TASKREDIRECT_H +#ifndef LIBLOOMW_TASKREDIRECT_H +#define LIBLOOMW_TASKREDIRECT_H #include "data.h" @@ -16,4 +16,4 @@ struct TaskDescription } -#endif // LIBLOOM_TASKREDIRECT_H +#endif // LIBLOOMW_TASKREDIRECT_H diff --git a/src/libloomw/taskfactory.h b/src/libloomw/taskfactory.h index 8a49f435d1dcbd134ded80c05c6715e4b2b3be6e..c5b151c09ee01e8e642f9a085cdc9554b76f9f53 100644 --- a/src/libloomw/taskfactory.h +++ b/src/libloomw/taskfactory.h @@ -1,5 +1,5 @@ -#ifndef LOOM_TASK_FACTORY_H -#define LOOM_TASK_FACTORY_H +#ifndef LIBLOOMW_TASK_FACTORY_H +#define LIBLOOMW_TASK_FACTORY_H #include "data.h" #include "task.h" @@ -45,4 +45,4 @@ public: } -#endif // LOOM_TASK_FACTORY_H +#endif // LIBLOOMW_TASK_FACTORY_H diff --git a/src/libloomw/taskinstance.h b/src/libloomw/taskinstance.h index 6c7f77fc6d5f482be430e4b417c1e669c99f028d..c09616d4a1de943ac33b8b365536444a1527ebb4 100644 --- a/src/libloomw/taskinstance.h +++ b/src/libloomw/taskinstance.h @@ -1,5 +1,5 @@ -#ifndef LOOM_TASKINSTANCE_H -#define LOOM_TASKINSTANCE_H +#ifndef LIBLOOMW_TASKINSTANCE_H +#define LIBLOOMW_TASKINSTANCE_H #include "data.h" #include "task.h" @@ -30,11 +30,11 @@ public: virtual ~TaskInstance(); - int get_id() const { + base::Id get_id() const { return task->get_id(); } - const std::vector<Id>& get_inputs() { + const std::vector<base::Id>& get_inputs() { return task->get_inputs(); } @@ -56,4 +56,4 @@ protected: } -#endif // LOOM_TASKINSTANCE_H +#endif // LIBLOOMW_TASKINSTANCE_H diff --git a/src/libloomw/threadjob.h b/src/libloomw/threadjob.h index 149a6a570890f76b9b737b8a466a12e1228ad130..e2c6500319829e2e4825fb2160ff9426d1237e5b 100644 --- a/src/libloomw/threadjob.h +++ b/src/libloomw/threadjob.h @@ -1,5 +1,5 @@ -#ifndef LIBLOOM_THREADJOB_H -#define LIBLOOM_THREADJOB_H +#ifndef LIBLOOMW_THREADJOB_H +#define LIBLOOMW_THREADJOB_H #include "data.h" #include "task.h" @@ -55,4 +55,4 @@ protected: } -#endif // LIBLOOM_THREADJOB_H +#endif // LIBLOOMW_THREADJOB_H diff --git a/src/libloomw/ttinstance.h b/src/libloomw/ttinstance.h index 1869f82a02fb49f49424b9185a8b800649d1071d..e1eebad04c1093bf41d9cabd67433f7ba492d69e 100644 --- a/src/libloomw/ttinstance.h +++ b/src/libloomw/ttinstance.h @@ -1,5 +1,5 @@ -#ifndef LOOM_TTINSTANCE_H -#define LOOM_TTINSTANCE_H +#ifndef LIBLOOMW_TTINSTANCE_H +#define LIBLOOMW_TTINSTANCE_H #include "data.h" #include "taskinstance.h" @@ -69,4 +69,4 @@ protected: } -#endif // LOOM_TASKINSTANCE_H +#endif // LIBLOOMW_TASKINSTANCE_H diff --git a/src/libloomw/unpacking.h b/src/libloomw/unpacking.h index fb1dcad13abef2be0ec718b49874c0d85243cbb9..582c1f9c85468918bbf0b70d8ad69dd2aa316274 100644 --- a/src/libloomw/unpacking.h +++ b/src/libloomw/unpacking.h @@ -1,6 +1,6 @@ -#ifndef LIBLOOM_UNPACKING_H -#define LIBLOOM_UNPACKING_H +#ifndef LIBLOOMW_UNPACKING_H +#define LIBLOOMW_UNPACKING_H #include "data.h" @@ -29,4 +29,4 @@ using UnpackFactoryFn = std::function<std::unique_ptr<DataUnpacker>()>; } -#endif // LIBLOOM_UNPACKING_H +#endif // LIBLOOMW_UNPACKING_H diff --git a/src/libloomw/utils.h b/src/libloomw/utils.h index a8532f16ef4b8bef4c88de527d38377ffa72386d..e5d10911450bb8383d4ba03f0df88b1f2783777c 100644 --- a/src/libloomw/utils.h +++ b/src/libloomw/utils.h @@ -1,5 +1,5 @@ -#ifndef LOOM_UTILS_H -#define LOOM_UTILS_H +#ifndef LIBLOOMW_UTILS_H +#define LIBLOOMW_UTILS_H #include <sys/types.h> #include <libloom/log.h> @@ -14,4 +14,4 @@ size_t file_size(const char *path); } -#endif // LOOM_UTILS_H +#endif // LIBLOOMW_UTILS_H diff --git a/src/libloomw/worker.cpp b/src/libloomw/worker.cpp index e9f4fec3fc617c3be56f5fdd396e214881a92aeb..2dc3f3931c28eb0f80d9bc36c5e24fb79f525ff7 100644 --- a/src/libloomw/worker.cpp +++ b/src/libloomw/worker.cpp @@ -1,8 +1,6 @@ #include "worker.h" -#include "loomcomm.pb.h" #include "utils.h" -#include "types.h" #include "config.h" #include "data/rawdata.h" @@ -15,6 +13,8 @@ #include "tasks/runtask.h" #include "tasks/python.h" +#include "libloom/loomcomm.pb.h" +#include "libloom/types.h" #include "libloom/log.h" #include "libloom/sendbuffer.h" #include "libloom/pbutils.h" @@ -338,7 +338,7 @@ void Worker::add_unpacker(const std::string &symbol, const UnpackFactoryFn &unpa unregistered_unpack_ffs[symbol] = unpacker; } -std::unique_ptr<DataUnpacker> Worker::get_unpacker(DataTypeId id) +std::unique_ptr<DataUnpacker> Worker::get_unpacker(base::Id id) { auto i = unpack_ffs.find(id); assert(i != unpack_ffs.end()); @@ -348,14 +348,14 @@ std::unique_ptr<DataUnpacker> Worker::get_unpacker(DataTypeId id) void Worker::on_dictionary_updated() { for (auto &f : unregistered_task_factories) { - loom::Id id = dictionary.find_symbol_or_fail(f->get_name()); + loom::base::Id id = dictionary.find_symbol_or_fail(f->get_name()); logger->debug("Registering task_factory: {} = {}", f->get_name(), id); task_factories[id] = std::move(f); } unregistered_task_factories.clear(); for (auto &pair : unregistered_unpack_ffs) { - loom::Id id = dictionary.find_symbol_or_fail(pair.first); + loom::base::Id id = dictionary.find_symbol_or_fail(pair.first); logger->debug("Registering unpack_factory: {} = {}", pair.first, id); unpack_ffs[id] = pair.second; } @@ -411,7 +411,7 @@ void Worker::task_failed(TaskInstance &task, const std::string &error_msg) void Worker::task_redirect(TaskInstance &task, std::unique_ptr<TaskDescription> new_task_desc) { - loom::Id id = task.get_id(); + loom::base::Id id = task.get_id(); logger->debug("Redirecting task id={} task_type={} n_inputs={}", id, new_task_desc->task_type, new_task_desc->inputs.size()); remove_task(task, false); diff --git a/src/libloomw/worker.h b/src/libloomw/worker.h index e4f521cbfec297885ea0e481e50ca313194d6cf5..ee672620875215f7a40a16e15b55a6a031bcc032 100644 --- a/src/libloomw/worker.h +++ b/src/libloomw/worker.h @@ -1,12 +1,12 @@ -#ifndef LOOM_WORKER_H -#define LOOM_WORKER_H +#ifndef LIBLOOMW_WORKER_H +#define LIBLOOMW_WORKER_H #include "interconnect.h" #include "taskinstance.h" #include "unpacking.h" #include "taskfactory.h" -#include "dictionary.h" +#include "libloom/dictionary.h" #include "libloom/listener.h" #include <uv.h> @@ -36,8 +36,8 @@ public: void register_basic_tasks(); void new_task(std::unique_ptr<Task> task); - void send_data(const std::string &address, Id id, std::shared_ptr<Data> &data); - bool send_data(const std::string &address, Id id) { + void send_data(const std::string &address, base::Id id, std::shared_ptr<Data> &data); + bool send_data(const std::string &address, base::Id id) { auto& data = public_data[id]; if (data.get() == nullptr) { return false; @@ -49,15 +49,15 @@ public: void task_finished(TaskInstance &task_instance, Data &data); void task_failed(TaskInstance &task_instance, const std::string &error_msg); void task_redirect(TaskInstance &task, std::unique_ptr<TaskDescription> new_task_desc); - void publish_data(Id id, const std::shared_ptr<Data> &data); - void remove_data(Id id); + void publish_data(base::Id id, const std::shared_ptr<Data> &data); + void remove_data(base::Id id); - bool has_data(Id id) const + bool has_data(base::Id id) const { return public_data.find(id) != public_data.end(); } - std::shared_ptr<Data>& get_data(Id id) + std::shared_ptr<Data>& get_data(base::Id id) { auto it = public_data.find(id); assert(it != public_data.end()); @@ -99,7 +99,7 @@ public: return work_dir; } - std::string get_run_dir(Id id); + std::string get_run_dir(base::Id id); void check_waiting_tasks(); void check_ready_tasks(); @@ -108,9 +108,9 @@ public: void add_unpacker(const std::string &symbol, const UnpackFactoryFn &unpacker); - std::unique_ptr<DataUnpacker> get_unpacker(DataTypeId id); + std::unique_ptr<DataUnpacker> get_unpacker(base::Id id); - Dictionary& get_dictionary() { + base::Dictionary& get_dictionary() { return dictionary; } @@ -131,18 +131,18 @@ private: std::vector<std::unique_ptr<TaskInstance>> active_tasks; std::vector<std::unique_ptr<Task>> ready_tasks; std::vector<std::unique_ptr<Task>> waiting_tasks; - std::unordered_map<Id, std::unique_ptr<TaskFactory>> task_factories; + std::unordered_map<base::Id, std::unique_ptr<TaskFactory>> task_factories; std::unordered_map<int, std::shared_ptr<Data>> public_data; std::string work_dir; - std::unordered_map<DataTypeId, UnpackFactoryFn> unpack_ffs; + std::unordered_map<base::Id, UnpackFactoryFn> unpack_ffs; base::Socket server_conn; std::unordered_map<std::string, std::unique_ptr<InterConnection>> connections; std::vector<std::unique_ptr<InterConnection>> nonregistered_connections; - Dictionary dictionary; + base::Dictionary dictionary; std::string server_address; int server_port; @@ -157,4 +157,4 @@ private: } -#endif // LOOM_WORKER_H +#endif // LIBLOOMW_WORKER_H diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index ca7467ac52c1ea97d90c9f0ac9830f79c8b031e0..a143a7e9c8335b8913937eda4299a7e403749781 100644 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -29,7 +29,7 @@ add_executable(loom-server $<TARGET_OBJECTS:loom-server-lib> main.cpp) -target_link_libraries(loom-server libloom libloomw ${LIBUV_LIBRARY} pthread) +target_link_libraries(loom-server libloom ${LIBUV_LIBRARY} pthread) target_link_libraries(loom-server ${PROTOBUF_LIBRARIES}) install (TARGETS loom-server DESTINATION bin) diff --git a/src/server/clientconn.cpp b/src/server/clientconn.cpp index 484627cad6d9e51d48a2b4660dbfd3333af3bb3b..a97985bbae126ecd3fd53753da5bd4e897395f5d 100644 --- a/src/server/clientconn.cpp +++ b/src/server/clientconn.cpp @@ -3,8 +3,8 @@ -#include "libloomw/loomplan.pb.h" -#include "libloomw/loomcomm.pb.h" +#include "libloom/loomplan.pb.h" +#include "libloom/loomcomm.pb.h" #include "libloom/log.h" #include "libloom/compat.h" #include "libloom/pbutils.h" @@ -48,7 +48,7 @@ void ClientConnection::on_message(const char *buffer, size_t size) auto& task_manager = server.get_task_manager(); const loomplan::Plan &plan = submit.plan(); - loom::Id id_base = server.new_id(plan.tasks_size()); + loom::base::Id id_base = server.new_id(plan.tasks_size()); task_manager.add_plan(Plan(plan, id_base, server.get_dictionary()), submit.report()); logger->info("Plan submitted tasks={} report={}", plan.tasks_size(), submit.report()); } diff --git a/src/server/compstate.cpp b/src/server/compstate.cpp index 62551769f488d429e78d001689524d2361211cb1..16a37116c7ca54acfb4d15ff85a0d078d36b23bb 100644 --- a/src/server/compstate.cpp +++ b/src/server/compstate.cpp @@ -11,7 +11,7 @@ using namespace loom::base; ComputationState::ComputationState(Server &server) : server(server) { - loom::Dictionary &dictionary = server.get_dictionary(); + Dictionary &dictionary = server.get_dictionary(); slice_task_id = dictionary.find_or_create("loom/base/slice"); get_task_id = dictionary.find_or_create("loom/base/get"); dslice_task_id = dictionary.find_or_create("loom/scheduler/dslice"); @@ -58,7 +58,7 @@ void ComputationState::set_task_finished(const PlanNode&node, size_t size, size_ workers[wc].free_cpus += node.get_n_cpus(); } -void ComputationState::remove_state(loom::Id id) +void ComputationState::remove_state(loom::base::Id id) { auto it = states.find(id); assert(it != states.end()); @@ -67,7 +67,7 @@ void ComputationState::remove_state(loom::Id id) void ComputationState::add_ready_nexts(const PlanNode &node) { - for (loom::Id id : node.get_nexts()) { + for (loom::base::Id id : node.get_nexts()) { const PlanNode &node = get_node(id); if (is_ready(node)) { if (node.get_policy() == PlanNode::POLICY_SCHEDULER) { @@ -84,7 +84,7 @@ bool ComputationState::is_finished() const return states.empty(); } -void ComputationState::add_pending_task(loom::Id id) +void ComputationState::add_pending_task(loom::base::Id id) { logger->debug("Add pending task and creating state id={}", id); auto pair = states.emplace(std::make_pair(id, TaskState(get_node(id)))); @@ -94,7 +94,7 @@ void ComputationState::add_pending_task(loom::Id id) void ComputationState::expand_node(const PlanNode &node) { - loom::Id id = node.get_task_type(); + loom::base::Id id = node.get_task_type(); if (id == dslice_task_id) { expand_dslice(node); @@ -119,7 +119,7 @@ void ComputationState::expand_dslice(const PlanNode &node) // Do a copy again const PlanNode &node2 = get_node(node.get_nexts()[0]); - std::vector<loom::Id> inputs = node.get_inputs(); + std::vector<loom::base::Id> inputs = node.get_inputs(); assert(inputs.size() == 1); TaskState &input = get_state(inputs[0]); size_t length = input.get_length(); @@ -143,8 +143,8 @@ void ComputationState::expand_dslice(const PlanNode &node) configs.push_back(std::string(reinterpret_cast<char*>(&indices), sizeof(size_t) * 2)); } - loom::Id id_base1 = server.new_id(configs.size()); - loom::Id id_base2 = server.new_id(configs.size()); + loom::base::Id id_base1 = server.new_id(configs.size()); + loom::base::Id id_base2 = server.new_id(configs.size()); logger->debug("Expanding 'dslice' id={} length={} pieces={} new_id_base={}", node1.get_id(), length, configs.size(), id_base1); @@ -161,7 +161,7 @@ void ComputationState::expand_dget(const PlanNode &node) // Do a copy again const PlanNode &node2 = get_node(node.get_nexts()[0]); - std::vector<loom::Id> inputs = node.get_inputs(); + std::vector<loom::base::Id> inputs = node.get_inputs(); assert(inputs.size() == 1); TaskState &input = get_state(inputs[0]); size_t length = input.get_length(); @@ -171,8 +171,8 @@ void ComputationState::expand_dget(const PlanNode &node) configs.push_back(std::string(reinterpret_cast<char*>(&i), sizeof(size_t))); } - loom::Id id_base1 = server.new_id(configs.size()); - loom::Id id_base2 = server.new_id(configs.size()); + loom::base::Id id_base1 = server.new_id(configs.size()); + loom::base::Id id_base2 = server.new_id(configs.size()); logger->debug("Expanding 'dget' id={} length={} new_id_base={}", node1.get_id(), length, id_base1); @@ -185,8 +185,8 @@ void ComputationState::expand_dget(const PlanNode &node) void ComputationState::make_expansion(std::vector<std::string> &configs, const PlanNode &n1, const PlanNode &n2, - loom::Id id_base1, - loom::Id id_base2) + loom::base::Id id_base1, + loom::base::Id id_base2) { PlanNode node1 = n1; // Make copy @@ -205,7 +205,7 @@ void ComputationState::make_expansion(std::vector<std::string> &configs, PlanNode t1(id_base1, -1, node1.get_policy(), node1.get_n_cpus(), false, node1.get_task_type(), config1, node1.get_inputs()); - t1.set_nexts(std::vector<loom::Id>{id_base2}); + t1.set_nexts(std::vector<loom::base::Id>{id_base2}); plan.add_node(std::move(t1)); add_pending_task(id_base1); @@ -223,12 +223,12 @@ void ComputationState::make_expansion(std::vector<std::string> &configs, id_base2++; } - for (loom::Id id : node1.get_inputs()) { + for (loom::base::Id id : node1.get_inputs()) { plan.get_node(id).replace_next(node1.get_id(), ids1); get_state(id).inc_ref_counter(size - 1); } - for (loom::Id id : node2.get_nexts()) { + for (loom::base::Id id : node2.get_nexts()) { plan.get_node(id).replace_input(node2.get_id(), ids2); } } @@ -236,7 +236,7 @@ void ComputationState::make_expansion(std::vector<std::string> &configs, bool ComputationState::is_ready(const PlanNode &node) { - for (loom::Id id : node.get_inputs()) { + for (loom::base::Id id : node.get_inputs()) { if (states.find(id) == states.end()) { return false; } @@ -258,7 +258,7 @@ int ComputationState::get_max_cpus() return max_cpus; } -TaskState &ComputationState::get_state(loom::Id id) +TaskState &ComputationState::get_state(loom::base::Id id) { auto it = states.find(id); if (it == states.end()) { @@ -269,7 +269,7 @@ TaskState &ComputationState::get_state(loom::Id id) } -/*TaskState &ComputationState::get_state_or_create(loom::Id id) +/*TaskState &ComputationState::get_state_or_create(loom::base::Id id) { auto it = states.find(id); if (it == states.end()) { @@ -280,18 +280,18 @@ TaskState &ComputationState::get_state(loom::Id id) return it->second; }*/ -void ComputationState::add_ready_nodes(const std::vector<loom::Id> &ids) +void ComputationState::add_ready_nodes(const std::vector<loom::base::Id> &ids) { - for (loom::Id id : ids) { + for (loom::base::Id id : ids) { add_pending_task(id); } } void ComputationState::collect_requirements_for_node(WorkerConnection *wc, const PlanNode &node, - std::unordered_set<loom::Id> &nonlocals) + std::unordered_set<loom::base::Id> &nonlocals) { - for (loom::Id id : node.get_inputs()) { + for (loom::base::Id id : node.get_inputs()) { TaskState &state = get_state(id); if (state.get_worker_status(wc) == TaskState::S_OWNER) { // nothing diff --git a/src/server/compstate.h b/src/server/compstate.h index 72606a9fa3d9a0f3f635a4f5d301ecf08df76d4d..8682d55f02c2196773eb3da15582fecb6c64de4a 100644 --- a/src/server/compstate.h +++ b/src/server/compstate.h @@ -23,9 +23,9 @@ public: /*TaskDistribution compute_initial_distribution(); TaskDistribution compute_distribution();*/ - TaskState& get_state(loom::Id id); + TaskState& get_state(loom::base::Id id); - TaskState* get_state_ptr(loom::Id id) { + TaskState* get_state_ptr(loom::base::Id id) { auto it = states.find(id); if (it != states.end()) { return &it->second; @@ -34,20 +34,20 @@ public: } } - //TaskState& get_state_or_create(loom::Id id); + //TaskState& get_state_or_create(loom::base::Id id); - const PlanNode& get_node(loom::Id id) { + const PlanNode& get_node(loom::base::Id id) { return plan.get_node(id); } - void add_ready_nodes(const std::vector<loom::Id> &ids); + void add_ready_nodes(const std::vector<loom::base::Id> &ids); void set_task_finished(const PlanNode& node, size_t size, size_t length, WorkerConnection *wc); bool has_pending_tasks() const { return !pending_tasks.empty(); } - const std::unordered_set<loom::Id>& get_pending_tasks() const { + const std::unordered_set<loom::base::Id>& get_pending_tasks() const { return pending_tasks; } @@ -55,7 +55,7 @@ public: return plan; } - void remove_state(loom::Id id); + void remove_state(loom::base::Id id); bool is_ready(const PlanNode &node); void add_ready_nexts(const PlanNode &node); @@ -71,19 +71,19 @@ public: } private: - std::unordered_map<loom::Id, TaskState> states; + std::unordered_map<loom::base::Id, TaskState> states; std::unordered_map<WorkerConnection*, WorkerInfo> workers; - std::unordered_set<loom::Id> pending_tasks; + std::unordered_set<loom::base::Id> pending_tasks; Plan plan; Server &server; uint64_t base_time; - loom::Id dslice_task_id; - loom::Id dget_task_id; + loom::base::Id dslice_task_id; + loom::base::Id dget_task_id; - loom::Id slice_task_id; - loom::Id get_task_id; + loom::base::Id slice_task_id; + loom::base::Id get_task_id; WorkerConnection *get_best_holder_of_deps(PlanNode *task); @@ -93,12 +93,12 @@ private: void expand_dslice(const PlanNode &node); void expand_dget(const PlanNode &node); void make_expansion(std::vector<std::string> &configs, const PlanNode &node1, - const PlanNode &node2, loom::Id id_base1, loom::Id id_base2); + const PlanNode &node2, loom::base::Id id_base1, loom::base::Id id_base2); void collect_requirements_for_node(WorkerConnection *wc, const PlanNode &node, - std::unordered_set<loom::Id> &nonlocals); + std::unordered_set<loom::base::Id> &nonlocals); size_t task_transfer_cost(const PlanNode &node); - void add_pending_task(loom::Id id); + void add_pending_task(loom::base::Id id); int get_max_cpus(); }; diff --git a/src/server/dummyworker.cpp b/src/server/dummyworker.cpp index 0c231b3b6bfd0bb4805d5aa44bbd024b55ed38e2..6c3016da49ec4fbf022200a9a2eb1e95ca1ac5b5 100644 --- a/src/server/dummyworker.cpp +++ b/src/server/dummyworker.cpp @@ -6,7 +6,7 @@ #include <libloom/pbutils.h> #include <libloom/log.h> -#include <libloomw/loomcomm.pb.h> +#include <libloom/loomcomm.pb.h> #include <sstream> diff --git a/src/server/dummyworker.h b/src/server/dummyworker.h index a6e05227edf139378090d120c44fb8ffac3727bc..741473b21baebe721d0a1fc7c228ea44f93e0c13 100644 --- a/src/server/dummyworker.h +++ b/src/server/dummyworker.h @@ -9,7 +9,7 @@ #include <libloom/listener.h> #include <libloom/socket.h> #include <libloom/sendbuffer.h> -#include <libloomw/types.h> +#include <libloom/types.h> class Server; class DWConnection; diff --git a/src/server/freshconn.cpp b/src/server/freshconn.cpp index 8a684234aaf463b2b289231ff294c5e036f792e0..aa27145f0b7124163f97c4580df17d2e52e05f55 100644 --- a/src/server/freshconn.cpp +++ b/src/server/freshconn.cpp @@ -5,7 +5,7 @@ #include "libloom/compat.h" #include "libloom/log.h" -#include "libloomw/loomcomm.pb.h" +#include "libloom/loomcomm.pb.h" #include <sstream> diff --git a/src/server/plan.cpp b/src/server/plan.cpp index b6c2df24d02b97c016791514d5eb4dacb9925ca3..3c1a720e998ce2e87f4a6e2a2cf6a2d44de735a4 100644 --- a/src/server/plan.cpp +++ b/src/server/plan.cpp @@ -2,7 +2,7 @@ #include <algorithm> -#include "libloomw/loomplan.pb.h" +#include "libloom/loomplan.pb.h" #include "libloom/log.h" static PlanNode::Policy read_task_policy(loomplan::Task_Policy policy) { @@ -24,11 +24,11 @@ Plan::Plan() } -Plan::Plan(const loomplan::Plan &plan, loom::Id id_base, loom::Dictionary &dictionary) +Plan::Plan(const loomplan::Plan &plan, loom::base::Id id_base, loom::base::Dictionary &dictionary) { std::vector<int> resources; - loom::Id resource_ncpus = dictionary.find_or_create("loom/resource/cpus"); + loom::base::Id resource_ncpus = dictionary.find_or_create("loom/resource/cpus"); auto rr_size = plan.resource_requests_size(); for (int i = 0; i < rr_size; i++) { auto &rr = plan.resource_requests(i); @@ -62,11 +62,11 @@ Plan::Plan(const loomplan::Plan &plan, loom::Id id_base, loom::Dictionary &dicti for (auto& pair : tasks) { auto& task = pair.second; - loom::Id my_id = task.id; - std::vector<loom::Id> inps(task.get_inputs()); + loom::base::Id my_id = task.id; + std::vector<loom::base::Id> inps(task.get_inputs()); std::sort(inps.begin(), inps.end()); - loom::Id prev = -1; - for (loom::Id id : inps) { + loom::base::Id prev = -1; + for (loom::base::Id id : inps) { if (prev != id) { auto it = tasks.find(id); assert(it != tasks.end()); @@ -84,9 +84,9 @@ Plan::Plan(const loomplan::Plan &plan, loom::Id id_base, loom::Dictionary &dicti } } -std::vector<loom::Id> Plan::get_init_tasks() const +std::vector<loom::base::Id> Plan::get_init_tasks() const { - std::vector<loom::Id> result; + std::vector<loom::base::Id> result; foreach_task([&result](const PlanNode &node){ if (node.get_inputs().empty()) { result.push_back(node.id); diff --git a/src/server/plan.h b/src/server/plan.h index 11111b50c6d41a7f53cfe2ce8de787e2d8986bfe..a1aa9575cc5abafe7e5dd9eadfecc6446cfacb08 100644 --- a/src/server/plan.h +++ b/src/server/plan.h @@ -3,7 +3,7 @@ #include "plannode.h" -#include <libloomw/dictionary.h> +#include <libloom/dictionary.h> #include <unordered_map> #include <unordered_set> @@ -17,7 +17,7 @@ class Plan { public: Plan(); - Plan(const loomplan::Plan &plan, loom::Id id_base, loom::Dictionary &dictionary); + Plan(const loomplan::Plan &plan, loom::base::Id id_base, loom::base::Dictionary &dictionary); template<typename F> void foreach_task(F f) const { for (auto &pair : tasks) { @@ -25,13 +25,13 @@ public: } } - const PlanNode& get_node(loom::Id id) const { + const PlanNode& get_node(loom::base::Id id) const { auto it = tasks.find(id); assert(it != tasks.end()); return it->second; } - PlanNode& get_node(loom::Id id) { + PlanNode& get_node(loom::base::Id id) { auto it = tasks.find(id); assert(it != tasks.end()); return it->second; @@ -41,21 +41,21 @@ public: return tasks.size(); } - std::vector<loom::Id> get_init_tasks() const; + std::vector<loom::base::Id> get_init_tasks() const; template<typename T> void add_node(T&& task) { tasks.emplace(std::make_pair(task.get_id(), std::forward<T>(task))); } - void remove_node(loom::Id id) { + void remove_node(loom::base::Id id) { auto it = tasks.find(id); assert(it != tasks.end()); tasks.erase(it); } private: - std::unordered_map<loom::Id, PlanNode> tasks; + std::unordered_map<loom::base::Id, PlanNode> tasks; }; #endif // LOOM_SERVER_PLAN_H diff --git a/src/server/plannode.cpp b/src/server/plannode.cpp index dbae6ec6ee1c6e51a550e6546aa23356d76c167b..977c85588a03dbc91523c878d9803f5f90dce3ea 100644 --- a/src/server/plannode.cpp +++ b/src/server/plannode.cpp @@ -5,7 +5,7 @@ #include <iomanip> -void PlanNode::replace_input(loom::Id old_input, const std::vector<loom::Id> &new_inputs) +void PlanNode::replace_input(loom::base::Id old_input, const std::vector<loom::base::Id> &new_inputs) { auto i = std::find(inputs.begin(), inputs.end(), old_input); assert (i != inputs.end()); @@ -13,7 +13,7 @@ void PlanNode::replace_input(loom::Id old_input, const std::vector<loom::Id> &ne inputs.insert(i2, new_inputs.begin(), new_inputs.end()); } -void PlanNode::replace_next(loom::Id old_next, const std::vector<loom::Id> &new_nexts) +void PlanNode::replace_next(loom::base::Id old_next, const std::vector<loom::base::Id> &new_nexts) { auto i = std::find(nexts.begin(), nexts.end(), old_next); assert (i != nexts.end()); diff --git a/src/server/plannode.h b/src/server/plannode.h index db9c73b05a5da74d4bea9dc1cfcf369875b3bc5a..d84c1094e127a54992a76ecd1c416839b1ead562 100644 --- a/src/server/plannode.h +++ b/src/server/plannode.h @@ -1,7 +1,7 @@ #ifndef LOOM_SERVER_TASKNODE_H #define LOOM_SERVER_TASKNODE_H -#include <libloomw/types.h> +#include <libloom/types.h> #include <vector> #include <string> @@ -24,27 +24,27 @@ public: POLICY_SCHEDULER }; - PlanNode(loom::Id id, - loom::Id client_id, + PlanNode(loom::base::Id id, + loom::base::Id client_id, Policy policy, int n_cpus, bool result_flag, int task_type, const std::string &config, - std::vector<loom::Id> &&inputs) + std::vector<loom::base::Id> &&inputs) : id(id), policy(policy), n_cpus(n_cpus), result_flag(result_flag), task_type(task_type), inputs(std::move(inputs)), config(config), client_id(client_id) {} - PlanNode(loom::Id id, - loom::Id client_id, + PlanNode(loom::base::Id id, + loom::base::Id client_id, Policy policy, int n_cpus, bool result_flag, - int task_type, + loom::base::Id task_type, const std::string &config, - const std::vector<loom::Id> &inputs) + const std::vector<loom::base::Id> &inputs) : id(id), policy(policy), n_cpus(n_cpus), result_flag(result_flag), task_type(task_type), inputs(inputs), config(config), client_id(client_id) @@ -54,15 +54,15 @@ public: return policy; } - loom::Id get_id() const { + loom::base::Id get_id() const { return id; } - loom::Id get_client_id() const { + loom::base::Id get_client_id() const { return client_id; } - loom::TaskId get_task_type() const { + loom::base::Id get_task_type() const { return task_type; } @@ -78,16 +78,16 @@ public: this->nexts = nexts; } - const std::vector<loom::Id>& get_inputs() const { + const std::vector<loom::base::Id>& get_inputs() const { return inputs; } - const std::vector<loom::Id>& get_nexts() const { + const std::vector<loom::base::Id>& get_nexts() const { return nexts; } - void replace_input(loom::Id old_input, const std::vector<loom::Id> &new_inputs); - void replace_next(loom::Id old_next, const std::vector<loom::Id> &new_nexts); + void replace_input(loom::base::Id old_input, const std::vector<loom::base::Id> &new_inputs); + void replace_next(loom::base::Id old_next, const std::vector<loom::base::Id> &new_nexts); std::string get_type_name(Server &server); std::string get_info(Server &server); @@ -105,15 +105,15 @@ public: } private: - loom::Id id; + loom::base::Id id; Policy policy; int n_cpus; // TODO: Replace by resource index bool result_flag; - loom::TaskId task_type; - std::vector<loom::Id> inputs; - std::vector<loom::Id> nexts; + loom::base::Id task_type; + std::vector<loom::base::Id> inputs; + std::vector<loom::base::Id> nexts; std::string config; - loom::Id client_id; + loom::base::Id client_id; }; diff --git a/src/server/scheduler.cpp b/src/server/scheduler.cpp index 504ddb5a3a5bc84dbf5edcd47819c3bb5801a927..1562cb12b90bf58a0262cc920d4af44c1eb989c0 100644 --- a/src/server/scheduler.cpp +++ b/src/server/scheduler.cpp @@ -77,14 +77,14 @@ Scheduler::Scheduler(ComputationState &cstate) } // Gather info about pending tasks - std::unordered_map<loom::Id, size_t> inputs; - std::unordered_map<loom::Id, size_t> nexts; + std::unordered_map<loom::base::Id, size_t> inputs; + std::unordered_map<loom::base::Id, size_t> nexts; size_t input_i = 0; // * 2 because units is expanded in solve() s_units.reserve(cstate.get_pending_tasks().size() * 2); - for (loom::Id id : cstate.get_pending_tasks()) { + for (loom::base::Id id : cstate.get_pending_tasks()) { const PlanNode &node = cstate.get_node(id); SUnit s_unit; @@ -98,7 +98,7 @@ Scheduler::Scheduler(ComputationState &cstate) s_unit.ids.push_back(id); - for (loom::Id id2 : node.get_inputs()) { + for (loom::base::Id id2 : node.get_inputs()) { auto it = inputs.find(id2); if (it == inputs.end()) { s_unit.inputs.push_back(input_i); @@ -108,9 +108,9 @@ Scheduler::Scheduler(ComputationState &cstate) } } - for (loom::Id id2 : node.get_nexts()) { + for (loom::base::Id id2 : node.get_nexts()) { const PlanNode &node2 = cstate.get_node(id2); - for (loom::Id id3 : node2.get_inputs()) { + for (loom::base::Id id3 : node2.get_inputs()) { const TaskState *state = cstate.get_state_ptr(id3); if (state) { s_unit.nexts.push_back(id2); @@ -138,7 +138,7 @@ Scheduler::Scheduler(ComputationState &cstate) const PlanNode &node = cstate.get_node(pair.first); NUnit n_unit; n_unit.n_cpus = node.get_n_cpus(); - for (loom::Id id : node.get_inputs()) { + for (loom::base::Id id : node.get_inputs()) { const TaskState *state = cstate.get_state_ptr(id); if (state) { state->foreach_source([&input_i, id, &n_unit, &inputs](WorkerConnection *wc) { @@ -374,7 +374,7 @@ void Scheduler::create_derived_units() }); Worker w = workers[0]; - std::vector<loom::Id> result; + std::vector<loom::base::Id> result; for (auto &unit : units) { if (unit.n_cpus <= w.free_cpus) { diff --git a/src/server/scheduler.h b/src/server/scheduler.h index 17371bedaeec90dc4883893817743246728d6a95..1475f50e808dccdec9f9bec3aa52c7e2302843d4 100644 --- a/src/server/scheduler.h +++ b/src/server/scheduler.h @@ -3,7 +3,7 @@ #include "compstate.h" -using TaskDistribution = std::unordered_map<WorkerConnection*, std::vector<loom::Id>>; +using TaskDistribution = std::unordered_map<WorkerConnection*, std::vector<loom::base::Id>>; class Scheduler { @@ -14,8 +14,8 @@ class Scheduler int64_t expected_size; std::vector<size_t> inputs; std::vector<size_t> next_inputs; - std::vector<loom::Id> nexts; - std::vector<loom::Id> ids; + std::vector<loom::base::Id> nexts; + std::vector<loom::base::Id> ids; }; struct Worker { diff --git a/src/server/server.cpp b/src/server/server.cpp index 03f59c861f8deac5018cc4ca2445d5a1fe8c9425..e249905272a7a2e21b9c8905abf80f7d125daf00 100644 --- a/src/server/server.cpp +++ b/src/server/server.cpp @@ -3,9 +3,7 @@ #include "libloom/pbutils.h" #include "libloom/compat.h" #include "libloom/log.h" - -#include "libloomw/utils.h" -#include "libloomw/loomcomm.pb.h" +#include "libloom/loomcomm.pb.h" #include <sstream> @@ -69,7 +67,7 @@ void Server::remove_client_connection(ClientConnection &conn) client_connection.reset(); } -loom::Id Server::translate_to_client_id(loom::Id id) const +loom::base::Id Server::translate_to_client_id(loom::base::Id id) const { return task_manager.get_plan().get_node(id).get_client_id(); } @@ -84,7 +82,7 @@ void Server::remove_freshconnection(FreshConnection &conn) fresh_connections.erase(i); } -void Server::on_task_finished(loom::Id id, size_t size, size_t length, WorkerConnection *wc) +void Server::on_task_finished(loom::base::Id id, size_t size, size_t length, WorkerConnection *wc) { task_manager.on_task_finished(id, size, length, wc); } diff --git a/src/server/server.h b/src/server/server.h index 81fdd1e37cda32da23daf3ba2d3451d3bd1092df..ec655dade028703f1ba71513ba9ad564cdaa437a 100644 --- a/src/server/server.h +++ b/src/server/server.h @@ -8,7 +8,7 @@ #include "dummyworker.h" -#include "libloomw/dictionary.h" +#include "libloom/dictionary.h" #include "libloom/listener.h" #include <vector> @@ -33,7 +33,7 @@ public: void add_client_connection(std::unique_ptr<ClientConnection> conn); void remove_client_connection(ClientConnection &conn); - loom::Id translate_to_client_id(loom::Id id) const; + loom::base::Id translate_to_client_id(loom::base::Id id) const; DummyWorker& get_dummy_worker() { return dummy_worker; @@ -58,18 +58,18 @@ public: return client_connection.get() != nullptr; } - void add_resend_task(loom::Id id); + void add_resend_task(loom::base::Id id); - void on_task_finished(loom::Id id, size_t size, size_t length, WorkerConnection *wc); + void on_task_finished(loom::base::Id id, size_t size, size_t length, WorkerConnection *wc); - loom::Dictionary& get_dictionary() { + loom::base::Dictionary& get_dictionary() { return dictionary; } void inform_about_error(std::string &error_msg); - void inform_about_task_error(loom::Id id, WorkerConnection &wconn, const std::string &error_msg); + void inform_about_task_error(loom::base::Id id, WorkerConnection &wconn, const std::string &error_msg); - loom::Id new_id(int count = 1) { + loom::base::Id new_id(int count = 1) { auto id = id_counter; id_counter += count; return id; @@ -85,7 +85,7 @@ private: - loom::Dictionary dictionary; + loom::base::Dictionary dictionary; uv_loop_t *loop; loom::base::Listener listener; @@ -99,7 +99,7 @@ private: TaskManager task_manager; DummyWorker dummy_worker; - loom::Id id_counter; + loom::base::Id id_counter; void on_new_connection(); bool task_distribution_active; diff --git a/src/server/taskmanager.cpp b/src/server/taskmanager.cpp index 962f5791c30a37a04ee3e66bdb815704bfb50627..bda603501dd79387eb2dfdcc6a9af5455149c70e 100644 --- a/src/server/taskmanager.cpp +++ b/src/server/taskmanager.cpp @@ -2,8 +2,8 @@ #include "server.h" #include "libloom/compat.h" -#include "libloomw/loomplan.pb.h" -#include "libloomw/loomcomm.pb.h" +#include "libloom/loomplan.pb.h" +#include "libloom/loomcomm.pb.h" #include "libloom/log.h" #include <algorithm> @@ -39,7 +39,7 @@ void TaskManager::distribute_work(const TaskDistribution &distribution) } for (auto& p : distribution) { - for (loom::Id id : p.second) { + for (loom::base::Id id : p.second) { start_task(p.first, id); } } @@ -48,7 +48,7 @@ void TaskManager::distribute_work(const TaskDistribution &distribution) void TaskManager::start_task(WorkerConnection *wc, Id task_id) { const PlanNode &node = cstate.get_node(task_id); - for (loom::Id id : node.get_inputs()) { + for (loom::base::Id id : node.get_inputs()) { TaskState &state = cstate.get_state(id); TaskState::WStatus st = state.get_worker_status(wc); if (st == TaskState::S_NONE) { @@ -91,14 +91,14 @@ void TaskManager::remove_state(TaskState &state) { logger->debug("Removing state id={}", state.get_id()); assert(state.get_ref_counter() == 0); - loom::Id id = state.get_id(); + loom::base::Id id = state.get_id(); state.foreach_owner([id](WorkerConnection *wc) { wc->remove_data(id); }); cstate.remove_state(id); } -void TaskManager::on_task_finished(loom::Id id, size_t size, size_t length, WorkerConnection *wc) +void TaskManager::on_task_finished(loom::base::Id id, size_t size, size_t length, WorkerConnection *wc) { const PlanNode &node = cstate.get_node(id); @@ -126,11 +126,11 @@ void TaskManager::on_task_finished(loom::Id id, size_t size, size_t length, Work } // Remove duplicates - std::vector<loom::Id> inputs = node.get_inputs(); + std::vector<loom::base::Id> inputs = node.get_inputs(); std::sort(inputs.begin(), inputs.end()); inputs.erase(std::unique(inputs.begin(), inputs.end()), inputs.end()); - for (loom::Id id : inputs) { + for (loom::base::Id id : inputs) { TaskState &state = cstate.get_state(id); if (state.dec_ref_counter()) { remove_state(state); diff --git a/src/server/taskmanager.h b/src/server/taskmanager.h index 71df7a2909c3ae086df2d540b392942d0461cd25..4768eb0ef89915c48b139beed42a90c20483473e 100644 --- a/src/server/taskmanager.h +++ b/src/server/taskmanager.h @@ -36,7 +36,7 @@ public: return cstate.get_plan(); } - void on_task_finished(loom::Id id, size_t size, size_t length, WorkerConnection *wc); + void on_task_finished(loom::base::Id id, size_t size, size_t length, WorkerConnection *wc); void register_worker(WorkerConnection *wc); bool is_plan_finished() const { @@ -50,7 +50,7 @@ private: ComputationState cstate; void distribute_work(const TaskDistribution &distribution); - void start_task(WorkerConnection *wc, loom::Id task_id); + void start_task(WorkerConnection *wc, loom::base::Id task_id); void remove_state(TaskState &state); bool report; diff --git a/src/server/taskstate.h b/src/server/taskstate.h index d98fd36f319bf9fad4e1c67d1705a88ea1a67a89..c3d7fd363af67e5974f885865a97e6dcd800ec8c 100644 --- a/src/server/taskstate.h +++ b/src/server/taskstate.h @@ -3,7 +3,7 @@ #include <unordered_map> -#include "libloomw/types.h" +#include "libloom/types.h" class WorkerConnection; template<typename T> using WorkerMap = std::unordered_map<WorkerConnection*, T>; @@ -22,7 +22,7 @@ public: TaskState(const PlanNode &node); - loom::Id get_id() const { + loom::base::Id get_id() const { return id; } @@ -108,7 +108,7 @@ public: std::string get_info() const; private: - loom::Id id; + loom::base::Id id; WorkerMap<WStatus> workers; int ref_count; size_t size; diff --git a/src/server/workerconn.cpp b/src/server/workerconn.cpp index f8b85c7203fa14cdc6a552d1d1e8ff791dde51fd..661dc3437a9c09e1ab77e9fd70d2233686838b2d 100644 --- a/src/server/workerconn.cpp +++ b/src/server/workerconn.cpp @@ -2,7 +2,7 @@ #include "server.h" #include "libloom/log.h" -#include "libloomw/loomcomm.pb.h" +#include "libloom/loomcomm.pb.h" #include "taskmanager.h" @@ -12,8 +12,8 @@ using namespace loom::base; WorkerConnection::WorkerConnection(Server &server, std::unique_ptr<loom::base::Socket> socket, const std::string& address, - const std::vector<loom::Id> &task_types, - const std::vector<loom::Id> &data_types, + const std::vector<loom::base::Id> &task_types, + const std::vector<loom::base::Id> &data_types, int resource_cpus, int worker_id) : server(server), socket(std::move(socket)), @@ -67,7 +67,7 @@ void WorkerConnection::send_task(const PlanNode &task) msg.set_task_type(task.get_task_type()); msg.set_task_config(task.get_config()); - for (loom::Id id : task.get_inputs()) { + for (loom::base::Id id : task.get_inputs()) { msg.add_task_inputs(id); } send_message(*socket, msg); diff --git a/src/server/workerconn.h b/src/server/workerconn.h index bfbae37b85d7e0db2e428719f77c8e88e36c80c0..2c90bdb24947f1c4dd2a51f713fd3b78e2f29cf0 100644 --- a/src/server/workerconn.h +++ b/src/server/workerconn.h @@ -2,7 +2,7 @@ #define LOOM_SERVER_WORKERCONN #include "libloom/socket.h" -#include "libloomw/types.h" +#include "libloom/types.h" class Server; class PlanNode; @@ -15,15 +15,15 @@ public: WorkerConnection(Server &server, std::unique_ptr<loom::base::Socket> socket, const std::string& address, - const std::vector<loom::Id> &task_types, - const std::vector<loom::Id> &data_types, + const std::vector<loom::base::Id> &task_types, + const std::vector<loom::base::Id> &data_types, int resource_cpus, int worker_id); void on_message(const char *buffer, size_t size); void send_task(const PlanNode &task); - void send_data(loom::Id id, const std::string &address); - void remove_data(loom::Id id); + void send_data(loom::base::Id id, const std::string &address); + void remove_data(loom::base::Id id); const std::string &get_address() { return address; diff --git a/tests/server/CMakeLists.txt b/tests/server/CMakeLists.txt index 2c1f34f701306e789501bc970a0e482d7f6e52ad..dc82a74439dc3e3f6d2faf7e754d13a4ea994674 100644 --- a/tests/server/CMakeLists.txt +++ b/tests/server/CMakeLists.txt @@ -8,7 +8,7 @@ add_executable(server-test test_scheduler.cpp main.cpp) -target_link_libraries(server-test Catch libloom libloomw ${LIBUV_LIBRARY} pthread) +target_link_libraries(server-test Catch libloom ${LIBUV_LIBRARY} pthread) target_link_libraries(server-test ${LPSOLVE_LIBRARY} ${COLAMD_LIBRARY} dl) target_link_libraries(server-test ${PROTOBUF_LIBRARIES}) diff --git a/tests/server/test_scheduler.cpp b/tests/server/test_scheduler.cpp index a037fc078f2bf49ba661e5434f7fda6b419f8c8b..df69a203de37864cf795d81419f9325cd016cf84 100644 --- a/tests/server/test_scheduler.cpp +++ b/tests/server/test_scheduler.cpp @@ -3,7 +3,7 @@ #include "src/server/server.h" #include "libloom/compat.h" -#include "libloomw/loomplan.pb.h" +#include "libloom/loomplan.pb.h" #include <set> @@ -23,7 +23,7 @@ DistMap; static std::unique_ptr<WorkerConnection> simple_worker(Server &server, const std::string &name, int cpus=1) { - std::vector<loom::Id> tt, dt; + std::vector<loom::base::Id> tt, dt; return std::make_unique<WorkerConnection>(server, nullptr, name, tt, dt, cpus, 0); } @@ -268,9 +268,9 @@ static loomplan::Plan make_request_plan(Server &server) return plan; } -std::vector<loom::Id> range(size_t limit) +std::vector<loom::base::Id> range(size_t limit) { - std::vector<loom::Id> result; + std::vector<loom::base::Id> result; result.reserve(limit); for (size_t i = 0; i < limit; i++) { result.push_back(i); @@ -291,15 +291,15 @@ void dump_dist(const TaskDistribution &d) } } -static void start(ComputationState &cstate, loom::Id id, WorkerConnection *wc) +static void start(ComputationState &cstate, loom::base::Id id, WorkerConnection *wc) { - std::vector<loom::Id> ids = {id}; + std::vector<loom::base::Id> ids = {id}; cstate.add_ready_nodes(ids); auto &node = cstate.get_node(id); cstate.set_running_task(node, wc); } -static void finish(ComputationState &cstate, loom::Id id, size_t size, size_t length, WorkerConnection *wc) +static void finish(ComputationState &cstate, loom::base::Id id, size_t size, size_t length, WorkerConnection *wc) { start(cstate, id, wc); auto &node = cstate.get_node(id); @@ -316,26 +316,26 @@ TEST_CASE( "Server scheduling - plan construction", "[scheduling]" ) { REQUIRE(d1.get_id() == 100); REQUIRE(d1.get_client_id() == 0); REQUIRE(d1.get_inputs().empty()); - REQUIRE((d1.get_nexts() == std::vector<loom::Id>{102})); + REQUIRE((d1.get_nexts() == std::vector<loom::base::Id>{102})); auto& d2 = p.get_node(101); REQUIRE(d2.get_id() == 101); REQUIRE(d2.get_client_id() == 1); REQUIRE(d2.get_inputs().empty()); - REQUIRE((d2.get_nexts() == std::vector<loom::Id>{102})); + REQUIRE((d2.get_nexts() == std::vector<loom::base::Id>{102})); auto& d3 = p.get_node(102); REQUIRE(d3.get_id() == 102); REQUIRE(d3.get_client_id() == 2); - REQUIRE((d3.get_inputs() == std::vector<loom::Id>{100, 101, 100})); - REQUIRE((d3.get_nexts() == std::vector<loom::Id>{})); + REQUIRE((d3.get_inputs() == std::vector<loom::base::Id>{100, 101, 100})); + REQUIRE((d3.get_nexts() == std::vector<loom::base::Id>{})); } TEST_CASE("Server scheduling - init tasks", "[scheduling]") { Server server(NULL, 0); Plan p(make_simple_plan(server), 10, server.get_dictionary()); auto st = p.get_init_tasks(); - REQUIRE((v_to_s(st) == std::set<loom::Id>{10, 11})); + REQUIRE((v_to_s(st) == std::set<loom::base::Id>{10, 11})); } TEST_CASE("Basic plan scheduling", "[scheduling]") { @@ -352,14 +352,14 @@ TEST_CASE("Basic plan scheduling", "[scheduling]") { SECTION("Scheduling first two tasks") { - s.add_ready_nodes(std::vector<loom::Id>{10, 11}); + s.add_ready_nodes(std::vector<loom::base::Id>{10, 11}); TaskDistribution d = schedule(s); //dump_dist(d); REQUIRE(d[w1.get()].size() == 1); REQUIRE(d[w2.get()].size() == 1); - loom::Id id1 = d[w1.get()][0]; - loom::Id id2 = d[w2.get()][0]; + loom::base::Id id1 = d[w1.get()][0]; + loom::base::Id id2 = d[w2.get()][0]; REQUIRE(id1 != id2); REQUIRE((id1 == 10 || id1 == 11)); REQUIRE((id2 == 10 || id2 == 11)); @@ -369,45 +369,45 @@ TEST_CASE("Basic plan scheduling", "[scheduling]") { finish(s, 10, 200, 0, w1.get()); finish(s, 11, 100, 0, w2.get()); - s.add_ready_nodes(std::vector<loom::Id>{12}); + s.add_ready_nodes(std::vector<loom::base::Id>{12}); TaskDistribution d = schedule(s); //dump_dist(d); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{12})); - REQUIRE((d[w2.get()] == std::vector<loom::Id>{})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{12})); + REQUIRE((d[w2.get()] == std::vector<loom::base::Id>{})); } SECTION("Scheduling third task - second dep is bigger") { finish(s, 10, 100, 0, w1.get()); finish(s, 11, 200, 0, w2.get()); - s.add_ready_nodes(std::vector<loom::Id>{12}); + s.add_ready_nodes(std::vector<loom::base::Id>{12}); TaskDistribution d = schedule(s); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{})); - REQUIRE((d[w2.get()] == std::vector<loom::Id>{12})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{})); + REQUIRE((d[w2.get()] == std::vector<loom::base::Id>{12})); } SECTION("Scheduling third task - all on first") { finish(s, 10, 100, 0, w1.get()); finish(s, 11, 200, 0, w1.get()); - s.add_ready_nodes(std::vector<loom::Id>{12}); + s.add_ready_nodes(std::vector<loom::base::Id>{12}); TaskDistribution d = schedule(s); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{12})); - REQUIRE((d[w2.get()] == std::vector<loom::Id>{})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{12})); + REQUIRE((d[w2.get()] == std::vector<loom::base::Id>{})); } SECTION("Scheduling third task - all on second") { finish(s, 10, 100, 0, w2.get()); finish(s, 11, 200, 0, w2.get()); - s.add_ready_nodes(std::vector<loom::Id>{12}); + s.add_ready_nodes(std::vector<loom::base::Id>{12}); TaskDistribution d = schedule(s); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{})); - REQUIRE((d[w2.get()] == std::vector<loom::Id>{12})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{})); + REQUIRE((d[w2.get()] == std::vector<loom::base::Id>{12})); } } @@ -439,7 +439,7 @@ TEST_CASE("Plan 4", "[scheduling]") { TaskDistribution d = schedule(s); //dump_dist(d); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{7})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{7})); } SECTION("Case 2") { @@ -453,7 +453,7 @@ TEST_CASE("Plan 4", "[scheduling]") { TaskDistribution d = schedule(s); //dump_dist(d); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{3})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{3})); } /*SECTION("Case 3") { @@ -467,7 +467,7 @@ TEST_CASE("Plan 4", "[scheduling]") { TaskDistribution d = schedule(s); dump_dist(d); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{3})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{3})); }*/ } @@ -487,7 +487,7 @@ TEST_CASE("Plan 4", "[scheduling]") { TaskDistribution d = schedule(s); //dump_dist(d); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{7})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{7})); } SECTION("Case 2") { @@ -501,7 +501,7 @@ TEST_CASE("Plan 4", "[scheduling]") { TaskDistribution d = schedule(s); //dump_dist(d); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{3})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{3})); } /*SECTION("Case 3") { @@ -515,7 +515,7 @@ TEST_CASE("Plan 4", "[scheduling]") { TaskDistribution d = schedule(s); dump_dist(d); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{3})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{3})); }*/ } } @@ -541,12 +541,12 @@ TEST_CASE("Plan2 scheduling", "[scheduling]") { finish(s, 3, 100, 0, w1.get()); finish(s, 4, 100, 0, w2.get()); - s.add_ready_nodes(std::vector<loom::Id>{5, 6, 7, 8}); + s.add_ready_nodes(std::vector<loom::base::Id>{5, 6, 7, 8}); TaskDistribution d = schedule(s); //dump_dist(d); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{6})); - REQUIRE((d[w2.get()] == std::vector<loom::Id>{8})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{6})); + REQUIRE((d[w2.get()] == std::vector<loom::base::Id>{8})); } } @@ -567,7 +567,7 @@ TEST_CASE("Plan2 scheduling", "[scheduling]") { finish(s, 3, 100, 0, w1.get()); finish(s, 4, 100, 0, w2.get()); - s.add_ready_nodes(std::vector<loom::Id>{5, 6, 7, 8}); + s.add_ready_nodes(std::vector<loom::base::Id>{5, 6, 7, 8}); TaskDistribution d = schedule(s); //dump_dist(d); @@ -583,7 +583,7 @@ TEST_CASE("Plan2 scheduling", "[scheduling]") { finish(s, 3, 100, 0, w3.get()); finish(s, 4, 100, 0, w3.get()); - s.add_ready_nodes(std::vector<loom::Id>{5, 6, 8}); + s.add_ready_nodes(std::vector<loom::base::Id>{5, 6, 8}); TaskDistribution d = schedule(s); //dump_dist(d); @@ -603,7 +603,7 @@ TEST_CASE("Plan2 scheduling", "[scheduling]") { finish(s, 3, 0, 0, w3.get()); //finish(s, 4, 100, 0, w3.get()); - s.add_ready_nodes(std::vector<loom::Id>{5, 6}); + s.add_ready_nodes(std::vector<loom::base::Id>{5, 6}); TaskDistribution d = schedule(s); //dump_dist(d); @@ -630,7 +630,7 @@ TEST_CASE("Big plan", "[scheduling]") { s.add_worker(ws[i].get()); } - std::vector<loom::Id> ready; + std::vector<loom::base::Id> ready; for (size_t i = 0; i < BIG_PLAN_SIZE; i++) { finish(s, i, 10 + i * 10, 0, ws[i % BIG_PLAN_WORKERS].get()); ready.push_back(i + BIG_PLAN_SIZE); @@ -661,7 +661,7 @@ TEST_CASE("Big simple plan", "[scheduling]") { s.add_worker(ws[i].get()); } - std::vector<loom::Id> ready; + std::vector<loom::base::Id> ready; for (size_t i = 0; i < BIG_PLAN_SIZE; i++) { finish(s, i, 10 + i * 10, 0, ws[i % BIG_PLAN_WORKERS].get()); ready.push_back(i + BIG_PLAN_SIZE); @@ -710,10 +710,10 @@ TEST_CASE("Request plan", "[scheduling]") { s.add_ready_nodes(range(7)); TaskDistribution d = schedule(s); //dump_dist(d); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{0} || - d[w1.get()] == std::vector<loom::Id>{1})); - REQUIRE((d[w2.get()] == std::vector<loom::Id>{2} || - d[w2.get()] == std::vector<loom::Id>{3})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{0} || + d[w1.get()] == std::vector<loom::base::Id>{1})); + REQUIRE((d[w2.get()] == std::vector<loom::base::Id>{2} || + d[w2.get()] == std::vector<loom::base::Id>{3})); } SECTION("2/2 cpus") { @@ -724,10 +724,10 @@ TEST_CASE("Request plan", "[scheduling]") { s.add_ready_nodes(range(7)); TaskDistribution d = schedule(s); - REQUIRE((d[w1.get()] == std::vector<loom::Id>{2} || - d[w1.get()] == std::vector<loom::Id>{3})); - REQUIRE((d[w2.get()] == std::vector<loom::Id>{2} || - d[w2.get()] == std::vector<loom::Id>{3})); + REQUIRE((d[w1.get()] == std::vector<loom::base::Id>{2} || + d[w1.get()] == std::vector<loom::base::Id>{3})); + REQUIRE((d[w2.get()] == std::vector<loom::base::Id>{2} || + d[w2.get()] == std::vector<loom::base::Id>{3})); } SECTION("5 cpus") { @@ -759,7 +759,7 @@ TEST_CASE("Request plan", "[scheduling]") { auto w1 = simple_worker(server, "w1", 5); s.add_worker(w1.get()); - s.add_ready_nodes(std::vector<loom::Id>{4, 5, 6, 7}); + s.add_ready_nodes(std::vector<loom::base::Id>{4, 5, 6, 7}); TaskDistribution d = schedule(s); REQUIRE((check_uvector(d[w1.get()], {6, 7}) || check_uvector(d[w1.get()], {5, 7}))); }