hwloc安裝(無root許可權不聯網不配置環境變數)
阿新 • • 發佈:2021-04-24
簡介
可移植硬體位置(hwloc)軟體包提供了現代體系結構(包括NUMA記憶體節點,套接字,共享快取,核心和同步多執行緒)的分層拓撲的可移植抽象(跨OS,版本,體系結構等)。它還收集各種系統屬性(例如快取和記憶體資訊)以及I / O裝置(例如網路介面,InfiniBand HCA或GPU)的位置。
hwloc的主要目的是幫助應用程式收集有關日益複雜的平行計算平臺的資訊,從而相應地並有效地利用它們。例如,緊密協作的兩個任務可能應該放在共享快取的核心上。但是,最好將兩個獨立的記憶體密集型任務分散到不同的套接字上,以最大程度地提高其記憶體吞吐量。如本文所述,必須根據其親和力和硬體特性來放置OpenMP執行緒。MPI實現採用了類似的技術,同時還按照本文或本白皮書中的描述將其通訊策略調整為適合網路位置。
安裝Hwloc-1.11.1軟體
詳細步驟
(一)、hwloc-1.11.1
支援版本號:1.11.1及以上
原始碼包位置:
/home/pct13/Hwloc
已經安裝好的版本連結位置:
/home/pct13/Hwloc/hwloc-1.11.1
安裝步驟:
涉及到的原始碼安裝包:
Hwloc-1.11.1.tar.gz
1、編譯安裝hwloc-1.11.1
解壓縮
tar -zxvf hwloc-1.11.1.tar.gz
進入解壓縮後的資料夾
cd hwloc- 1.11.1
安裝路徑設定
./configure --prefix=/home/pct13/Hwloc/hwloc-1.11.1
編譯
make
安裝
make install
檢視hwloc資訊
hwloc-ls
2、成功判斷條件
[[email protected] hwloc-1.11.1]$ hwloc-info
depth 0: 1 Machine (type #1)
depth 1: 2 NUMANode (type #2)
depth 2: 2 Package (type #3)
depth 3: 2 L3Cache (type #4)
depth 4: 56 L2Cache ( type #4)
depth 5: 56 L1dCache (type #4)
depth 6: 56 L1iCache (type #4)
depth 7: 56 Core (type #5)
depth 8: 56 PU (type #6)
Special depth -3: 9 Bridge (type #9)
Special depth -4: 7 PCI Device (type #10)
Special depth -5: 10 OS Device (type #11)
3、命令列示例
[[email protected] hwloc-1.11.1]$ hwloc-ls
Machine (191GB total)
NUMANode L#0 (P#0 95GB)
Package L#0 + L3 L#0 (39MB)
L2 L#0 (1024KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#0)
L2 L#1 (1024KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 + PU L#1 (P#1)
L2 L#2 (1024KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 + PU L#2 (P#2)
L2 L#3 (1024KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 + PU L#3 (P#3)
L2 L#4 (1024KB) + L1d L#4 (32KB) + L1i L#4 (32KB) + Core L#4 + PU L#4 (P#4)
HostBridge L#0
PCI 8086:2827
Block(Disk) L#0 "sda"
Block(Disk) L#1 "sdb"
PCI 8086:a182
PCIBridge
PCIBridge
PCI 1a03:2000
GPU L#2 "card0"
GPU L#3 "controlD64"
HostBridge L#3
PCIBridge
PCI 8086:10fb
Net L#4 "enp26s0f0"
PCI 8086:10fb
Net L#5 "enp26s0f1"
HostBridge L#5
PCIBridge
PCI 15b3:101b
Net L#6 "ib0"
OpenFabrics L#7 "mlx5_0"
NUMANode L#1 (P#1 96GB)
Package L#1 + L3 L#1 (39MB)
L2 L#28 (1024KB) + L1d L#28 (32KB) + L1i L#28 (32KB) + Core L#28 + PU L#28 (P#28)
L2 L#29 (1024KB) + L1d L#29 (32KB) + L1i L#29 (32KB) + Core L#29 + PU L#29 (P#29)
L2 L#30 (1024KB) + L1d L#30 (32KB) + L1i L#30 (32KB) + Core L#30 + PU L#30 (P#30)
L2 L#31 (1024KB) + L1d L#31 (32KB) + L1i L#31 (32KB) + Core L#31 + PU L#31 (P#31)
L2 L#32 (1024KB) + L1d L#32 (32KB) + L1i L#32 (32KB) + Core L#32 + PU L#32 (P#32)
HostBridge L#7
PCIBridge
PCI 15b3:101b
Net L#8 "ib1"
OpenFabrics L#9 "mlx5_1"
Hwloc軟體算例
詳細步驟
(一)、編寫Makefile檔案
在hwloc-1.11.1/doc/examples檔案中編寫Makefile檔案
[[email protected] examples]$ vim Makefile
CFLAGS+=$ (shell pkg-config --cflags hwloc)
LDLIBS+=$ (shell pkg-config --libs hwloc)
hwloc-hello: hwloc-hello.c
$(CC) hwloc-hello.c $(CFLAGS) -o hwloc-hello $(LDLIBS)
(二)、執行
提交make命令,編譯完成後,會生成hwloc-hello可執行檔案
執行hwloc-hello,執行結果如圖