1 个稳定版本
使用旧的 Rust 2015
2.2.0 | 2020 年 5 月 22 日 |
---|
#246 在 缓存
176 每月下载量
在 4 crates 中使用
98KB
1.5K SLoC
hwloc2-rs
本项目是 daschl/hwloc-rs 的继承者,除了这个库支持 hwloc 的 2.x.x 版本。这个库试图维护与 daschl/hwloc-rs 相同的大部分 API 层。
Hwloc 是 Open MPI 的一个 C 库,用于检测现代架构的层次拓扑结构。这包括 NUMA 内存节点、插槽、共享数据 & 指令缓存、核心和同时多线程。
先决条件
安装了 hwloc 2.2.0 的系统。
请注意,这不是目前许多主流发行版包管理器默认安装的版本。您可能需要从源代码安装它
您可以从 https://www.open-mpi.org/projects/hwloc/ 下载源代码
用法
首先,将以下内容添加到您的 Cargo.toml
[dependencies]
hwloc2 = "2.2.0"
然后,将其添加到您的 crate 根目录
extern crate hwloc2;
以下是一个快速示例,它遍历 拓扑
并将其打印出来
extern crate hwloc2;
use hwloc2::Topology;
fn main() {
let topo = Topology::new().unwrap();
for i in 0..topo.depth() {
println!("*** Objects at level {}", i);
for (idx, object) in topo.objects_at_depth(i).iter().enumerate() {
println!("{}: {}", idx, object);
}
}
}
如果您想运行它们,可以查看 更多示例。
运行示例
该库附带示例,要运行它们,您需要克隆仓库,然后通过 cargo run --example=
运行它们。
$ git clone https://github.com/ichbinjoe/hwloc2-rs.git
$ cd hwloc-rs
要运行示例(这将下载依赖项并构建它),您可以使用 cargo run -example=
$ cargo run --example=walk_tree
Compiling hwloc v2.2.0 (/directory/hwloc2-rs)
Finished dev [unoptimized + debuginfo] target(s) in 0.54s
Running `target/debug/examples/walk_tree`
*** Printing overall tree
Machine (): #0
Package (): #0
L3 (8192KB): #4294967295
L2 (512KB): #4294967295
L1d (32KB): #4294967295
Core (): #0
PU (): #0
PU (): #8
L2 (512KB): #4294967295
L1d (32KB): #4294967295
Core (): #1
PU (): #1
PU (): #9
L2 (512KB): #4294967295
L1d (32KB): #4294967295
Core (): #2
PU (): #2
PU (): #10
L2 (512KB): #4294967295
L1d (32KB): #4294967295
Core (): #3
PU (): #3
PU (): #11
L3 (8192KB): #4294967295
L2 (512KB): #4294967295
L1d (32KB): #4294967295
Core (): #4
PU (): #4
PU (): #12
L2 (512KB): #4294967295
L1d (32KB): #4294967295
Core (): #5
PU (): #5
PU (): #13
L2 (512KB): #4294967295
L1d (32KB): #4294967295
Core (): #6
PU (): #6
PU (): #14
L2 (512KB): #4294967295
L1d (32KB): #4294967295
Core (): #7
PU (): #7
PU (): #15
许可证
本项目采用MIT许可证,请参阅LICENSE文件以获取更多信息。
依赖关系
~260–580KB