NIFTy merge requestshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests2020-06-05T11:25:55Zhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/529Constantsupport2020-06-05T11:25:55ZPhilipp Arrasparras@mpa-garching.mpg.deConstantsupportReady to be mergedReady to be mergedMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/528WIP: `FieldZeroPadder`: enable padding at the start of the array2021-03-24T11:15:05ZLukas PlatzWIP: `FieldZeroPadder`: enable padding at the start of the arrayThe `FieldZeroPadder` was able to pad either in the center of the field arrays or at the end.
Added the option to also pad at the start of field arrays.The `FieldZeroPadder` was able to pad either in the center of the field arrays or at the end.
Added the option to also pad at the start of field arrays.https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/527WIP: More constant support2020-06-18T18:19:39ZPhilipp Arrasparras@mpa-garching.mpg.deWIP: More constant supportMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/526Nifty6tonifty72020-06-04T16:45:49ZPhilipp Arrasparras@mpa-garching.mpg.deNifty6tonifty7https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/525Fix dtype handling2020-06-03T11:20:23ZPhilipp Arrasparras@mpa-garching.mpg.deFix dtype handlinghttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/524Wrap all scripts in functions2020-06-02T11:34:16ZPhilipp Arrasparras@mpa-garching.mpg.deWrap all scripts in functionsMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/523Fixups regarding constant minimization, nanisinf for EnergyAdapter2020-06-02T11:16:40ZPhilipp Arrasparras@mpa-garching.mpg.deFixups regarding constant minimization, nanisinf for EnergyAdapterMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/522Make Jacobian test distinguish C and R differentiability2020-06-02T07:46:37ZReimar H LeikeMake Jacobian test distinguish C and R differentiabilitydistinguishes between C and R differentiability in the jacobian tests. default: R-linearity
Fixes #304 distinguishes between C and R differentiability in the jacobian tests. default: R-linearity
Fixes #304 Martin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/521`NormalTransform` and `LognormalTransform`2020-06-05T09:06:59ZLukas Platz`NormalTransform` and `LognormalTransform`I found the functions around `_LognormalMomentMatching` and `_normal` from `correlated_fields.py` quite handy, so I moved them to a separate file and exposed them in the NIFTy namespace:
- `ift.NormalTransform` for the OpChain that tran...I found the functions around `_LognormalMomentMatching` and `_normal` from `correlated_fields.py` quite handy, so I moved them to a separate file and exposed them in the NIFTy namespace:
- `ift.NormalTransform` for the OpChain that transforms standard normally distributed values to normally distributed values
- `ift.LognormalTransform` for the OpChain that '...' to log-normally distributed values with given mean and std
- `ift.utilities.lognormal_moments` to calculate parameters for gauss(x, m, sig) so that exp(gauss(x, m, sig)) has the given mean and std. Used in `ift.LognormalTransform`, but also useful for calculating prior values for lognormal models.
- `ift.utilities.value_reshaper`: helper to make arrays of shape `(N,)` from scalars and arrays of length one.
Also added tests for the transforms.
@parras, @mtr, what do you think? Are the names and locations ok?https://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/520__repr__ methods for _FunctionApplier, _Amplitude and _LognormalMomentMatching2020-05-30T15:40:22ZLukas Platz__repr__ methods for _FunctionApplier, _Amplitude and _LognormalMomentMatchingThose operators obfuscated their actions, making it hard to debug overflows. Fixed it.Those operators obfuscated their actions, making it hard to debug overflows. Fixed it.Martin ReineckeMartin Reineckehttps://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?