dune-common issueshttps://gitlab.dune-project.org/core/dune-common/-/issues2022-06-02T12:55:03Zhttps://gitlab.dune-project.org/core/dune-common/-/issues/308MPICommunicator does not allow for size adjustment in async communication2022-06-02T12:55:03ZChristian EngwerMPICommunicator does not allow for size adjustment in async communication`MPICommunicator::rrecv` allows to pass a buffer with insufficient size. It first uses `MPI_Mprobe` and `MPI_Get_count` to extract the size info from the message, then resizes the buffer and at last it actually performs the `MPI_Recv`.
...`MPICommunicator::rrecv` allows to pass a buffer with insufficient size. It first uses `MPI_Mprobe` and `MPI_Get_count` to extract the size info from the message, then resizes the buffer and at last it actually performs the `MPI_Recv`.
It would be very helpful to have a similar feature to `irecv`.
The approach would roughly look as follows:
- use `MPI_Iprobe` to check for the message in an async fashion
- return a corresponding future
- after `future.ready()` is true the data can be received, e.g. in `future.get()` or any other polling call
- with the `MPI_Iprobe`/`MPI_Get_count` results we resize the buffer and perform a sync `MPI_Recv`.https://gitlab.dune-project.org/core/dune-common/-/issues/300GenerateTypeName is fragile2023-04-09T14:08:30ZChristian EngwerGenerateTypeName is fragileThe `GenerateTypeName` infrastructure in `typeregistry.hh` requires detailed knowledge about the details of the C++ type. Providing these manually is error-prone, see e.g. the global basis in dune-functions (dune-functions#70).
The glob...The `GenerateTypeName` infrastructure in `typeregistry.hh` requires detailed knowledge about the details of the C++ type. Providing these manually is error-prone, see e.g. the global basis in dune-functions (dune-functions#70).
The global basis defines a `DiscreteGlobalBasisFunction`, but sets a type name to `GlobalBasis::DiscreteFunction`. When trying to generate C++ code the can operate on such a discrete function, we get compiler errors, because there is no typename `GlobalBasis::DiscreteFunction` in the concrete `GlobalBasis`.
Couldn't we make `GenerateTypeName` more robust by using `className` to directly extract the correct type name?
The problem is that `GenerateTypeName` is hardly documented, thus I'm unsure about implications of such a change.https://gitlab.dune-project.org/core/dune-common/-/issues/40Support for running tests under valgrind2017-10-30T12:19:43ZAnsgar Burchardtansgar.burchardt@tu-dresden.deSupport for running tests under valgrindIt would be nice if there was an easy way to run test programs also under valgrind to make sure they leak no resources.
Any such support should also offer a way to pass additional options to valgrind, in particular whitelisting functi...It would be nice if there was an easy way to run test programs also under valgrind to make sure they leak no resources.
Any such support should also offer a way to pass additional options to valgrind, in particular whitelisting functions from the report in case third-party libraries do not make sure to free all resources. For example OpenMPI fails to do so and needs a suppression file (at least that was mentioned in https://bugs.debian.org/732160).