diff --git a/build/includes/global/settings_functions.hpp b/build/includes/global/settings_functions.hpp index 5e6df5596048274e0a55e10cd427f9af31210e9b..333c0c75527fd499259bb7d98046c71203284360 100644 --- a/build/includes/global/settings_functions.hpp +++ b/build/includes/global/settings_functions.hpp @@ -25,6 +25,7 @@ struct Distributed_Settings { int port; // the port number of the server actor int total_hru_count; int num_hru_per_batch; + int total_nodes; // For the data-assimilation mode }; template<class Inspector> diff --git a/build/includes/job_actor/job_actor.hpp b/build/includes/job_actor/job_actor.hpp index 8082439331a7ef5dfe5b59a4f575b8796bdb6193..11ecd9315d2f003f64364efb484683ceb455c1df 100644 --- a/build/includes/job_actor/job_actor.hpp +++ b/build/includes/job_actor/job_actor.hpp @@ -79,6 +79,10 @@ struct job_state { }; +struct distributed_job_state { + +}; + /** The Job Actor */ behavior job_actor(stateful_actor<job_state>* self, int start_gru, int num_gru, @@ -87,6 +91,13 @@ behavior job_actor(stateful_actor<job_state>* self, HRU_Actor_Settings hru_actor_settings, actor parent); +/** The Job Actor For Internode Communication */ +behavior distributed_job_actor(stateful_actor<distributed_job_state>* self, + Distributed_Settings distributed_settings, + File_Access_Actor_Settings file_access_actor_settings, + Job_Actor_Settings job_actor_settings, + HRU_Actor_Settings hru_actor_settings); + /********************************************* * Functions for the Job Actor diff --git a/build/includes/job_actor/node_actor.hpp b/build/includes/job_actor/node_actor.hpp new file mode 100644 index 0000000000000000000000000000000000000000..a2d3aa384927b9bab094bee57053ae38f5dc88dc --- /dev/null +++ b/build/includes/job_actor/node_actor.hpp @@ -0,0 +1,4 @@ +#pragma once + +#include "caf/all.hpp" +#include "caf/io/all.hpp" diff --git a/build/includes/summa_actor/batch.hpp b/build/includes/summa_actor/batch.hpp index 0c3ab85dad32af55d93da77eac39397ce8de6fa1..cde00c16ad15a3a4b5bb9a9224002f3763e4af1c 100644 --- a/build/includes/summa_actor/batch.hpp +++ b/build/includes/summa_actor/batch.hpp @@ -1,6 +1,8 @@ #pragma once #include "caf/all.hpp" #include <string> +#include <iostream> +#include <fstream> class Batch { private: diff --git a/build/source/actors/file_access_actor/cppwrap_fileAccess.f90 b/build/source/file_access_actor/cppwrap_fileAccess.f90 similarity index 100% rename from build/source/actors/file_access_actor/cppwrap_fileAccess.f90 rename to build/source/file_access_actor/cppwrap_fileAccess.f90 diff --git a/build/source/actors/file_access_actor/def_output.f90 b/build/source/file_access_actor/def_output.f90 similarity index 100% rename from build/source/actors/file_access_actor/def_output.f90 rename to build/source/file_access_actor/def_output.f90 diff --git a/build/source/actors/file_access_actor/ffile_info.f90 b/build/source/file_access_actor/ffile_info.f90 similarity index 100% rename from build/source/actors/file_access_actor/ffile_info.f90 rename to build/source/file_access_actor/ffile_info.f90 diff --git a/build/source/actors/file_access_actor/fileAccess_writeOutput.f90 b/build/source/file_access_actor/fileAccess_writeOutput.f90 similarity index 100% rename from build/source/actors/file_access_actor/fileAccess_writeOutput.f90 rename to build/source/file_access_actor/fileAccess_writeOutput.f90 diff --git a/build/source/actors/file_access_actor/file_access_actor.cpp b/build/source/file_access_actor/file_access_actor.cpp similarity index 100% rename from build/source/actors/file_access_actor/file_access_actor.cpp rename to build/source/file_access_actor/file_access_actor.cpp diff --git a/build/source/actors/file_access_actor/forcing_file_info.cpp b/build/source/file_access_actor/forcing_file_info.cpp similarity index 100% rename from build/source/actors/file_access_actor/forcing_file_info.cpp rename to build/source/file_access_actor/forcing_file_info.cpp diff --git a/build/source/actors/file_access_actor/output_container.cpp b/build/source/file_access_actor/output_container.cpp similarity index 100% rename from build/source/actors/file_access_actor/output_container.cpp rename to build/source/file_access_actor/output_container.cpp diff --git a/build/source/actors/file_access_actor/output_structure.f90 b/build/source/file_access_actor/output_structure.f90 similarity index 100% rename from build/source/actors/file_access_actor/output_structure.f90 rename to build/source/file_access_actor/output_structure.f90 diff --git a/build/source/actors/file_access_actor/read_force.f90 b/build/source/file_access_actor/read_force.f90 similarity index 100% rename from build/source/actors/file_access_actor/read_force.f90 rename to build/source/file_access_actor/read_force.f90 diff --git a/build/source/actors/file_access_actor/summaversion.inc b/build/source/file_access_actor/summaversion.inc similarity index 100% rename from build/source/actors/file_access_actor/summaversion.inc rename to build/source/file_access_actor/summaversion.inc diff --git a/build/source/actors/global/actor_data_types.f90 b/build/source/global/actor_data_types.f90 similarity index 100% rename from build/source/actors/global/actor_data_types.f90 rename to build/source/global/actor_data_types.f90 diff --git a/build/source/actors/global/auxiliary.cpp b/build/source/global/auxiliary.cpp similarity index 100% rename from build/source/actors/global/auxiliary.cpp rename to build/source/global/auxiliary.cpp diff --git a/build/source/actors/global/cppwrap_auxiliary.f90 b/build/source/global/cppwrap_auxiliary.f90 similarity index 100% rename from build/source/actors/global/cppwrap_auxiliary.f90 rename to build/source/global/cppwrap_auxiliary.f90 diff --git a/build/source/actors/global/cppwrap_datatypes.f90 b/build/source/global/cppwrap_datatypes.f90 similarity index 100% rename from build/source/actors/global/cppwrap_datatypes.f90 rename to build/source/global/cppwrap_datatypes.f90 diff --git a/build/source/actors/global/cppwrap_metadata.f90 b/build/source/global/cppwrap_metadata.f90 similarity index 100% rename from build/source/actors/global/cppwrap_metadata.f90 rename to build/source/global/cppwrap_metadata.f90 diff --git a/build/source/actors/global/global.cpp b/build/source/global/global.cpp similarity index 100% rename from build/source/actors/global/global.cpp rename to build/source/global/global.cpp diff --git a/build/source/actors/global/message_atoms.cpp b/build/source/global/message_atoms.cpp similarity index 100% rename from build/source/actors/global/message_atoms.cpp rename to build/source/global/message_atoms.cpp diff --git a/build/source/actors/global/settings_functions.cpp b/build/source/global/settings_functions.cpp similarity index 100% rename from build/source/actors/global/settings_functions.cpp rename to build/source/global/settings_functions.cpp diff --git a/build/source/actors/global/timing_info.cpp b/build/source/global/timing_info.cpp similarity index 100% rename from build/source/actors/global/timing_info.cpp rename to build/source/global/timing_info.cpp diff --git a/build/source/actors/gru_actor/gru_actor.cpp b/build/source/gru_actor/gru_actor.cpp similarity index 100% rename from build/source/actors/gru_actor/gru_actor.cpp rename to build/source/gru_actor/gru_actor.cpp diff --git a/build/source/actors/gru_actor/gru_actor.f90 b/build/source/gru_actor/gru_actor.f90 similarity index 100% rename from build/source/actors/gru_actor/gru_actor.f90 rename to build/source/gru_actor/gru_actor.f90 diff --git a/build/source/actors/hru_actor/hru_actor.cpp b/build/source/hru_actor/hru_actor.cpp similarity index 100% rename from build/source/actors/hru_actor/hru_actor.cpp rename to build/source/hru_actor/hru_actor.cpp diff --git a/build/source/actors/hru_actor/hru_batch_actor.cpp b/build/source/hru_actor/hru_batch_actor.cpp similarity index 100% rename from build/source/actors/hru_actor/hru_batch_actor.cpp rename to build/source/hru_actor/hru_batch_actor.cpp diff --git a/build/source/actors/hru_actor/hru_init.f90 b/build/source/hru_actor/hru_init.f90 similarity index 100% rename from build/source/actors/hru_actor/hru_init.f90 rename to build/source/hru_actor/hru_init.f90 diff --git a/build/source/actors/hru_actor/hru_modelRun.f90 b/build/source/hru_actor/hru_modelRun.f90 similarity index 100% rename from build/source/actors/hru_actor/hru_modelRun.f90 rename to build/source/hru_actor/hru_modelRun.f90 diff --git a/build/source/actors/hru_actor/hru_read.f90 b/build/source/hru_actor/hru_read.f90 similarity index 100% rename from build/source/actors/hru_actor/hru_read.f90 rename to build/source/hru_actor/hru_read.f90 diff --git a/build/source/actors/hru_actor/hru_writeOutput.f90 b/build/source/hru_actor/hru_writeOutput.f90 similarity index 100% rename from build/source/actors/hru_actor/hru_writeOutput.f90 rename to build/source/hru_actor/hru_writeOutput.f90 diff --git a/build/source/actors/job_actor/GRU.cpp b/build/source/job_actor/GRU.cpp similarity index 100% rename from build/source/actors/job_actor/GRU.cpp rename to build/source/job_actor/GRU.cpp diff --git a/build/source/job_actor/distributed_job_actor.cpp b/build/source/job_actor/distributed_job_actor.cpp new file mode 100644 index 0000000000000000000000000000000000000000..56eb2eb8c14c159a27340ba08e2eacdb2619f7f4 --- /dev/null +++ b/build/source/job_actor/distributed_job_actor.cpp @@ -0,0 +1,17 @@ +#include "job_actor.hpp" + +namespace caf { + +behavior distributed_job_actor(stateful_actor<distributed_job_state>* self, + Distributed_Settings distributed_settings, + File_Access_Actor_Settings file_access_actor_settings, + Job_Actor_Settings job_actor_settings, + HRU_Actor_Settings hru_actor_settings) { + aout(self) << "Starting Distributed Job Actor\n"; + + return {}; +} + + + +} // namespace caf \ No newline at end of file diff --git a/build/source/actors/job_actor/job_actor.cpp b/build/source/job_actor/job_actor.cpp similarity index 100% rename from build/source/actors/job_actor/job_actor.cpp rename to build/source/job_actor/job_actor.cpp diff --git a/build/source/actors/job_actor/job_actor.f90 b/build/source/job_actor/job_actor.f90 similarity index 100% rename from build/source/actors/job_actor/job_actor.f90 rename to build/source/job_actor/job_actor.f90 diff --git a/build/source/job_actor/node_actor.cpp b/build/source/job_actor/node_actor.cpp new file mode 100644 index 0000000000000000000000000000000000000000..5bf191c5b9a8f3fa064b36f5f7575812cbee670d --- /dev/null +++ b/build/source/job_actor/node_actor.cpp @@ -0,0 +1 @@ +#include "node_actor.hpp" diff --git a/build/source/actors/main.cpp b/build/source/main.cpp similarity index 94% rename from build/source/actors/main.cpp rename to build/source/main.cpp index 4d97183001424092ef44fa952280376504df7014..be3ac8df007273b92d7c229cb965c81787ba4dca 100644 --- a/build/source/actors/main.cpp +++ b/build/source/main.cpp @@ -4,6 +4,7 @@ #include "summa_client.hpp" #include "summa_server.hpp" #include "summa_backup_server.hpp" +#include "job_actor.hpp" #include "global.hpp" #include "settings_functions.hpp" #include "message_atoms.hpp" @@ -65,15 +66,6 @@ class config : public actor_system_config { } }; -void connect_client(caf::actor client_to_connect, std::string host_to_connect_to, int port_number) { - if (!host_to_connect_to.empty() && port_number > 0) { - uint16_t port = 4444; - anon_send(client_to_connect, connect_atom_v, host_to_connect_to, (uint16_t) port ); - - } else { - std::cerr << "No Server Config" << std::endl; - } -} void run_client(actor_system& system, const config& cfg, Distributed_Settings distributed_settings) { scoped_actor self{system}; @@ -153,7 +145,8 @@ void caf_main(actor_system& sys, const config& cfg) { file_access_actor_settings, job_actor_settings, hru_actor_settings); - if (distributed_settings.distributed_mode) { + if (distributed_settings.distributed_mode && + !job_actor_settings.data_assimilation_mode) { // only command line arguments needed are config_file and server-mode if (cfg.server_mode) { run_server(sys, cfg, distributed_settings, summa_actor_settings, @@ -163,6 +156,16 @@ void caf_main(actor_system& sys, const config& cfg) { run_client(sys,cfg, distributed_settings); } + } else if (distributed_settings.distributed_mode && + job_actor_settings.data_assimilation_mode) { + + auto dist_summa = sys.spawn(distributed_job_actor, + distributed_settings, + file_access_actor_settings, + job_actor_settings, + hru_actor_settings); + + } else { auto summa = sys.spawn(summa_actor, cfg.startGRU, diff --git a/build/source/actors/summa_actor/batch.cpp b/build/source/summa_actor/batch.cpp similarity index 100% rename from build/source/actors/summa_actor/batch.cpp rename to build/source/summa_actor/batch.cpp diff --git a/build/source/actors/summa_actor/batch_container.cpp b/build/source/summa_actor/batch_container.cpp similarity index 100% rename from build/source/actors/summa_actor/batch_container.cpp rename to build/source/summa_actor/batch_container.cpp diff --git a/build/source/actors/summa_actor/client.cpp b/build/source/summa_actor/client.cpp similarity index 100% rename from build/source/actors/summa_actor/client.cpp rename to build/source/summa_actor/client.cpp diff --git a/build/source/actors/summa_actor/client_container.cpp b/build/source/summa_actor/client_container.cpp similarity index 100% rename from build/source/actors/summa_actor/client_container.cpp rename to build/source/summa_actor/client_container.cpp diff --git a/build/source/actors/summa_actor/summa_actor.cpp b/build/source/summa_actor/summa_actor.cpp similarity index 100% rename from build/source/actors/summa_actor/summa_actor.cpp rename to build/source/summa_actor/summa_actor.cpp diff --git a/build/source/actors/summa_actor/summa_backup_server.cpp b/build/source/summa_actor/summa_backup_server.cpp similarity index 100% rename from build/source/actors/summa_actor/summa_backup_server.cpp rename to build/source/summa_actor/summa_backup_server.cpp diff --git a/build/source/actors/summa_actor/summa_client.cpp b/build/source/summa_actor/summa_client.cpp similarity index 100% rename from build/source/actors/summa_actor/summa_client.cpp rename to build/source/summa_actor/summa_client.cpp diff --git a/build/source/actors/summa_actor/summa_server.cpp b/build/source/summa_actor/summa_server.cpp similarity index 100% rename from build/source/actors/summa_actor/summa_server.cpp rename to build/source/summa_actor/summa_server.cpp