Giter VIP home page Giter VIP logo

heyp-agents's Introduction

Project Structure

  • experiments/ contains all of the scripts and plotting tools for running different types of experiments.

  • go/ contains all of the Go code belonging to this project. Notable things are deploy-heyp, host-agent-sim (for faking large numbers of host agents to stress test cluster-agent), proc-heyp for processing deploy-heyp runs, and dc-control-sim for evaluating non-dynamic properties of usage collection and enforcement techniques.

  • heyp/ contains all of the C++ code belonging to this project including the cluster-agent and heyp/host-agent.

Getting Started

Install dependencies

Make sure that you have the latest version of Go (version 1.17 or later). Then run

$ export TOOLCHAIN=/path/to/install-cpp-build-tools
$ tools/install-work-toolchain.bash # install tools to $TOOLCHAIN, no root needed

and follow the instructions of tools/install-work-toolchain.bash. NOTE: some scripts require that TOOLCHAIN is set to the correct value.

Prep to run experiments

Once you've done this, to run any experiments, you'll need to build the C++ code and collect runtime dependencies.

Building C++ code:

$ bazel build --config=clang-opt //heyp/...
# or use --config=clang-dbg, --config=clang-asan, or --config=clang-tsan based on your needs

Collecting runtime dependencies:

$ tools/collect-aux-bins.bash
# NOTE: you can pass arguments to only rebuild certain tools

Now you're ready to run web and scalability experiments. For example

$ ./0-rebuild-cmds-and-bundle.bash
$ ./1-gen-configs.bash results/2022-01-04-inc inc # see config.star for the meaning of inc
$ while ! ./2-run-all.bash results/2022-01-04-inc; do sleep 30; done
$ ./3-proc-all.py results/2022-01-04-inc
# Any of the ./4- scripts, if needed

NOTE: running the data processing additionally requires R with ggplot2, jsonlite, parallel, reshape2.

Other Notes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.