簡介
可移植硬體位置(hwloc)軟體包提供了現代體系結構(包括NUMA記憶體節點,套接字,共享快取,內核和同步多執行緒)的分層拓撲的可移植抽象(跨OS,版本,體系結構等),它還收集各種系統屬性(例如快取和記憶體資訊)以及I / O設備(例如網路介面,InfiniBand HCA或GPU)的位置,
hwloc的主要目的是幫助應用程式收集有關日益復雜的并行計算平臺的資訊,從而相應地并有效地利用它們,例如,緊密協作的兩個任務可能應該放在共享快取的內核上,但是,最好將兩個獨立的記憶體密集型任務分散到不同的套接字上,以最大程度地提高其記憶體吞吐量,如本文所述,必須根據其親和力和硬體特性來放置OpenMP執行緒,MPI實作采用了類似的技術,同時還按照本文或本白皮書中的描述將其通信策略調整為適合網路位置,
僅通過提供便攜式CPU和記憶體系結API 以及一種可靠的方法來找出有多少個內核和/或硬體執行緒可用,hwloc還可為許多應用程式提供幫助 ,
安裝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、成功判斷條件
[pct13@sn01 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、命令列示例
[pct13@sn01 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檔案
[pct13@sn01 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,運行結果如圖


轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/279316.html
標籤:區塊鏈
