@@ -25,9 +25,9 @@ using namespace o2::soa;
2525// Validation of new event mixing: time complexity same as for naive loop
2626
2727#ifdef __APPLE__
28- constexpr unsigned int maxColPairsRange = 30 ;
28+ constexpr unsigned int maxColPairsRange = 31 ;
2929#else
30- constexpr unsigned int maxColPairsRange = 30 ;
30+ constexpr unsigned int maxColPairsRange = 29 ;
3131#endif
3232constexpr int numEventsToMix = 5 ;
3333
@@ -115,98 +115,98 @@ static void BM_EventMixingPolicyCreation(benchmark::State& state)
115115 state.SetBytesProcessed (state.iterations () * sizeof (float ) * state.range (0 ));
116116}
117117
118- BENCHMARK (BM_EventMixingPolicyCreation)->RangeMultiplier(2 )->Range(2 << 20 , 2UL << maxColPairsRange);
118+ BENCHMARK (BM_EventMixingPolicyCreation)->RangeMultiplier(2 )->Range(2 << maxColPairsRange , 2UL << maxColPairsRange);
119119// BENCHMARK(BM_EventMixingPolicyCreation)->DenseRange(2<<20, 2<<21, 50)
120120
121- static void BM_EventMixingCombinationsCreation (benchmark::State& state)
122- {
123- // Seed with a real random value, if available
124- std::default_random_engine e1 (1234567891 );
125- std::uniform_real_distribution<float > uniform_dist (0 .f , 1 .f );
126- std::uniform_real_distribution<float > uniform_dist_x (-0 .065f , 0 .073f );
127- std::uniform_real_distribution<float > uniform_dist_y (-0 .320f , 0 .360f );
128- std::uniform_int_distribution<int > uniform_dist_int (0 , 5 );
129-
130- TableBuilder colBuilder;
131- auto rowWriterCol = colBuilder.cursor <o2::aod::Collisions>();
132- for (auto i = 0 ; i < state.range (0 ); ++i) {
133- float x = uniform_dist_x (e1 );
134- float y = uniform_dist_y (e1 );
135- rowWriterCol (0 , uniform_dist_int (e1 ),
136- x, y, uniform_dist (e1 ),
137- uniform_dist (e1 ), uniform_dist (e1 ), uniform_dist (e1 ),
138- uniform_dist (e1 ), uniform_dist (e1 ), uniform_dist (e1 ),
139- uniform_dist_int (e1 ), uniform_dist (e1 ),
140- uniform_dist_int (e1 ),
141- uniform_dist (e1 ), uniform_dist (e1 ));
142- }
143- auto tableCol = colBuilder.finalize ();
144- o2::aod::Collisions collisions{tableCol};
145-
146- std::vector<double > xBins{VARIABLE_WIDTH, -0.064 , -0.062 , -0.060 , 0.066 , 0.068 , 0.070 , 0.072 };
147- std::vector<double > yBins{VARIABLE_WIDTH, -0.320 , -0.301 , -0.300 , 0.330 , 0.340 , 0.350 , 0.360 };
148- using BinningType = ColumnBinningPolicy<o2::aod::collision::PosX, o2::aod::collision::PosY>;
149- BinningType binningOnPositions{{xBins, yBins}, true }; // true is for 'ignore overflows' (true by default)
150-
151- auto combPolicy = CombinationsBlockUpperSameIndexPolicy (binningOnPositions, numEventsToMix - 1 , -1 , collisions, collisions);
152-
153- for (auto _ : state) {
154- auto comb = combinations (combPolicy);
155- }
156- state.SetBytesProcessed (state.iterations () * sizeof (float ));
157- }
158-
159- BENCHMARK (BM_EventMixingCombinationsCreation)->RangeMultiplier(2 )->Range(2 << 20 , 2UL << maxColPairsRange);
121+ // static void BM_EventMixingCombinationsCreation(benchmark::State& state)
122+ // {
123+ // // Seed with a real random value, if available
124+ // std::default_random_engine e1(1234567891);
125+ // std::uniform_real_distribution<float> uniform_dist(0.f, 1.f);
126+ // std::uniform_real_distribution<float> uniform_dist_x(-0.065f, 0.073f);
127+ // std::uniform_real_distribution<float> uniform_dist_y(-0.320f, 0.360f);
128+ // std::uniform_int_distribution<int> uniform_dist_int(0, 5);
129+ //
130+ // TableBuilder colBuilder;
131+ // auto rowWriterCol = colBuilder.cursor<o2::aod::Collisions>();
132+ // for (auto i = 0; i < state.range(0); ++i) {
133+ // float x = uniform_dist_x(e1);
134+ // float y = uniform_dist_y(e1);
135+ // rowWriterCol(0, uniform_dist_int(e1),
136+ // x, y, uniform_dist(e1),
137+ // uniform_dist(e1), uniform_dist(e1), uniform_dist(e1),
138+ // uniform_dist(e1), uniform_dist(e1), uniform_dist(e1),
139+ // uniform_dist_int(e1), uniform_dist(e1),
140+ // uniform_dist_int(e1),
141+ // uniform_dist(e1), uniform_dist(e1));
142+ // }
143+ // auto tableCol = colBuilder.finalize();
144+ // o2::aod::Collisions collisions{tableCol};
145+ //
146+ // std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
147+ // std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
148+ // using BinningType = ColumnBinningPolicy<o2::aod::collision::PosX, o2::aod::collision::PosY>;
149+ // BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
150+ //
151+ // auto combPolicy = CombinationsBlockUpperSameIndexPolicy(binningOnPositions, numEventsToMix - 1, -1, collisions, collisions);
152+ //
153+ // for (auto _ : state) {
154+ // auto comb = combinations(combPolicy);
155+ // }
156+ // state.SetBytesProcessed(state.iterations() * sizeof(float));
157+ // }
158+ //
159+ // BENCHMARK(BM_EventMixingCombinationsCreation)->RangeMultiplier(2)->Range(2 << 25 , 2UL << maxColPairsRange);
160160// BENCHMARK(BM_EventMixingCombinationsCreation)->DenseRange(2<<18, 2<<19, 10486);
161161
162- static void BM_EventMixingCombinations (benchmark::State& state)
163- {
164- // Seed with a real random value, if available
165- std::default_random_engine e1 (1234567891 );
166- std::uniform_real_distribution<float > uniform_dist (0 .f , 1 .f );
167- std::uniform_real_distribution<float > uniform_dist_x (-0 .065f , 0 .073f );
168- std::uniform_real_distribution<float > uniform_dist_y (-0 .320f , 0 .360f );
169- std::uniform_int_distribution<int > uniform_dist_int (0 , 5 );
170-
171- TableBuilder colBuilder;
172- auto rowWriterCol = colBuilder.cursor <o2::aod::Collisions>();
173- for (auto i = 0 ; i < state.range (0 ); ++i) {
174- float x = uniform_dist_x (e1 );
175- float y = uniform_dist_y (e1 );
176- rowWriterCol (0 , uniform_dist_int (e1 ),
177- x, y, uniform_dist (e1 ),
178- uniform_dist (e1 ), uniform_dist (e1 ), uniform_dist (e1 ),
179- uniform_dist (e1 ), uniform_dist (e1 ), uniform_dist (e1 ),
180- uniform_dist_int (e1 ), uniform_dist (e1 ),
181- uniform_dist_int (e1 ),
182- uniform_dist (e1 ), uniform_dist (e1 ));
183- }
184- auto tableCol = colBuilder.finalize ();
185- o2::aod::Collisions collisions{tableCol};
186-
187- std::vector<double > xBins{VARIABLE_WIDTH, -0.064 , -0.062 , -0.060 , 0.066 , 0.068 , 0.070 , 0.072 };
188- std::vector<double > yBins{VARIABLE_WIDTH, -0.320 , -0.301 , -0.300 , 0.330 , 0.340 , 0.350 , 0.360 };
189- using BinningType = ColumnBinningPolicy<o2::aod::collision::PosX, o2::aod::collision::PosY>;
190- BinningType binningOnPositions{{xBins, yBins}, true }; // true is for 'ignore overflows' (true by default)
191-
192- auto combPolicy = CombinationsBlockUpperSameIndexPolicy (binningOnPositions, numEventsToMix - 1 , -1 , collisions, collisions);
193-
194- auto comb = combinations (combPolicy);
195-
196- int64_t colCount = 0 ;
197-
198- for (auto _ : state) {
199- colCount = 0 ;
200- for (auto & combT : comb) {
201- colCount++;
202- }
203- benchmark::DoNotOptimize (colCount);
204- }
205- state.counters [" Mixed collision pairs" ] = colCount;
206- state.SetBytesProcessed (state.iterations () * sizeof (float ) * colCount);
207- }
208-
209- BENCHMARK (BM_EventMixingCombinations)->RangeMultiplier(2 )->Range(2 << 20 , 2UL << maxColPairsRange);
162+ // static void BM_EventMixingCombinations(benchmark::State& state)
163+ // {
164+ // // Seed with a real random value, if available
165+ // std::default_random_engine e1(1234567891);
166+ // std::uniform_real_distribution<float> uniform_dist(0.f, 1.f);
167+ // std::uniform_real_distribution<float> uniform_dist_x(-0.065f, 0.073f);
168+ // std::uniform_real_distribution<float> uniform_dist_y(-0.320f, 0.360f);
169+ // std::uniform_int_distribution<int> uniform_dist_int(0, 5);
170+ //
171+ // TableBuilder colBuilder;
172+ // auto rowWriterCol = colBuilder.cursor<o2::aod::Collisions>();
173+ // for (auto i = 0; i < state.range(0); ++i) {
174+ // float x = uniform_dist_x(e1);
175+ // float y = uniform_dist_y(e1);
176+ // rowWriterCol(0, uniform_dist_int(e1),
177+ // x, y, uniform_dist(e1),
178+ // uniform_dist(e1), uniform_dist(e1), uniform_dist(e1),
179+ // uniform_dist(e1), uniform_dist(e1), uniform_dist(e1),
180+ // uniform_dist_int(e1), uniform_dist(e1),
181+ // uniform_dist_int(e1),
182+ // uniform_dist(e1), uniform_dist(e1));
183+ // }
184+ // auto tableCol = colBuilder.finalize();
185+ // o2::aod::Collisions collisions{tableCol};
186+ //
187+ // std::vector<double> xBins{VARIABLE_WIDTH, -0.064, -0.062, -0.060, 0.066, 0.068, 0.070, 0.072};
188+ // std::vector<double> yBins{VARIABLE_WIDTH, -0.320, -0.301, -0.300, 0.330, 0.340, 0.350, 0.360};
189+ // using BinningType = ColumnBinningPolicy<o2::aod::collision::PosX, o2::aod::collision::PosY>;
190+ // BinningType binningOnPositions{{xBins, yBins}, true}; // true is for 'ignore overflows' (true by default)
191+ //
192+ // auto combPolicy = CombinationsBlockUpperSameIndexPolicy(binningOnPositions, numEventsToMix - 1, -1, collisions, collisions);
193+ //
194+ // auto comb = combinations(combPolicy);
195+ //
196+ // int64_t colCount = 0;
197+ //
198+ // for (auto _ : state) {
199+ // colCount = 0;
200+ // for (auto& combT : comb) {
201+ // colCount++;
202+ // }
203+ // benchmark::DoNotOptimize(colCount);
204+ // }
205+ // state.counters["Mixed collision pairs"] = colCount;
206+ // state.SetBytesProcessed(state.iterations() * sizeof(float) * colCount);
207+ // }
208+ //
209+ // BENCHMARK(BM_EventMixingCombinations)->RangeMultiplier(2)->Range(2 << maxColPairsRange , 2UL << maxColPairsRange);
210210// BENCHMARK(BM_EventMixingCombinations)->DenseRange(2<<20, 2<<21, 50)
211211
212212BENCHMARK_MAIN ();
0 commit comments