1818#include < outputStorage/mq2OutputStorage.hpp>
1919#include < outputStorage/mqOutputStorage.hpp>
2020#include < outputStorage/ringOutputStorage.hpp>
21+ #include < outputStorage/threadAffinitySetter.hpp>
2122// #include <outputStorage/serializedOutputStorage.hpp>
2223// #include <outputStorage/serializedOutputStorageBlocking.hpp>
2324#include < outputStorage/outputStorageRegistrar.hpp>
@@ -67,6 +68,7 @@ void makeTest(
6768 for (DummyReader& reader : readerGroup) {
6869 readContainers.back ().emplace_back (
6970 std::async (std::launch::async, [&reader, &readersLatch]() {
71+ ipxp::output::ThreadAffinitySetter::setNumaNode (0 );
7072 readersLatch.count_down ();
7173 return reader.readContainers ();
7274 }));
@@ -76,12 +78,14 @@ void makeTest(
7678 readersLatch.wait ();
7779 std::vector<std::future<void >> writerFutures
7880 = writers | std::views::transform ([&](DummyWriter<OutputStorageType>& writer) {
79- return std::async (std::launch::async, [&]() { writer.writeContainers (); });
81+ return std::async (std::launch::async, [&]() {
82+ ipxp::output::ThreadAffinitySetter::setNumaNode (0 );
83+ writer.writeContainers ();
84+ });
8085 })
8186 | std::ranges::to<std::vector<std::future<void >>>();
8287
8388 std::ranges::for_each (writerFutures, [](std::future<void >& future) { future.get (); });
84- // writers.clear();
8589
8690 const std::vector<std::size_t > containersReadInGroups
8791 = readContainers
@@ -164,10 +168,6 @@ void shortTestLoop(const bool immitateWork)
164168template <typename OutputStorageType>
165169void makePerformanceTest (std::string_view storageName)
166170{
167- std::cout << " ==========================================================" << std::endl;
168- std::cout << storageName << " , 32 Writers, 4 Group 8 Reader\n " ;
169- makeTest<OutputStorageType>(32 , {8 , 8 , 8 , 8 }, false , 20'000'000 );
170-
171171 std::cout << " ==========================================================" << std::endl;
172172 std::cout << storageName << " , 1 Writers, 1 Reader\n " ;
173173 makeTest<OutputStorageType>(1 , {1 }, false , 80'000'000 );
@@ -188,11 +188,14 @@ void makePerformanceTest(std::string_view storageName)
188188 std::cout << storageName << " , 4 Writers, 4 Group 1 Reader\n " ;
189189 makeTest<OutputStorageType>(4 , {1 , 1 , 1 , 1 }, false , 80'000'000 );
190190
191- std::cout << std::endl;
191+ std::cout << " ==========================================================" << std::endl;
192+ std::cout << storageName << " , 32 Writers, 4 Group 8 Reader\n " ;
193+ makeTest<OutputStorageType>(32 , {8 , 8 , 8 , 8 }, false , 20'000'000 );
192194}
193195
194196TEST (TestOutputStorage, XXX)
195197{
198+ ipxp::output::ThreadAffinitySetter::setNumaNode (0 );
196199 std::cout << " ==========================================================" << std::endl;
197200 std::cout << " MQ2OutputStorage, 1 Writers, 1 Reader\n " ;
198201 makeTest<ipxp::output::MQ2OutputStorage<void *>>(1 , {1 }, false , 80'000'000 );
0 commit comments