SWIFTsim merge requestshttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests2019-09-03T13:07:30Zhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/911Apple shizzle2019-09-03T13:07:30ZJosh BorrowApple shizzleSome minor fixes for compiling on the __APPLE__ platform.
1) Fix an unused variable warning in the alignment (guess my machine can't check for alignment, oops...)
2) Fix typo in a header guard (thanks `clang`!)
3) Initialise some va...Some minor fixes for compiling on the __APPLE__ platform.
1) Fix an unused variable warning in the alignment (guess my machine can't check for alignment, oops...)
2) Fix typo in a header guard (thanks `clang`!)
3) Initialise some variables that it complains about in the multi softening gravity.Clean compiling code with different tool stacksPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/747Fixed config.h pathing for all files so that out-of-source builds work2019-02-27T14:47:48ZJosh BorrowFixed config.h pathing for all files so that out-of-source builds workFixes issue #549. Let's have Jenkins check this one...Fixes issue #549. Let's have Jenkins check this one...Clean compiling code with different tool stackshttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/32Small changes for clang compatibility2015-09-09T09:40:02ZMatthieu SchallerSmall changes for clang compatibilityI have made some minor changes (mostly to space.c) so that the code now compiles out of the box with the clang compiler.
The main change is the removal of nested functions in space.c. They have been replaced by static functions.I have made some minor changes (mostly to space.c) so that the code now compiles out of the box with the clang compiler.
The main change is the removal of nested functions in space.c. They have been replaced by static functions.Clean compiling code with different tool stacksPedro GonnetPedro Gonnethttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/14Allow the code to do i/o in serial while MPI is activated2015-05-06T09:21:44ZMatthieu SchallerAllow the code to do i/o in serial while MPI is activatedQuite a big change. Main goal is to solve issue #29 and hence offer a workaround #22.
The old non-MPI code is now in single_io.[ch] and is called when WITH_MPI is not defined.
The old MPI code with parallel-HDF5 is called when WITH...Quite a big change. Main goal is to solve issue #29 and hence offer a workaround #22.
The old non-MPI code is now in single_io.[ch] and is called when WITH_MPI is not defined.
The old MPI code with parallel-HDF5 is called when WITH_MPI and HAVE_PARALLEL_HDF5 are both defined.
The new MPI code is in serial_io.[ch] and is celled when WITH_MPI is defined but HAVE_PARALLEL_HDF5 is not.
In this serial mode, the code forces the different MPI ranks to write to the same file one after the other, appending their particles at the end of the pre-existing set of particles.
This merge request also corrects issue #27 and a bug in the attributes of the arrays in HDF5 that got the wrong units.
SWIFT now runs with Platform-MPI !!Clean compiling code with different tool stacksPeter W. DraperPeter W. Draperhttps://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/394Super cells2017-09-01T12:39:50ZPedro GonnetSuper cellsAllocate a list of direct pointers to the "super" cells in the space.
This is usefull for mappers that currently operate on the cells, but actually just recurse and do things at, or below, the super cells. This finer-grained input to ...Allocate a list of direct pointers to the "super" cells in the space.
This is usefull for mappers that currently operate on the cells, but actually just recurse and do things at, or below, the super cells. This finer-grained input to the threadpool will likely parallelize better.Scalable SPH in multi-dtPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/386Engine barrier2017-08-15T10:57:06ZPedro GonnetEngine barrierFollowing the results in the `threadpool_task_plots` branch, I've replaced the elaborate hand-crafted `engine_barrier` function by two `pthread_barrier`s.
As a result, the runner threads should all start, and synchronize, faster.Following the results in the `threadpool_task_plots` branch, I've replaced the elaborate hand-crafted `engine_barrier` function by two `pthread_barrier`s.
As a result, the runner threads should all start, and synchronize, faster.Scalable SPH in multi-dtPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/384Threadpoolize all the things2017-08-03T15:17:18ZPedro GonnetThreadpoolize all the thingsThese are all the remaining function from the list in #338. I've tested this as far as possible on my laptop, i.e. MPI and gravity *should* work.These are all the remaining function from the list in #338. I've tested this as far as possible on my laptop, i.e. MPI and gravity *should* work.Scalable SPH in multi-dtMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/378Mpi drifts2017-07-28T16:35:24ZPedro GonnetMpi driftsInstead of drifting all particles in the super-cell before sending, drift only the sub-cells that are involved in an interaction. For deep hierarchies, this saves a lot of drifting.
This merge request removes two tests for drifted par...Instead of drifting all particles in the super-cell before sending, drift only the sub-cells that are involved in an interaction. For deep hierarchies, this saves a lot of drifting.
This merge request removes two tests for drifted particles when sending and receiving, as not all particles will be drifted and we can't know which ones need to be drifted there and then. Note, however, that undrifted particles will still be caught in the interaction tasks.Scalable SPH in multi-dtMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/377Split gravity tasks2017-08-03T10:09:00ZPedro GonnetSplit gravity tasksApply a similar splitting scheme for gravity tasks as for hydroApply a similar splitting scheme for gravity tasks as for hydroScalable SPH in multi-dtMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/373Fewer mpi comms2017-07-27T08:40:53ZPedro GonnetFewer mpi commsRe-think when and how we activate communication tasks and pair tasks spanning local and foreign cells.
This should result in much fewer interaction tasks, send/recv pairs, and drifts.Re-think when and how we activate communication tasks and pair tasks spanning local and foreign cells.
This should result in much fewer interaction tasks, send/recv pairs, and drifts.Scalable SPH in multi-dtPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/365Subsize2017-07-14T17:01:18ZPedro GonnetSubsizeUse separate parameters to determine when a pair or self interaction should be made a sub-cell task.Use separate parameters to determine when a pair or self interaction should be made a sub-cell task.Scalable SPH in multi-dtMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/343Subset sorting2017-07-10T19:38:47ZPedro GonnetSubset sortingMassive change in the way we treat sub-cell tasks and sorts in general, i.e.:
* Sorts and drifts now unlock *all* sorts and drifts above them, this ensures they are executed bottom-up even if intermediate tasks are not active,
* Su...Massive change in the way we treat sub-cell tasks and sorts in general, i.e.:
* Sorts and drifts now unlock *all* sorts and drifts above them, this ensures they are executed bottom-up even if intermediate tasks are not active,
* Sub-cell task hierarchies are traversed consistently during density/ghost/force computations,
* Sub-cell tasks no longer do the drifting and sorting themselves,
* Sorts are only re-computed once the oldest sorted index goes stale.
* Ghosts exist at a lower level in the tree.Scalable SPH in multi-dtPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/335Do not clear the sort flag when receiving parts after the ghost.2017-04-28T07:33:16ZMatthieu SchallerDo not clear the sort flag when receiving parts after the ghost.Implements #304. We only reset the c->sorted flag for the first receive not for the second one. Implements #304. We only reset the c->sorted flag for the first receive not for the second one. Scalable SPH in multi-dtPedro GonnetPedro Gonnethttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/327Rebuild criteria2017-08-03T16:15:38ZPedro GonnetRebuild criteriaInstead of rebuilding whenever the cell constraints or sort indices are violated, just re-sort in case of the latter.
This lead to some other changes:
* Init tasks are gone, particle initialization is now handled in the drift task...Instead of rebuilding whenever the cell constraints or sort indices are violated, just re-sort in case of the latter.
This lead to some other changes:
* Init tasks are gone, particle initialization is now handled in the drift tasks,
* Drift tasks no longer act on the super-cell, but exist at every level similar to the sort tasks,
* Fixed several dependency issues with sort and drift tasks,
* Only drift/sort on-demand in the sub-cell tasks.
Marked as [WIP] as this has not yet been tested for MPI runs, or with gravity.Scalable SPH in multi-dtPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/392Free sort indices and task arrays before repartitioning2017-08-08T09:16:20ZPeter W. DraperFree sort indices and task arrays before repartitioningFreeing the sort indices and tasks arrays before repartitioning makes that memory available so
that we have more room for accepting particles from other nodes.
Part of #98.
Also adds a useful debug function that reports the curre...Freeing the sort indices and tasks arrays before repartitioning makes that memory available so
that we have more room for accepting particles from other nodes.
Part of #98.
Also adds a useful debug function that reports the current memory
usage of the process tree (i.e. call from main thread to get all usage).
Same numbers you get out of the top program.
Free the task arrays and cells are refactored into simple functions to cut down
on cut and paste.MPI rebuild must workPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/695Modern C approach to memswap after we found issues on ARM architectures with…2019-01-11T09:46:27ZAidan ChalkModern C approach to memswap after we found issues on ARM architectures with…Modern C approach to memswap after we found issues on ARM architectures with some compilers with the old version.
Waiting for ARM to confirm if this makes EAGLE_6 run.Modern C approach to memswap after we found issues on ARM architectures with some compilers with the old version.
Waiting for ARM to confirm if this makes EAGLE_6 run.Code is C11 (or gnu11) compliantPeter W. DraperPeter W. Draperhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/510Cosmo vec2018-03-05T22:52:33ZJames WillisCosmo vecImplement cosmological terms in vectorised hydro interactions.
Fixes #406.Implement cosmological terms in vectorised hydro interactions.
Fixes #406.Vectorization of all the core SPH tasksMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/483[WIP] Generic cache2019-08-16T10:10:04ZJames Willis[WIP] Generic cacheCreate a set of generic vectorised neighbour finding functions that are independent of the SPH flavour used.Create a set of generic vectorised neighbour finding functions that are independent of the SPH flavour used.Vectorization of all the core SPH tasksMatthieu SchallerMatthieu Schallerhttps://gitlab.cosma.dur.ac.uk/swift/swiftsim/-/merge_requests/482WIP: Resolve "Generic cache construction for all flavours of SPH"2018-01-05T16:35:32ZJames WillisWIP: Resolve "Generic cache construction for all flavours of SPH"Closes #295Closes #295Vectorization of all the core SPH tasks