Loading examples/cxx/ADM_remove_job.cpp +33 −4 Original line number Diff line number Diff line Loading @@ -24,7 +24,12 @@ #include <fmt/format.h> #include <admire.hpp> #include "common.hpp" #define NJOB_NODES 50 #define NADHOC_NODES 25 #define NINPUTS 10 #define NOUTPUTS 5 int main(int argc, char* argv[]) { Loading @@ -37,16 +42,40 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; admire::job job{42, 42}; const auto job_nodes = prepare_nodes(NJOB_NODES); const auto adhoc_nodes = prepare_nodes(NADHOC_NODES); const auto inputs = prepare_datasets("input-dataset-{}", NINPUTS); const auto outputs = prepare_datasets("output-dataset-{}", NOUTPUTS); std::string name = "adhoc_storage_42"; const auto adhoc_storage_ctx = admire::adhoc_storage::ctx{ admire::adhoc_storage::execution_mode::separate_new, admire::adhoc_storage::access_type::read_write, admire::adhoc_storage::resources{adhoc_nodes}, 100, false}; try { [[maybe_unused]] const auto ret = admire::remove_job(server, job); const auto adhoc_storage = admire::register_adhoc_storage( server, name, admire::storage::type::gekkofs, adhoc_storage_ctx); admire::job_requirements reqs(inputs, outputs, adhoc_storage); [[maybe_unused]] const auto job = admire::register_job( server, admire::job::resources{job_nodes}, reqs, 0); // do something with job fmt::print(stdout, "ADM_register_job() remote procedure completed " "successfully\n"); admire::remove_job(server, job); fmt::print(stdout, "ADM_remove_job() remote procedure completed " "successfully\n"); exit(EXIT_SUCCESS); } catch(const std::exception& e) { fmt::print(stdout, "ADM_remove_job() remote procedure not completed " "successfully\n"); fmt::print(stderr, "FATAL: example failed: {}\n", e.what()); exit(EXIT_FAILURE); } } src/lib/admire.cpp +8 −2 Original line number Diff line number Diff line Loading @@ -233,9 +233,15 @@ update_job(const server& srv, const job& job, } } admire::error_code void remove_job(const server& srv, const job& job) { return detail::remove_job(srv, job); const auto ec = detail::remove_job(srv, job); if(!ec) { throw std::runtime_error( fmt::format("ADM_remove_job() error: {}", ec.message())); } } admire::adhoc_storage Loading src/lib/admire.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ register_job(const server& srv, const job::resources& job_resources, void update_job(const server& srv, const job&, const job::resources& job_resources); admire::error_code void remove_job(const server& srv, const job& job); admire::adhoc_storage Loading src/lib/c_wrapper.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ ADM_remove_job(ADM_server_t server, ADM_job_t job) { const admire::server srv{server}; return admire::remove_job(srv, admire::job{job}); return admire::detail::remove_job(srv, admire::job{job}); } ADM_return_t Loading Loading
examples/cxx/ADM_remove_job.cpp +33 −4 Original line number Diff line number Diff line Loading @@ -24,7 +24,12 @@ #include <fmt/format.h> #include <admire.hpp> #include "common.hpp" #define NJOB_NODES 50 #define NADHOC_NODES 25 #define NINPUTS 10 #define NOUTPUTS 5 int main(int argc, char* argv[]) { Loading @@ -37,16 +42,40 @@ main(int argc, char* argv[]) { admire::server server{"tcp", argv[1]}; admire::job job{42, 42}; const auto job_nodes = prepare_nodes(NJOB_NODES); const auto adhoc_nodes = prepare_nodes(NADHOC_NODES); const auto inputs = prepare_datasets("input-dataset-{}", NINPUTS); const auto outputs = prepare_datasets("output-dataset-{}", NOUTPUTS); std::string name = "adhoc_storage_42"; const auto adhoc_storage_ctx = admire::adhoc_storage::ctx{ admire::adhoc_storage::execution_mode::separate_new, admire::adhoc_storage::access_type::read_write, admire::adhoc_storage::resources{adhoc_nodes}, 100, false}; try { [[maybe_unused]] const auto ret = admire::remove_job(server, job); const auto adhoc_storage = admire::register_adhoc_storage( server, name, admire::storage::type::gekkofs, adhoc_storage_ctx); admire::job_requirements reqs(inputs, outputs, adhoc_storage); [[maybe_unused]] const auto job = admire::register_job( server, admire::job::resources{job_nodes}, reqs, 0); // do something with job fmt::print(stdout, "ADM_register_job() remote procedure completed " "successfully\n"); admire::remove_job(server, job); fmt::print(stdout, "ADM_remove_job() remote procedure completed " "successfully\n"); exit(EXIT_SUCCESS); } catch(const std::exception& e) { fmt::print(stdout, "ADM_remove_job() remote procedure not completed " "successfully\n"); fmt::print(stderr, "FATAL: example failed: {}\n", e.what()); exit(EXIT_FAILURE); } }
src/lib/admire.cpp +8 −2 Original line number Diff line number Diff line Loading @@ -233,9 +233,15 @@ update_job(const server& srv, const job& job, } } admire::error_code void remove_job(const server& srv, const job& job) { return detail::remove_job(srv, job); const auto ec = detail::remove_job(srv, job); if(!ec) { throw std::runtime_error( fmt::format("ADM_remove_job() error: {}", ec.message())); } } admire::adhoc_storage Loading
src/lib/admire.hpp +1 −1 Original line number Diff line number Diff line Loading @@ -54,7 +54,7 @@ register_job(const server& srv, const job::resources& job_resources, void update_job(const server& srv, const job&, const job::resources& job_resources); admire::error_code void remove_job(const server& srv, const job& job); admire::adhoc_storage Loading
src/lib/c_wrapper.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ ADM_remove_job(ADM_server_t server, ADM_job_t job) { const admire::server srv{server}; return admire::remove_job(srv, admire::job{job}); return admire::detail::remove_job(srv, admire::job{job}); } ADM_return_t Loading