Thanks to visit codestin.com
Credit goes to github.com

Skip to content

sss-lehigh/remus

Repository files navigation

Overview

Remus is a collection of useful utilities for research-oriented programming. This is the ethos of this project, to accumulate helpful tools that can serve as the basis for development.

Remus Supports:

  • Workload driver library (see remus/workload) for experimental evaluation
  • Logging utilities (see remus/logging)
  • Measurements library (see remus/metrics)
  • Sundry other utilities that we don't know where to place yet (see remus/util)
  • RDMA (see remus/rdma)
  • NUMA (see remus/numa)

Building

We have tested the following configurations:

OS Compiler
Ubuntu 22.04 gcc-11
Ubuntu 22.04 gcc-12
Ubuntu 22.04 clang-15
Ubuntu 22.04 clang-14
Ubuntu 22.04 clang-15 & nvcc-12.3

To build/run your machine requires:

  • protobuf-compiler
  • librdmacm-dev
  • ibverbs-utils
  • libspdlog-dev
  • libfmt-dev
  • nlohmann-json3-dev
  • libnuma-dev (if compiling NUMA support)
  • CUDA 12.3 (if compiling GPU support)
  • doxygen (for building DOCS)
  • cmake (3.18 or later)

Your GPU must be Volta or later.

We have the following configuration options/flags:

  • GPU (ON or OFF) will compile with GPU support
  • KEEP (ON or OFF) will keep ptx and cubin files
  • DOCS (ON or OFF) will create documentation
  • NUMA (ON or OFF) will enable remus::numa
  • LOG_LEVEL (TRACE, DEBUG, INFO, WARN, ERROR, CRITICAL, or OFF) for logging
  • CXX_STANDARD (20 or 23) for the C++ standard
  • CUDA_ARCHITECTURES (semicolon seperated list of SM numbers)

Using Remus

  1. Launch experiment on RDMA-capable Cloudlab cluster
    • Deploy on Ubuntu 24.04 for native gcc-13 support.
  2. Edit cloudlab_common.sh
    • Fill out machines, domain, user, and your cloudlab sshkey path.
  3. bash cloudlab_install_deps.sh
    • This will install the dependencies on the remote machines
  4. bash cloudlab_rebuild.sh
    • Sends over the pre-compiled binary to the remote machines
    • Configuration for the multi-screen setup
    • run screen -c run.screenrc to launch the experiment
    • run screen -c dev.screenrc to log in to all machines

build.sh can also be used to compile the binary locally. Here, you can configure the log level (DEBUG or RELEASE).

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •