9 个版本
使用旧的 Rust 2015
0.1.8 | 2020年1月19日 |
---|---|
0.1.7 | 2018年12月3日 |
0.1.6 | 2018年9月26日 |
0.1.3 | 2018年2月14日 |
#331 在 Cargo 插件
705 每月下载量
14KB
207 代码行
cargo-mpirun
cargo-mpirun
是一个类似于 cargo run
的 cargo 自定义命令,它使用 mpiexec
运行目标。它简化了用 Rust 编写的 MPI 程序的构建和测试。
要求
需要一个符合规范的 MPI 安装,其中包含可在 PATH 中找到的 mpiexec
命令。 cargo mpirun
使用 mpiexec
,这是启动 MPI 作业的标准化 CLI。
安装
cargo-mpirun
可以通过 Cargo 安装
cargo install cargo-mpirun
相关项目
如果您对在 Rust 中编写 MPI 应用程序感兴趣,请查看 rsmpi。它提供了一种零开销、安全的 C MPI API 抽象。
使用方法
调用 cargo-mpirun
很简单。由于 cargo-mpirun
是一个 cargo 自定义命令,它被上下文化为当前的 cargo 项目。因此,只需将目录更改为您的 Rust 二进制 MPI 项目的根目录,然后运行
cargo mpirun
这将使用默认的 mpiexec
参数使用 mpiexec
调用二进制文件。
如果您想指定要使用的进程数,则适用典型的 mpiexec
参数。
cargo mpirun -n <num_processes>
num_processes
是一个正整数。同样,可以使用 --oversubscribe
来强制 MPI 分配比处理元素更多的进程。
如果你的 Cargo 工作区包含多个 bin 目标,请使用 --bin
指定目标。
cargo mpirun --bin <target>
类似地,可以使用 --example
在项目中运行示例。
cargo mpirun --example <example>
完整用法
cargo-mpirun 0.1
Andrew Gaspar <andrew.gaspar@outlook.com>
Run the main binary of the local package (src/main.rs) using mpiexec.
USAGE:
cargo mpirun [OPTIONS]
OPTIONS:
-n, --np <num_processes> Number of processes to run
-N, --npernode <num_processes>
Launch num_processes per node on all allocated nodes
--oversubscribe
Nodes are allowed to be oversubscribed, even on a managed system,
and overloading of processing elements
--bin <NAME> Name of the bin target to run
--example <NAME> Name of the example target to run
-p, --package <NAME> Package with the target to run
-j, --jobs <N>
Number of parallel jobs, defaults to # of CPUs
--release
Build artifacts in release mode, with optimizations
--features <FEATURE>...
Space-separated list of features to also build
--all-features Build all available features
--no-default-features Do not build the `default` feature
--target <TRIPLE> Build for the target triple
--manifest-path <PATH> Path to the manifest to execute
-v, --verbose
Use verbose output (-vv very verbose/build.rs output)
-q, --quiet No output printed to stdout
--color <WHEN> Coloring [values: auto, always, never]
--message-format <FMT>
Error format [default: human] [values: human, json]
--frozen
Require Cargo.lock and cache are up to date
--locked Require Cargo.lock is up to date
-Z <FLAG>... Unstable (nightly-only) flags to Cargo
-h, --help Prints help information
-V, --version Prints version information
If neither `--bin` nor `--example` are given, then if the project only has one
bin target it will be run. Otherwise `--bin` specifies the bin target to run,
and `--example` specifies the example target to run. At most one of `--bin` or
`--example` can be provided.
All of the trailing arguments are passed to mpiexec. If you're passing arguments
to both Cargo and the binary, the ones after `--` go to mpiexec, the ones before
go to Cargo.
依赖项
~1.7–2.7MB
~50K SLoC