25#ifndef JOIN_CORE_CPU_HPP
26#define JOIN_CORE_CPU_HPP
106 const std::vector<PhysicalCore>&
cores () const noexcept;
137 static int readInt (
const std::string&
path);
144 static int findNuma (
const std::string& cpuPath);
152 std::vector<PhysicalCore> _cores;
155 std::vector<NumaNode> _nodes;
CPU topology detector.
Definition cpu.hpp:81
static const CpuTopology * instance()
get instance.
Definition cpu.cpp:50
const std::vector< PhysicalCore > & cores() const noexcept
get all physical cores.
Definition cpu.cpp:60
const std::vector< NumaNode > & nodes() const noexcept
get all NUMA nodes.
Definition cpu.cpp:69
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:356
logical CPU (hardware thread).
Definition cpu.hpp:41
int id
Definition cpu.hpp:42
int numa
Definition cpu.hpp:45
int core
Definition cpu.hpp:43
int socket
Definition cpu.hpp:44
NUMA node containing multiple cores.
Definition cpu.hpp:72
int id
Definition cpu.hpp:73
std::vector< int > cores
Definition cpu.hpp:74
physical CPU core (may have multiple logical CPU).
Definition cpu.hpp:52
int id
Definition cpu.hpp:53
int socket
Definition cpu.hpp:54
int primaryThread() const noexcept
get primary thread (first hardware thread, avoids HT).
Definition cpu.hpp:62
int numa
Definition cpu.hpp:55
std::vector< LogicalCpu > threads
Definition cpu.hpp:56
std::string path
Definition unixstreamacceptor_test.cpp:34