25#ifndef JOIN_CORE_CPU_HPP
26#define JOIN_CORE_CPU_HPP
103 const std::vector<PhysicalCore>&
cores () const noexcept;
134 static int readInt (
const std::string&
path);
141 static int findNuma (
const std::string& cpuPath);
149 std::vector<PhysicalCore> _cores;
152 std::vector<NumaNode> _nodes;
CPU topology detector.
Definition cpu.hpp:78
static const CpuTopology * instance()
get instance.
Definition cpu.cpp:49
const std::vector< PhysicalCore > & cores() const noexcept
get all physical cores.
Definition cpu.cpp:59
const std::vector< NumaNode > & nodes() const noexcept
get all NUMA nodes.
Definition cpu.cpp:68
CpuTopology(const CpuTopology &other)=delete
copy constructor.
CpuTopology & operator=(const CpuTopology &other)=delete
copy assignment operator.
Definition acceptor.hpp:32
void dump(const void *data, unsigned long size, std::ostream &out=std::cout)
dump data to standard output stream.
Definition utils.hpp:387
logical CPU (hardware thread).
Definition cpu.hpp:38
int id
Definition cpu.hpp:39
int numa
Definition cpu.hpp:42
int core
Definition cpu.hpp:40
int socket
Definition cpu.hpp:41
NUMA node containing multiple cores.
Definition cpu.hpp:69
int id
Definition cpu.hpp:70
std::vector< int > cores
Definition cpu.hpp:71
physical CPU core (may have multiple logical CPU).
Definition cpu.hpp:49
int id
Definition cpu.hpp:50
int socket
Definition cpu.hpp:51
int primaryThread() const noexcept
get primary thread (first hardware thread, avoids HT).
Definition cpu.hpp:59
int numa
Definition cpu.hpp:52
std::vector< LogicalCpu > threads
Definition cpu.hpp:53
std::string path
Definition unix_acceptor_test.cpp:37