14 std::size_t n, std::size_t parts) {
15 parts = std::max<std::size_t>(1, std::min(parts, std::max<std::size_t>(1, n)));
16 std::vector<std::pair<std::size_t, std::size_t>> out;
18 for (std::size_t p = 0; p < parts; ++p) {
19 const auto begin = n * p / parts;
20 const auto end = n * (p + 1) / parts;
21 out.push_back({begin, end});
36 std::size_t partitions = 0) {
37 const std::size_t topology_nodes = info.
topology.empty() ? 1 : info.
topology.size();
38 if (partitions == 0) partitions = topology_nodes;
41 std::vector<NumaVertexPartition> result;
42 result.reserve(ranges.size());
43 for (std::size_t i = 0; i < ranges.size(); ++i) {
53 result.push_back(std::move(placement));
std::vector< NumaNodeInfo > topology