200 const int numberOfWorkItems = numberOfParticles / Benchmark_WorkItemSize;
202 logInfo(
"runBenchmark(int)",
"===============================");
203 logInfo(
"runBenchmark(int)",
" Experiment: " << numberOfParticles <<
" particles" );
204 logInfo(
"runBenchmark(int)",
" No of work items: " << numberOfWorkItems );
205 logInfo(
"runBenchmark(int)",
"===============================");
215 auto [interaction,postinteraction] = ::swift2::kernels::internal::identifyInteractingParticles<8,globaldata::HydroPart,globaldata::HydroPart>(
220 ::swift2::kernels::legacy::densityKernelPairEvaluationPredicate<globaldata::HydroPart>
222 logInfo(
"runBenchmark(int)",
" Bit pattern for one entry: " << interaction );
225 if (Benchmark_Testforce) {
228 [&](
int workItem) ->
void {
235 [&](
int workItem) ->
void {
238 "force (predicates)",
242 [&](
int workItem) ->
void {
245 "force (coalesced,native)",
249 [&](
int workItem) ->
void {
252 "force (prefix,native)",
256 [&](
int workItem) ->
void {
259 "force (offloading,omp)",
264 if (Benchmark_Testdensity) {
267 [&](
int workItem) ->
void {
270 "density (baseline)",
274 [&](
int workItem) ->
void {
277 "density (predicates)",
281 [&](
int workItem) ->
void {
284 "density (coalesced,native)",
288 [&](
int workItem) ->
void {
291 "density (prefix,native)",
295 [&](
int workItem) ->
void {
298 "density (offloading,omp)",
303 if (Benchmark_Testkick1) {
306 [&](
int workItem) ->
void {
313 [&](
int workItem) ->
void {
316 "kick1 (predicates)",
320 [&](
int workItem) ->
void {
323 "kick1 (coalesced,native)",
327 [&](
int workItem) ->
void {
330 "kick1 (prefix,native)",
334 [&](
int workItem) ->
void {
337 "kick1 (offloading,omp)",
342 if (Benchmark_Testkick2) {
345 [&](
int workItem) ->
void {
353 [&](
int workItem) ->
void {
357 "kick2 (predicates)",
361 [&](
int workItem) ->
void {
365 "kick2 (coalesced,native)",
369 [&](
int workItem) ->
void {
373 "kick2 (prefix,native)",
377 [&](
int workItem) ->
void {
381 "kick2 (offloading,omp)",
386 if (Benchmark_Testdrift) {
389 [&](
int workItem) ->
void {
397 [&](
int workItem) ->
void {
401 "drift (predicates)",
405 [&](
int workItem) ->
void {
409 "drift (coalesced,native)",
413 [&](
int workItem) ->
void {
417 "drift (prefix,native)",
421 [&](
int workItem) ->
void {
425 "drift (offloading,omp)",
430 for (
int currentWorkItem=0; currentWorkItem<numberOfWorkItems; currentWorkItem++) {