Eu encontrei recentemente essa ferramenta chamada lstopo
que está no pacote hwloc
(pelo menos no Fedora 19, que é onde ela foi localizada). Esta ferramenta parece ter tudo o que se deseja e mais.
Aqui estão algumas amostras. A primeira é uma representação gráfica que é gerada quando você executa a ferramenta sem nenhum comutador.
$ lstopo
captura de tela PNG
$lstopo--output-formattxt-v--no-io--no-legend>lstopo.txt
screennshotASCII┌────────────────────────────────────────┐│Machine(7782MB)││││┌────────────────────────────────────┐│││SocketP#0││││││││┌────────────────────────────────┐│││││L3(3072KB)│││││└────────────────────────────────┘││││││││┌──────────────┐┌──────────────┐│││││L2(256KB)││L2(256KB)│││││└──────────────┘└──────────────┘││││││││┌──────────────┐┌──────────────┐│││││L1d(32KB)││L1d(32KB)│││││└──────────────┘└──────────────┘││││││││┌──────────────┐┌──────────────┐│││││L1i(32KB)││L1i(32KB)│││││└──────────────┘└──────────────┘││││││││┌──────────────┐┌──────────────┐│││││CoreP#0││CoreP#2││││││││││││││┌──────────┐││┌──────────┐│││││││PUP#0││││PUP#2│││││││└──────────┘││└──────────┘││││││┌──────────┐││┌──────────┐│││││││PUP#1││││PUP#3│││││││└──────────┘││└──────────┘│││││└──────────────┘└──────────────┘│││└────────────────────────────────────┘│└────────────────────────────────────────┘
Masissorepresentaapenasobásicodoquevocêpodefazercomessaferramenta.Sevocêconsultasseapáginadomanual,quasetodososaspectosdasaídapoderiamserpersonalizadosedesabilitados,senecessário,paraalterarasaídadeacordocomasnecessidadesquevocêpossater.
Sóparaterumaideiadoquevocêpodeativaredesativar.
--no-cachesDonotshowcaches.--no-useless-cachesDonotshowcacheswhichdonothaveahierarchicalimpact.--no-icachesDonotshowInstructioncaches,onlyDataandUnifiedcachesaredisplayed.--mergeDonotshowlevelsthatdonothaveahierarchicalimpact.--restrict<cpuset>Restrictthetopologytothegivencpuset.--restrictbindingRestrictthetopologytothecurrentprocessbinding.Thisoptionrequirestheuseoftheactualcurrentmachinetopology(oranyothertopologywith--no-ioDonotshowanyI/Odeviceorbridge.Bydefault,commondevices(GPUs,NICs,blockdevices,...)andinterestingbridgesareshown.
Alistacontinua,issoésóparadarumaideia.
Localidadedehardwareportátil(hwloc)
Oprojeto
The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering information about modern computing hardware so as to exploit it accordingly and efficiently.
A ferramenta lstopo
é uma das muitas ferramentas disponíveis através deste projeto.