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

Merge branch 'rnou/release-cargo-v0.3.2' into 'main'

Release 0.3.2

Closes #31

See merge request !23
parents 58cfd224 d2bb60bb
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ cmake_minimum_required(VERSION 3.19)

project(
  cargo
  VERSION 0.3.1
  VERSION 0.3.2
  LANGUAGES C CXX
)

+21 −0
Original line number Diff line number Diff line
@@ -170,3 +170,24 @@ mpirun -np 4 ${INSTALL_DIR}/bin/cargo -l ofi+tcp://127.0.0.1:62000
cd build
RUNNER_SKIP_START=1 ctest -VV --output-on-failure --stop-on-failure -j 8
```


## Options
Cargo supports the following option:
```
b --blocksize (default is 512). Transfers will use this blocksize in kbytes. 
```

## Utilities
There are a few utility command line programs that can be used to interact with Cargo.

```shell
cli/ccp --server ofi+tcp://127.0.0.1:62000 --input /directory/subdir --output /directorydst/subdirdst --if <method> --of <method> 
```
`--input` and `--output` are required arguments, and can be a directory or a file path.
`--if` and `--of`select the specific transfer method, on V0.3.2 there are only to possibilities:

`--if mpio`  (It will read in parallel from i.e. lustre using MPI, and write using posix calls.)
`--of mpio`  (It will read using posix calls, and write using MPI (i.e. to lustre))

Other commands are `ping`, `shutdown` and `shaping` (for bw control).
 No newline at end of file
+2 −2
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ main(int argc, char* argv[]) {

        if(const auto result = rpc_client.lookup(address); result.has_value()) {
            const auto& endpoint = result.value();
            const auto retval = endpoint.call("bw_shaping", cfg.tid, cfg.shaping);
            const auto retval = endpoint.call("bw_control", cfg.tid, cfg.shaping);

            if(retval.has_value()) {

@@ -100,7 +100,7 @@ main(int argc, char* argv[]) {
                return EXIT_SUCCESS;
            }

            fmt::print(stderr, "bw_shaping RPC failed\n");
            fmt::print(stderr, "bw_control RPC failed\n");
            return EXIT_FAILURE;

        } else {
+3 −0
Original line number Diff line number Diff line
@@ -23,4 +23,7 @@ global_settings: [

  # number of worker threads to serve I/O requests
  workers: 4,

  # Block Size (in kb) for I/O requestss
  blocksize: 512,
]
+12 −3
Original line number Diff line number Diff line
@@ -61,12 +61,12 @@ private:
class dataset {

public:
    enum class type { posix, parallel };
    enum class type { posix, parallel, none, gekkofs, hercules, expand, dataclay };

    dataset() noexcept = default;

    explicit dataset(std::string path,
                     dataset::type type = dataset::type::posix) noexcept;
                     dataset::type type = dataset::type::none) noexcept;

    [[nodiscard]] std::string
    path() const noexcept;
@@ -86,7 +86,7 @@ public:

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


@@ -121,6 +121,15 @@ public:
    [[nodiscard]] transfer_status
    status() const;


    /**
     * @brief updates the bw control of the transfer
     * 
     * @param bw_control 
     */
    void
    bw_control (std::int16_t bw_control) const;

    /**
     * Wait for the associated transfer to complete.
     *
Loading