Commit f7621c66 authored by Ramon Nou's avatar Ramon Nou
Browse files

Update to use gkfs_user_library (branch fmt10))

parent 12818a8b
Loading
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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)

+13 −12
Original line number Diff line number Diff line
@@ -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
@@ -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);
+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
)
+4 −1
Original line number Diff line number Diff line
@@ -77,6 +77,9 @@ public:
    void
    path(std::string path);

    [[nodiscard]] dataset::type
    get_type() const;

    template <typename Archive>
    void
    serialize(Archive& ar) {
@@ -86,7 +89,7 @@ public:

private:
    std::string m_path;
    dataset::type m_type = dataset::type::none;
    dataset::type m_type;
};


+5 −0
Original line number Diff line number Diff line
@@ -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