NIFTy merge requestshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests2020-05-30T10:40:34Zhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/519Provide some MPI utilities in utilities.py2020-05-30T10:40:34ZMartin ReineckeProvide some MPI utilities in utilities.pyhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/518WIP: More restrictive scaling operator2020-06-05T08:36:57ZPhilipp Arrasparras@mpa-garching.mpg.deWIP: More restrictive scaling operatorhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/517WIP: Jacobian test not assuming C-linearity2020-06-05T08:36:16ZPhilipp Arrasparras@mpa-garching.mpg.deWIP: Jacobian test not assuming C-linearityhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/516Cleanupdemo2020-05-28T11:43:55ZPhilipp Arrasparras@mpa-garching.mpg.deCleanupdemohttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/515Tiny cleanup in Linearization.prepend_jac2020-05-28T11:43:05ZLukas PlatzTiny cleanup in Linearization.prepend_jacremoving dublicate logicremoving dublicate logicMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/514Fix badges for nifty72020-05-28T11:45:01ZPhilipp Arrasparras@mpa-garching.mpg.deFix badges for nifty7Martin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/513Remove badges here2020-05-28T11:44:36ZPhilipp Arrasparras@mpa-garching.mpg.deRemove badges hereI use the Gitlab builtin feature now which displays the badges at the top of the main page.I use the Gitlab builtin feature now which displays the badges at the top of the main page.Martin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/512Simpler way of MPI summation2020-05-29T09:31:57ZMartin ReineckeSimpler way of MPI summationThis supersedes !511, and @reimar is OK with it :)
Before merging I'll run a few tests with EHT and varying number of MPI tasks.This supersedes !511, and @reimar is OK with it :)
Before merging I'll run a few tests with EHT and varying number of MPI tasks.https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/511WIP: Made _sumup of KL faster by summing up in parallel when possible2020-05-27T15:38:26ZReimar H LeikeWIP: Made _sumup of KL faster by summing up in parallel when possibleMarked as work in progress because
1. has to be tested whether it is really faster
2. Speed could in theory be even more increased if one uses the numpy versions of communication, i.e. Send and Recv
The basic idea of this change is...Marked as work in progress because
1. has to be tested whether it is really faster
2. Speed could in theory be even more increased if one uses the numpy versions of communication, i.e. Send and Recv
The basic idea of this change is to sum up the KL in a tree-type structure. This goes as follows.
Suppose we have this list:
```
1 2 3 4 5 6
```
Then we combine the numbers pairwise:
```
1 2 3 4 5 6
| / | / | /
3 7 11
```
We then iterate this procedure:
```
3 7 11
| / |
10 11
```
Here the 11 was at the end of the list, and was thus not summed. Finally we get
```
10 11
| /
21
```
This procedure converges in O(ln(N)) steps, if N is the length of the list.
Suppose the objects of the list are distributed over different MPI tasks, then in every step we need at most N/2 communications. However, because the range of numbers is shared consecutively, every task needs to communicate at most 2 times per iteration, so most communications are done in parallel. The method is organized such that the result of a sum is always computed by the higher ranked tasks. i.e. if the list is distributed over 4 tasks as follows:
```
1 1 2 2 3 4
```
Then the ranks that hold the sums evolve as follows:
```
1 1 2 3 3 4
| / | / | /
1 3 4
```
So far two communication were needed, with task 3 needing to communicate twice. It continues as
```
1 3 4
| / |
3 4
| /
| /
4
```
with two more necessary communications. In the end task 4 broadcasts the result.Martin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/510Deterministic MPI KL2020-05-27T10:28:31ZMartin ReineckeDeterministic MPI KLThis patch tries to carry out summations over samples in a completely deterministic way, independent of the number of MPI tasks involved. My first tests with EHT indicate that this works, i.e. we get bit-identical results for the same in...This patch tries to carry out summations over samples in a completely deterministic way, independent of the number of MPI tasks involved. My first tests with EHT indicate that this works, i.e. we get bit-identical results for the same initial conditions when varying the number of tasks.
@reimar I'm not absolutely sure that we have a test for `_metric_sample`. How hard would it be to add one?https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/509Support complex data in `VariableCovarianceGaussianEnergy` and use simplify f...2020-05-29T11:03:09ZPhilipp Arrasparras@mpa-garching.mpg.deSupport complex data in `VariableCovarianceGaussianEnergy` and use simplify for constant input for KL and `EnergyAdapter`Martin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/508fix nondeterministic test2020-05-27T07:16:56ZMartin Reineckefix nondeterministic test@parras Please have a very quick look and merge if you like it!@parras Please have a very quick look and merge if you like it!https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/507numpy tests added2020-05-27T16:50:28ZMartin Reineckenumpy tests addedhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/506Fix optimiser2020-05-26T12:27:28ZRouven LemmerzFix optimiserPatch forgotten refactoring, fix docstringsPatch forgotten refactoring, fix docstringshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/505Update docstring for 'VariableCovarianceGaussianEnergy'2020-05-26T06:48:03ZAndrija KosticUpdate docstring for 'VariableCovarianceGaussianEnergy'https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/504Update contributors list2020-05-25T17:49:38ZPhilipp Arrasparras@mpa-garching.mpg.deUpdate contributors listhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/503Update docstring for 'from_random' so that the explanation of the parameters...2020-05-26T06:47:36ZAndrija KosticUpdate docstring for 'from_random' so that the explanation of the parameters...Update docstring for 'from_random' so that the explanation of the parameters comes in order as they appear when one calls the methodUpdate docstring for 'from_random' so that the explanation of the parameters comes in order as they appear when one calls the methodhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/502Renamings2020-05-25T13:35:47ZPhilipp Arrasparras@mpa-garching.mpg.deRenamingshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/501Nifty7 transition2020-05-25T11:38:51ZPhilipp Arrasparras@mpa-garching.mpg.deNifty7 transitionMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/500WIP: More restrictive scaling operator2020-05-25T11:06:55ZReimar H LeikeWIP: More restrictive scaling operatorScalingOperators do not know the dtype, on which theyu operate. This can lead to problems if complex scalingOperators act on real fields, as this causes it to cast the input to a complex number. However, the adjoint then does not cast th...ScalingOperators do not know the dtype, on which theyu operate. This can lead to problems if complex scalingOperators act on real fields, as this causes it to cast the input to a complex number. However, the adjoint then does not cast this number back, leading to inconsistencies. This branch therefore raises an error whenever a ScalingOperator with complex factor acts on a real input, forcing the User to use an adjoint Realizer to cast the field to a complex one first.
The DiagonalOperator should probably do the same check.Martin ReineckeMartin Reinecke