SWIFTsim merge requestshttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests2017-09-15T15:37:02Zhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/424Dopair2 early abort by checking distance on the axis2017-09-15T15:37:02ZMatthieu SchallerDopair2 early abort by checking distance on the axisThat's indeed a bit faster but not incredibly so. Still worth keeping for now I think.
I'll look into restoring a symmetric version.That's indeed a bit faster but not incredibly so. Still worth keeping for now I think.
I'll look into restoring a symmetric version.Pedro GonnetPedro Gonnethttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/423Don't touch the pinning of the main thread when not using affinity.2017-09-15T13:23:02ZPeter W. DraperDon't touch the pinning of the main thread when not using affinity.There is a problem when the cpu mask is empty and using multiple MPI ranks on a node, in that case all the main threads end up pinned to one core during the reading of the initial conditions (and any other tasks done before engine_init i...There is a problem when the cpu mask is empty and using multiple MPI ranks on a node, in that case all the main threads end up pinned to one core during the reading of the initial conditions (and any other tasks done before engine_init is called).
Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/422Reverse the loop to find the exit condition in DOPAIR2() to go from the centr...2017-09-14T17:55:42ZMatthieu SchallerReverse the loop to find the exit condition in DOPAIR2() to go from the centre to the outsideFollows @jwillis' suggestion in #362.
Also implements an early exit in the outer loop. If no particle can be in range any more (based on hi_max and hj_max), no need to keep checking the next particles.Follows @jwillis' suggestion in #362.
Also implements an early exit in the outer loop. If no particle can be in range any more (based on hi_max and hj_max), no need to keep checking the next particles.James WillisJames Willishttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/421No shadowed variables2017-09-13T16:03:45ZMatthieu SchallerNo shadowed variablesSome small improvements to the code:
- Force compiler to report shadowed variables.
- Removed all shadowed variables.
- Added the function scheduler_activate_send() to simplify the unskipping of MPI sends.
This comes after m...Some small improvements to the code:
- Force compiler to report shadowed variables.
- Removed all shadowed variables.
- Added the function scheduler_activate_send() to simplify the unskipping of MPI sends.
This comes after me spending a day and a half tracking a bug that came from a shadowed variable.Peter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/420Gravity speedup2017-09-12T09:47:23ZMatthieu SchallerGravity speedupMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/419Dopair2 fix2017-09-12T16:19:08ZMatthieu SchallerDopair2 fixLarge set of improvements to the hydro interactions functions:
- Correct version of DOPAIR2() (Fixes #361). The symmetric condition was not correctly taken into account when computing the distance on the axis.
- Removed the old vecto...Large set of improvements to the hydro interactions functions:
- Correct version of DOPAIR2() (Fixes #361). The symmetric condition was not correctly taken into account when computing the distance on the axis.
- Removed the old vectorization scheme from the interaction functions. This is superseded by @jwillis' work.
- Added the check for active/inactive in the *_NAIVE() functions. These can now correctly be used throughout a run.
- Made all the interactions take place in the frame of the cell `cj` for PAIRs and `c` for the SELFs.
- Added a new particle type. The particles do nothing apart from recording who they interact with in the density and force loops. This is solely designed for debugging. Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/418Subsize2017-10-27T23:24:08ZPedro GonnetSubsizeSplit the `sub_size_pair` variable into three values for pairs sharing a face, an edge, or a corner.
Currently all the values are set to the same, but we can now do a grid search on a large simulation to see what works best.Split the `sub_size_pair` variable into three values for pairs sharing a face, an edge, or a corner.
Currently all the values are set to the same, but we can now do a grid search on a large simulation to see what works best.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/417Combine masks with a macro to be compatible with AVX-512.2017-09-02T17:34:36ZJames WillisCombine masks with a macro to be compatible with AVX-512.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/416Fix for AVX-512 compilation. Use the vec_mask_and macro and not vec_and when ...2017-09-02T15:55:55ZMatthieu SchallerFix for AVX-512 compilation. Use the vec_mask_and macro and not vec_and when dealing with masks.I had to do this to be able to compile on the AVX512 system. Does this correction make sense to you ?I had to do this to be able to compile on the AVX512 system. Does this correction make sense to you ?James WillisJames Willishttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/415Pad properties with sensible values to prevent floating point exceptions.2017-09-01T13:46:40ZJames WillisPad properties with sensible values to prevent floating point exceptions.Try again. I have ran the test that fails in the Jenkins script 3 or 4 times and it runs fine.Try again. I have ran the test that fails in the Jenkins script 3 or 4 times and it runs fine.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/414Pad properties with sensible values to prevent floating point exceptions.2017-09-01T08:54:53ZJames WillisPad properties with sensible values to prevent floating point exceptions.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/413Bug inside debug checks.2017-08-31T09:24:56ZJames WillisBug inside debug checks.There was an extra `{` on line 637 of `runner_doiact_vec.c` that I missed because I never compiled debugging checks enabled. I also formatted the rest of the code, which messes up the diff in gitlab.There was an extra `{` on line 637 of `runner_doiact_vec.c` that I missed because I never compiled debugging checks enabled. I also formatted the rest of the code, which messes up the diff in gitlab.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/412[WIP] Re-entrant Threadpool Mapper2017-10-06T14:30:45ZPedro Gonnet[WIP] Re-entrant Threadpool MapperQuick hack of a re-entrant mapper for the threadpool, i.e. a mapper to which additional data can be added on the fly.Quick hack of a re-entrant mapper for the threadpool, i.e. a mapper to which additional data can be added on the fly.Scalable SPH in multi-dtMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/411Use getticks() to get enough randomness when enqueing tasks without owners.2017-08-29T15:49:48ZMatthieu SchallerUse getticks() to get enough randomness when enqueing tasks without owners.How about this version ?How about this version ?Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/410Added cpuid for Kaby Lake processor and corresponding compilation flags.2017-08-29T08:37:30ZMatthieu SchallerAdded cpuid for Kaby Lake processor and corresponding compilation flags.Could you let me know whether this works ? I think I got the correct cpuid pattern for KabyLake...Could you let me know whether this works ? I think I got the correct cpuid pattern for KabyLake...Loic HausammannLoic Hausammannhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/409Fix for the rand_r() call from within a threadpool2017-08-29T15:49:00ZMatthieu SchallerFix for the rand_r() call from within a threadpool@nnrw56 do you foresee any issues with this ? It runs the test-case that previously crashed.@nnrw56 do you foresee any issues with this ? It runs the test-case that previously crashed.Pedro GonnetPedro Gonnethttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/408[WIP] Keplerian ring test2017-09-11T11:40:20ZJosh Borrow[WIP] Keplerian ring testThe Keplerian Ring Test is nearly done, but it would be great to see if anyone else has any ideas as to what other plots should be included. The test is described in detail in [this paper](http://arxiv.org/abs/1006.1524) section 4.3.
...The Keplerian Ring Test is nearly done, but it would be great to see if anyone else has any ideas as to what other plots should be included. The test is described in detail in [this paper](http://arxiv.org/abs/1006.1524) section 4.3.
Any feedback on the test would be great.
Here is a movie of the test in action:
[keplerian_ring.mp4](/uploads/4e402f0ef7451b35eb3eab4b59e0db9c/keplerian_ring.mp4)https://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/407Patch vecorised pair interactions2017-09-24T13:58:15ZJames WillisPatch vecorised pair interactionsImplements:
* Small optimisations to `runner_dopair1_density_vec`.Implements:
* Small optimisations to `runner_dopair1_density_vec`.Vectorization of all the core SPH tasksMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/406Doself2 vectorisation2017-09-02T16:20:54ZJames WillisDoself2 vectorisationImplements:
* `runner_doself2_force_vec` a vectorised version of the `DOSELF2` for force interactions.
* Updates particle cache with properties needed for force interactions.
* Vectorised interaction functions for the force using 1 an...Implements:
* `runner_doself2_force_vec` a vectorised version of the `DOSELF2` for force interactions.
* Updates particle cache with properties needed for force interactions.
* Vectorised interaction functions for the force using 1 and 2 vectors, which are tested in `testInteractions.c`Vectorization of all the core SPH tasksMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/405Replace calls to rand() by calls to rand_r() in the scheduler2017-08-25T14:29:47ZMatthieu SchallerReplace calls to rand() by calls to rand_r() in the schedulerImplements #302 using @d74ksy's changes. Implements #302 using @d74ksy's changes. Matthieu SchallerMatthieu Schaller