Loading CMakeLists.txt +5 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,11 @@ FetchContent_Declare( FetchContent_MakeAvailable(expected) ### GekkoFS: Optional for gekkofs find_package(GekkoFS) if (GekkoFS_FOUND) add_compile_definitions(GEKKOFS_PLUGIN) endif() ### Threads: required by ASIO find_package(Threads REQUIRED) Loading cli/copy.cpp +13 −12 Original line number Diff line number Diff line Loading @@ -29,19 +29,24 @@ #include <CLI/CLI.hpp> #include <ranges> enum class dataset_flags { posix, mpio }; enum class dataset_flags { posix, parallel, none, gekkofs, hercules, expand, dataclay }; std::map<std::string, dataset_flags> dataset_flags_map{ {"posix", dataset_flags::posix}, {"mpio", dataset_flags::mpio}}; std::map<std::string, cargo::dataset::type> dataset_flags_map{ {"posix", cargo::dataset::type::posix}, {"parallel", cargo::dataset::type::parallel}, {"none", cargo::dataset::type::none}, {"gekkofs", cargo::dataset::type::gekkofs}, {"hercules", cargo::dataset::type::hercules}, {"expand", cargo::dataset::type::expand}, {"dataclay", cargo::dataset::type::dataclay}}; struct copy_config { std::string progname; std::string server_address; std::vector<std::filesystem::path> inputs; dataset_flags input_flags = dataset_flags::posix; cargo::dataset::type input_flags = cargo::dataset::type::posix; std::vector<std::filesystem::path> outputs; dataset_flags output_flags = dataset_flags::posix; cargo::dataset::type output_flags = cargo::dataset::type::posix; }; copy_config Loading Loading @@ -119,17 +124,13 @@ main(int argc, char* argv[]) { std::transform(cfg.inputs.cbegin(), cfg.inputs.cend(), std::back_inserter(inputs), [&](const auto& src) { return cargo::dataset{ src, cfg.input_flags == dataset_flags::mpio ? cargo::dataset::type::parallel : cargo::dataset::type::posix}; src, cfg.input_flags}; }); std::transform(cfg.outputs.cbegin(), cfg.outputs.cend(), std::back_inserter(outputs), [&cfg](const auto& tgt) { return cargo::dataset{ tgt, cfg.output_flags == dataset_flags::mpio ? cargo::dataset::type::parallel : cargo::dataset::type::posix}; tgt, cfg.output_flags}; }); const auto tx = cargo::transfer_datasets(server, inputs, outputs); Loading cmake/FindGekkoFS.cmake 0 → 100644 +65 −0 Original line number Diff line number Diff line ################################################################################ # Copyright 2018-2023, Barcelona Supercomputing Center (BSC), Spain # # Copyright 2015-2023, Johannes Gutenberg Universitaet Mainz, Germany # # # # This software was partially supported by the # # EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). # # # # This software was partially supported by the # # ADA-FS project under the SPPEXA project funded by the DFG. # # # # This file is part of GekkoFS. # # # # GekkoFS is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # GekkoFS is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with GekkoFS. If not, see <https://www.gnu.org/licenses/>. # # # # SPDX-License-Identifier: GPL-3.0-or-later # ################################################################################ find_path(GekkoFS_INCLUDE_DIR NAMES user_functions.hpp PREFIX gkfs ) find_library(GekkoFS_LIBRARY NAMES libgkfs_user_lib.so ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args( GekkoFS DEFAULT_MSG GekkoFS_INCLUDE_DIR GekkoFS_LIBRARY ) if(GekkoFS_FOUND) set(GekkoFS_LIBRARIES ${GekkoFS__LIBRARY}) set(GekkoFS_INCLUDE_DIRS ${GekkoFS__INCLUDE_DIR}) if(NOT TARGET GekkoFS::GekkoFS) add_library(GekkoFS::GekkoFS UNKNOWN IMPORTED) set_target_properties(GekkoFS::GekkoFS PROPERTIES IMPORTED_LOCATION "${GekkoFS_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${GekkoFS_INCLUDE_DIR}" ) endif() endif() mark_as_advanced( GekkoFS_INCLUDE_DIR GekkoFS_LIBRARY ) lib/cargo.hpp +4 −1 Original line number Diff line number Diff line Loading @@ -77,6 +77,9 @@ public: void path(std::string path); [[nodiscard]] dataset::type get_type() const; template <typename Archive> void serialize(Archive& ar) { Loading @@ -86,7 +89,7 @@ public: private: std::string m_path; dataset::type m_type = dataset::type::none; dataset::type m_type; }; Loading lib/libcargo.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,11 @@ dataset::path(std::string path) { m_path = std::move(path); }; dataset::type dataset::get_type() const { return m_type; }; bool dataset::supports_parallel_transfer() const noexcept { return m_type == dataset::type::parallel; Loading Loading
CMakeLists.txt +5 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,11 @@ FetchContent_Declare( FetchContent_MakeAvailable(expected) ### GekkoFS: Optional for gekkofs find_package(GekkoFS) if (GekkoFS_FOUND) add_compile_definitions(GEKKOFS_PLUGIN) endif() ### Threads: required by ASIO find_package(Threads REQUIRED) Loading
cli/copy.cpp +13 −12 Original line number Diff line number Diff line Loading @@ -29,19 +29,24 @@ #include <CLI/CLI.hpp> #include <ranges> enum class dataset_flags { posix, mpio }; enum class dataset_flags { posix, parallel, none, gekkofs, hercules, expand, dataclay }; std::map<std::string, dataset_flags> dataset_flags_map{ {"posix", dataset_flags::posix}, {"mpio", dataset_flags::mpio}}; std::map<std::string, cargo::dataset::type> dataset_flags_map{ {"posix", cargo::dataset::type::posix}, {"parallel", cargo::dataset::type::parallel}, {"none", cargo::dataset::type::none}, {"gekkofs", cargo::dataset::type::gekkofs}, {"hercules", cargo::dataset::type::hercules}, {"expand", cargo::dataset::type::expand}, {"dataclay", cargo::dataset::type::dataclay}}; struct copy_config { std::string progname; std::string server_address; std::vector<std::filesystem::path> inputs; dataset_flags input_flags = dataset_flags::posix; cargo::dataset::type input_flags = cargo::dataset::type::posix; std::vector<std::filesystem::path> outputs; dataset_flags output_flags = dataset_flags::posix; cargo::dataset::type output_flags = cargo::dataset::type::posix; }; copy_config Loading Loading @@ -119,17 +124,13 @@ main(int argc, char* argv[]) { std::transform(cfg.inputs.cbegin(), cfg.inputs.cend(), std::back_inserter(inputs), [&](const auto& src) { return cargo::dataset{ src, cfg.input_flags == dataset_flags::mpio ? cargo::dataset::type::parallel : cargo::dataset::type::posix}; src, cfg.input_flags}; }); std::transform(cfg.outputs.cbegin(), cfg.outputs.cend(), std::back_inserter(outputs), [&cfg](const auto& tgt) { return cargo::dataset{ tgt, cfg.output_flags == dataset_flags::mpio ? cargo::dataset::type::parallel : cargo::dataset::type::posix}; tgt, cfg.output_flags}; }); const auto tx = cargo::transfer_datasets(server, inputs, outputs); Loading
cmake/FindGekkoFS.cmake 0 → 100644 +65 −0 Original line number Diff line number Diff line ################################################################################ # Copyright 2018-2023, Barcelona Supercomputing Center (BSC), Spain # # Copyright 2015-2023, Johannes Gutenberg Universitaet Mainz, Germany # # # # This software was partially supported by the # # EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). # # # # This software was partially supported by the # # ADA-FS project under the SPPEXA project funded by the DFG. # # # # This file is part of GekkoFS. # # # # GekkoFS is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # # # # GekkoFS is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with GekkoFS. If not, see <https://www.gnu.org/licenses/>. # # # # SPDX-License-Identifier: GPL-3.0-or-later # ################################################################################ find_path(GekkoFS_INCLUDE_DIR NAMES user_functions.hpp PREFIX gkfs ) find_library(GekkoFS_LIBRARY NAMES libgkfs_user_lib.so ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args( GekkoFS DEFAULT_MSG GekkoFS_INCLUDE_DIR GekkoFS_LIBRARY ) if(GekkoFS_FOUND) set(GekkoFS_LIBRARIES ${GekkoFS__LIBRARY}) set(GekkoFS_INCLUDE_DIRS ${GekkoFS__INCLUDE_DIR}) if(NOT TARGET GekkoFS::GekkoFS) add_library(GekkoFS::GekkoFS UNKNOWN IMPORTED) set_target_properties(GekkoFS::GekkoFS PROPERTIES IMPORTED_LOCATION "${GekkoFS_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${GekkoFS_INCLUDE_DIR}" ) endif() endif() mark_as_advanced( GekkoFS_INCLUDE_DIR GekkoFS_LIBRARY )
lib/cargo.hpp +4 −1 Original line number Diff line number Diff line Loading @@ -77,6 +77,9 @@ public: void path(std::string path); [[nodiscard]] dataset::type get_type() const; template <typename Archive> void serialize(Archive& ar) { Loading @@ -86,7 +89,7 @@ public: private: std::string m_path; dataset::type m_type = dataset::type::none; dataset::type m_type; }; Loading
lib/libcargo.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,11 @@ dataset::path(std::string path) { m_path = std::move(path); }; dataset::type dataset::get_type() const { return m_type; }; bool dataset::supports_parallel_transfer() const noexcept { return m_type == dataset::type::parallel; Loading