Another CLI tool for Alps.
Manta is a frontend cli to interact with Shasta, it uses mesa for all Shasta interaction.
User guide can be found here https://eth-cscs.github.io/manta/
Install build dependencies
$ cargo install cargo-release cargo-dist git-cliff
This repo contains a Dockerfile to build a Container with manta cli.
docker build -t manta .
$ docker run -it --network=host -v ~:/root/ manta --help
Install Rust toolchain https://www.rust-lang.org/tools/install
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Install cross to be able to complile on different platforms
cargo install cross
Generate binary (cross compilation)
scripts/build
or
rustup target add x86_64-unknown-linux-gnu
cargo build --target=x86_64-unknown-linux-gnu
Install 'cargo dist' and 'cargo release'
cargo install cargo-dist
cargo install cargo-release
Configure cargo-dist. Accept default options and only target linux assets
cargo dist init -t $(uname -m)-unknown-$(uname -s | tr '[:upper:]' '[:lower:]')-gnu
Then remove the assets for macos and windows
Make sure a github workflow is created in .github/workflows/release.yml
This project is already integrated with github actions through 'cargo release' and 'git cliff'
git cliff will parse your commits and update the CHANGELOG.md file automatically as long as your commits follows conventional commits and git cliff extra commit types
cargo release <bump level> --execute
choose your bump level accordingly
If everything went well, then binary should be located in manta/target/x86_64-unknown-linux-gnu/release/manta
sudo sysctl -w kernel.perf_event_paranoid=-1
sudo apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r`
sudo sh -c " echo 0 > /proc/sys/kernel/kptr_restrict"
perf stat -ad -r 100 target/release/manta get session
perf record -g --call-graph=dwarf -F max target/release/manta get session
perf script -F +pid > manta.perf
Go to https://profiler.firefox.com/ and open manta.perf file
https://docs.rs/dhat/latest/dhat/ lto in Cargo.toml needs to be disabled
cargo run -r --features dhat-heap -- get session