starpu merge requestshttps://gitlab.inria.fr/starpu/starpu/-/merge_requests2024-03-25T15:47:12+01:00https://gitlab.inria.fr/starpu/starpu/-/merge_requests/131Draft: Recursive bubbles2024-03-25T15:47:12+01:00Nathalie FurmentoDraft: Recursive bubbleshttps://gitlab.inria.fr/starpu/starpu/-/merge_requests/117Draft: src: when variable STARPU_PERF_MODEL_DIR is defined, write performance...2024-02-14T08:04:44+01:00Nathalie FurmentoDraft: src: when variable STARPU_PERF_MODEL_DIR is defined, write performance models...src: when variable STARPU_PERF_MODEL_DIR is defined, write performance models file in the given directory
close #33src: when variable STARPU_PERF_MODEL_DIR is defined, write performance models file in the given directory
close #33https://gitlab.inria.fr/starpu/starpu/-/merge_requests/109Draft: Add Readys scheduler2024-02-14T08:05:17+01:00Nathalie FurmentoDraft: Add Readys schedulerThis uses machine learning to decide task assignation between cpus and gpus.This uses machine learning to decide task assignation between cpus and gpus.https://gitlab.inria.fr/starpu/starpu/-/merge_requests/103Draft: Add StarPU-MPI pause and resume functionnalities2024-02-14T08:06:35+01:00Nathalie FurmentoDraft: Add StarPU-MPI pause and resume functionnalities@AntJego please have a look@AntJego please have a lookhttps://gitlab.inria.fr/starpu/starpu/-/merge_requests/100Draft: Windows2024-02-14T08:07:20+01:00Nathalie FurmentoDraft: Windowshttps://gitlab.inria.fr/starpu/starpu/-/merge_requests/72Draft: mpi: make sure mpi calls are not made outside the starpu mpi thread2024-02-14T08:07:47+01:00Nathalie FurmentoDraft: mpi: make sure mpi calls are not made outside the starpu mpi threadcloses #21closes #21https://gitlab.inria.fr/starpu/starpu/-/merge_requests/68mpi all_reduce2024-01-26T15:36:52+01:00Antoine Jegompi all_reduceThis MR targets replicated_tasks as it can be tied with the use of alternative_source.
StarPU lacks an all-reduce.
While this operation could be done with a reduce then a broadcast, it might be interesting to have a shorter operation.
...This MR targets replicated_tasks as it can be tied with the use of alternative_source.
StarPU lacks an all-reduce.
While this operation could be done with a reduce then a broadcast, it might be interesting to have a shorter operation.
This MR proposes something simple akin to the butterfly pattern in an FFT. It works with non-power-of-2 contributions by adding an extra step.
If we look at the litterature for MPI collectives in the 00s, a lot of patterns for all-reduce exists, sometimes involving halving the results (it makes sense with matrices, and could be achieved with partitioning in StarPU). A trade-off exists between latency and bandwidth.
The present implementation *should* be latency optimal (i.e. there are fewer steps than reduce + bcast).
- [ ] docs
- [ ] example
- [x] "simple" all-reduce, providing a benchmark
- [ ] all-reduce + alternative_source ?
- [x] fortran interfaceAntoine JegoAntoine Jegohttps://gitlab.inria.fr/starpu/starpu/-/merge_requests/66Replicated tasks2024-01-26T15:31:06+01:00Antoine JegoReplicated tasksThis MR aims at adding functionalities to StarPU-MPI so that a task can be replicated across several nodes, and the results of replicated tasks used by other nodes.
As of creating this MR, it is implemented the following way, following ...This MR aims at adding functionalities to StarPU-MPI so that a task can be replicated across several nodes, and the results of replicated tasks used by other nodes.
As of creating this MR, it is implemented the following way, following discussions with the StarPU team:
- A node *n* that is not the `home_node` *h* of a `handle` D can execute a task without sending the result back to *h* by using the `STARPU_SAME` flag ; this sets the cache for D as if *n* received a coherent value : we expect the application to have *h* executing the same task (*h* should be the last of the replicating nodes to insert the task because of sequential consistency).
- In order for this data to be used, i.e. for $n$ to be a source of D, other nodes should set $n$ as a source for $d$ through `set_source` function.
- A function `insert_tasks(..., ON:list_of_nodes)` should be provided to ease usage.
To-do list:
- [ ] `insert_tasks`
- [x] examples
- [x] (re)set_source
- [x] use starpu_same
- [x] combine both
- [x] tests (assuming H is owned by P0)
- [x] P1 becomes an alternative source of H for P2 then P0 writes H : P1 and P2 should receive H from P0 if they read it
- [x] P2 reads H then P1 becomes an alternative source of H for P2 then P2 reads H : either P2 forgets it has a valid value of P0 and the second read happens or P1 receives the cache state of P0 to avoid the unnecessary send
- [x] P1 becomes an alternative source of H for P2 then P2 read H without P0 knowing then P2 resets their alternative source before reading H : either P2 receives H from P0 (reset = flush) or P1 sends its cache to P0 (reset = exchange)
- [x] fortran interface
- [x] docsAntoine JegoAntoine Jegohttps://gitlab.inria.fr/starpu/starpu/-/merge_requests/59Draft: ULFM2023-11-09T08:26:28+01:00Nathalie FurmentoDraft: ULFMULFMULFM