Skip to content
Snippets Groups Projects

Dopair2 vectorisation

Merged James Willis requested to merge dopair2-vectorisation into master

Adds the following:

  • Vectorised version of runner_dopair2_force
  • Expands testActivePair to include more test cases and to also test the force pair tasks
  • Creates a branching function for DOPAIR2 so that the corner pairs are calculated using the serial version of DOPAIR2
  • pairs_all_force now checks if particles are active before updating them

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • master vs dopair2-vectorisation

    image

    Note: vectorisation is turned on in both cases. We get some speedup:

    ------------------------------------
    master
    ------------------------------------
    Wall clock time for: 4097 time steps
    ------------------------------------
    1 threads: 7913824.55
    2 threads: 4074811.253
    4 threads: 2112665.346
    8 threads: 1175271.211
    16 threads: 756702.398
    
    ------------------------------------
    Parallel Efficiency for: 4097 time steps
    ------------------------------------
    1 threads: 1.0
    2 threads: 0.971066395305
    4 threads: 0.936473985928
    8 threads: 0.84170194887
    16 threads: 0.6536440689
    
    ------------------------------------
    dopair2-vectorisation
    ------------------------------------
    Wall clock time for: 4097 time steps
    ------------------------------------
    1 threads: 7524620.125
    2 threads: 3864171.962
    4 threads: 2000113.58
    8 threads: 1115386.591
    16 threads: 730397.59
    
    ------------------------------------
    Parallel Efficiency for: 4097 time steps
    ------------------------------------
    1 threads: 1.0
    2 threads: 0.973639397909
    4 threads: 0.940524103261
    8 threads: 0.843274899676
    16 threads: 0.643880489546

    poorer scaling, but we already knew that would happen.

  • I still need to tidy the branch up a bit and remove the debug code into a separate branch so it is not ready for merging yet. I just wanted somewhere to put the scaling plot.

  • Ok, thanks. That's about a 5% speed-up on 1 core and 3.6% on 16 cores. What's the speed-up in your DOPAIR tests ?

  • It's not great. 1.19x for the edge interactions and 2.06x for the face interactions. However, that's with the Wendland C2 kernel.

  • James Willis Added 1 commit:

    Added 1 commit:

    • e2a49f88 - Removed debugging of interactions.
  • James Willis Added 1 commit:

    Added 1 commit:

  • James Willis Added 1 commit:

    Added 1 commit:

  • James Willis Added 2 commits:

    Added 2 commits:

  • James Willis Added 1 commit:

    Added 1 commit:

  • James Willis Added 2 commits:

    Added 2 commits:

    • 2e6965f1 - Convert index into the number of particles to loop over.
    • 636b18b9 - Comments.
  • I'm running the jenkins builds and getting the following errors with testDump and testLogger:

    [dc-will2@cosma-f.cosma swiftsim]$ make check > log
    [37433340.3] dump.c:dump_init():129: Failed to create dump file '/tmp/dump_test.out' (Permission denied).
    /bin/sh: line 5: 32301 Aborted                 (core dumped) ${dir}$tst
    [37433336.1] dump.c:dump_init():129: Failed to create dump file '/tmp/dump_test.out' (Permission denied).
    /bin/sh: line 5: 32551 Aborted                 (core dumped) ${dir}$tst
    make[2]: *** [check-TESTS] Error 1
    make[1]: *** [check-am] Error 2
    make: *** [check-recursive] Error 1

    are these new tests?

  • Not new. But you have permission problems on the files they are trying to write.

  • James Willis Added 4 commits:

    Added 4 commits:

  • I fixed it by running on cosma-a instead of cosma-f. Now I get this error:

    [00000.0] main: Seed = 1507542110
    [00000.0] main: Testing gravity for r=(5.261688e+01 3.812220e+01 4.596731e+01)
    [00000.0] testGravityDerivatives.c:test():922: Relative difference (1.561253e-04) for 'D_002' (swift=1.298986e-09) and (exact=1.299189e-09) exceeds tolerance (1.000000e-04)
    /bin/sh: line 5: 50691 Aborted                 ${dir}$tst
    FAIL: testGravityDerivatives

    when running the gcc version of the jenkins build script. I think it must be a tolerance fix for that specific seed.

  • Yes, it is. Please ignore this one for now. I need a to think about a more clever way of testing the gravity derivatives.

  • I've deleted the /tmp/dump_test.out from cosma-f, so you could run there now, but please don't as that would break jenkins. Matthieu, this test needs to make up a random name and remove() the file when it exits, or not write into a common directory, otherwise it will always be a problem.

  • Thanks for that. I'll need to clean up this test. It's linked to the particle logging systems which is not in use now.

  • James Willis Added 2 commits:

    Added 2 commits:

  • I think this branch is ready now. I've ran all the jenkins tests.

  • James Willis Title changed from [WIP] Dopair2 vectorisation to Dopair2 vectorisation

    Title changed from [WIP] Dopair2 vectorisation to Dopair2 vectorisation

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading