SWIFTsim merge requestshttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests2017-10-20T13:14:54Zhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/444Fix int-in-bool-context with gcc-7.22017-10-20T13:14:54ZLoic HausammannFix int-in-bool-context with gcc-7.2With GCC-7.2.0, I am getting the following error:
<code>
scheduler.c:1606:14: error: ‘<<’ in boolean context, did you mean ‘<’ ? [-Werror=int-in-bool-context]
if (!((1 << t->type)) || t->skip) continue;
~~~~^~~~~~~~~~~...With GCC-7.2.0, I am getting the following error:
<code>
scheduler.c:1606:14: error: ‘<<’ in boolean context, did you mean ‘<’ ? [-Werror=int-in-bool-context]
if (!((1 << t->type)) || t->skip) continue;
~~~~^~~~~~~~~~~~
</code>Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/443Debug interactions2017-12-12T12:09:34ZJames WillisDebug interactionsAdds an option to store the number of particle interactions for both the density and force tasks for each particle. Also stores a list of each particles' neighbours.Adds an option to store the number of particle interactions for both the density and force tasks for each particle. Also stores a list of each particles' neighbours.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/442Support for OSX2017-11-08T13:45:22ZMatthieu SchallerSupport for OSXImplements #364. We:
- Detect whether the POSIX library implements the barriers or not.
- If they are implemented define the SWIFT barriers as the POSIX ones.
- If not use an alternative, simple, implementation.
- Be verbose abou...Implements #364. We:
- Detect whether the POSIX library implements the barriers or not.
- If they are implemented define the SWIFT barriers as the POSIX ones.
- If not use an alternative, simple, implementation.
- Be verbose about the implementation being used.
- Update the autotools macro that sets pthread flags to the latest version. Should handle OSX in a better way.
- Detect whether FPEs can be raised on this system and set the appropriate macro.
- Update the INSTALL.swift with instructions for OSX.
- Detect Skylake (mobile and desktop) and set the appropriate architecture flags.
- Fix the dump and logger tests to write unique files to /tmp/ and delete them once done.Peter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/441List top-level cells with tasks2017-11-07T18:55:53ZMatthieu SchallerList top-level cells with tasksThis implements the idea behind #373 and should help with #366.
In this branch we:
- At rebuild time, construct a list of the top-level cells that have at least one task somewhere in their hierarchy.
- When unskipping tasks, laun...This implements the idea behind #373 and should help with #366.
In this branch we:
- At rebuild time, construct a list of the top-level cells that have at least one task somewhere in their hierarchy.
- When unskipping tasks, launch the threadpool on this list rather than on the whole set of top-level cells.
- When collecting the ti_end_min, use the threadpool on this list.
One thing I am not very happy with is the last point. We don't have an elegant way of doing a reduction over the threadpool. The current version should be better than the old, scalar, version but we could reduce the number of locks by having a more advanced mechanism. Would require quite a bit of change to the threadpool infrastructure though.
Other possible improvements:
- Use the list of cells with tasks also when rebuilding.
- Use a similar list when splitting in the rebuild as we don't need to launch threads on empty top-level cells.
- Use a more advanced list (constructed each step during unskip) that contains only the active local cells to speed-up the collection of time-steps. Peter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/440Dopair2 vectorisation2017-10-26T18:23:57ZJames WillisDopair2 vectorisationAdds 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 c...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 themVectorization of all the core SPH tasksMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/439Added SWIFT code group2017-10-06T16:33:12ZJosh BorrowAdded SWIFT code groupAdds ```Code/Code = "SWIFT"``` in the output files which can be used as a check to see if the output was generated by SWIFT.
Adds ```Code/Code = "SWIFT"``` in the output files which can be used as a check to see if the output was generated by SWIFT.
Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/438Large parallel hdf52017-10-09T15:08:53ZMatthieu SchallerLarge parallel hdf5Fix to #72.
This is a workaround to the limitation of parallel-HDF5. The low-level MPI-IO implementations limit writes to 2GB per rank (irrespective of the total amount being written across all nodes).
The solution involves writi...Fix to #72.
This is a workaround to the limitation of parallel-HDF5. The low-level MPI-IO implementations limit writes to 2GB per rank (irrespective of the total amount being written across all nodes).
The solution involves writing chunks of 2GB (or in practice 2'000'000'000Bytes) and then repeat for the remaining chunks, if any, by shifting the position to write of each node in the file and in memory by 2GB. Ranks that did not pass the threshold just write nothing.
In realistic scenarios we won't need more than a handful of iterations.Scalable i/o (HDF5) that is fast and can run on ~100 nodes.Peter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/437Make the position the first variable in the particle structure.2017-09-29T15:56:48ZMatthieu SchallerMake the position the first variable in the particle structure.@jwillis could you check on your node in vTune whether this makes any difference ?@jwillis could you check on your node in vTune whether this makes any difference ?James WillisJames Willishttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/436Fix various issues with MPI and partitioning2017-10-26T17:01:14ZPeter W. DraperFix various issues with MPI and partitioningThese are two bugs and one feature in the current handling of repartitioning
and MPI tasks.
Extracted from current developments so they do not get lost.These are two bugs and one feature in the current handling of repartitioning
and MPI tasks.
Extracted from current developments so they do not get lost.Improved MPI scalingMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/435Correct vec neighbour find2017-09-27T13:03:34ZJames WillisCorrect vec neighbour findFixes neighbour find bug in the vectorised version of the density interactions.Fixes neighbour find bug in the vectorised version of the density interactions.Vectorization of all the core SPH tasksMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/434Also send dx_max_part and dx_max_gpart alongside ti_end_min at the end of a t...2017-12-04T22:05:01ZMatthieu SchallerAlso send dx_max_part and dx_max_gpart alongside ti_end_min at the end of a time-step when running with MPIImplements the solution to #367. Instead of just sending the time-step we send the distances moved by any part and gpart in that cell.
I have also done some cleaning up around the packing and unpacking and improved the documentation.Implements the solution to #367. Instead of just sending the time-step we send the distances moved by any part and gpart in that cell.
I have also done some cleaning up around the packing and unpacking and improved the documentation.Peter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/433Correct wrapping of multipoles in FFT task2017-12-15T14:31:10ZMatthieu SchallerCorrect wrapping of multipoles in FFT taskFix to #353.
Changes are:
- Correctly wrap the top-level multipoles back into the box before interpolating them onto the mesh.
- Only create the hierarchical tasks if the corresponding particles exist in the super cell.Fix to #353.
Changes are:
- Correctly wrap the top-level multipoles back into the box before interpolating them onto the mesh.
- Only create the hierarchical tasks if the corresponding particles exist in the super cell.Peter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/432Gravity documentation2017-09-26T13:53:50ZMatthieu SchallerGravity documentationMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/431Correct position checks in scalar mode2017-09-26T13:39:30ZMatthieu SchallerCorrect position checks in scalar modeAdded debugging checks to verify that the particles are in the correct frame after the shift in DOPAIR1 and DOPAIR2. The check takes into account directions and drift since last rebuild.
@jwillis: Can I let you implement the same thre...Added debugging checks to verify that the particles are in the correct frame after the shift in DOPAIR1 and DOPAIR2. The check takes into account directions and drift since last rebuild.
@jwillis: Can I let you implement the same thresholds in the vectorized version and test in on EAGLE12 and EAGLE25 ? James WillisJames Willishttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/430Fixes to the gravity code2017-09-26T15:20:45ZMatthieu SchallerFixes to the gravity codeThis fixes #363. The long-range gravity task has to consider all the cells that were assigned to it at the rebuild time.
Additional improvements:
- Drift the multipoles while activating the tasks,
- Avoid FPEs in the FFT task,
...This fixes #363. The long-range gravity task has to consider all the cells that were assigned to it at the rebuild time.
Additional improvements:
- Drift the multipoles while activating the tasks,
- Avoid FPEs in the FFT task,
- Adjust the number of tasks per top-level required to run.Peter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/429Updated tolerances for GCC compilation.2017-09-25T09:36:14ZJames WillisUpdated tolerances for GCC compilation.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/428Run naive interactions2017-09-24T14:04:47ZMatthieu SchallerRun naive interactionsAdded an option to run the naive interactions instead of the optimized ones. These are to be used for debugging purposes.Added an option to run the naive interactions instead of the optimized ones. These are to be used for debugging purposes.James WillisJames Willishttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/427Use H5Lexists to check whether /Units exists in IC files before attempting to...2017-09-21T15:34:40ZJosh BorrowUse H5Lexists to check whether /Units exists in IC files before attempting to read themUpdated to use H5Lexists to check whether user has input units into
their Initial Conditions files. This avoids error rasises from H5G* when
opening files without units and reverting back to the ones specified in
the parameterfile. W...Updated to use H5Lexists to check whether user has input units into
their Initial Conditions files. This avoids error rasises from H5G* when
opening files without units and reverting back to the ones specified in
the parameterfile. We now also let users know when their units are being
read from their ICs explicitly.Matthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/426Symmetric version of DOPAIR22017-09-19T15:57:56ZMatthieu SchallerSymmetric version of DOPAIR2Here is a much much better version. I now reproduce the pattern that was used in the original version but with correct loop bounds and use of rshift.
It's now almost on par with the old (but wrong) version. Here is a much much better version. I now reproduce the pattern that was used in the original version but with correct loop bounds and use of rshift.
It's now almost on par with the old (but wrong) version. Pedro GonnetPedro Gonnethttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/425Clean up task and threadpool plotting scripts2017-09-20T11:49:24ZPeter W. DraperClean up task and threadpool plotting scriptsMerges MPI and non-MPI task dump plotting and analysis scripts into single
versions that deal with both outputs.
Various tweaks so that we can generate and display task and threadpool
plots together for comparison (non-MPI only).
...Merges MPI and non-MPI task dump plotting and analysis scripts into single
versions that deal with both outputs.
Various tweaks so that we can generate and display task and threadpool
plots together for comparison (non-MPI only).
See #337.Peter W. DraperPeter W. Draper