palday / MixedModelsPermutations.jl

Permutation tests for MixedModels.jl
https://palday.github.io/MixedModelsPermutations.jl/stable
MIT License
4 stars 2 forks source link

MMP hangs at 8% #21

Closed behinger closed 2 years ago

behinger commented 3 years ago

I managed to extract a MWE for my bug. Not easy, it only happens every 1000 simulations or so.

using FileIO,JLD2, MixedModelsPermutations
g = FileIO.load("bug_threading2.jld2")
H0 = coef(g["mm"])
H0[2] = 0
perm = permutation(800,g["mm"];β=H0,blup_method=olsranef,use_threads=false); 

(really hope this generalizes to another computer :P) On my computer this runs until

Progress: Progress: 8%|██████████▌ | ETA: 0:00:01 and then goes on forever

Important: I used the modified olsranef function that puts the scaling to Identity matrix. else it won't work because of singular REs

I noticed that theta is weird: [0 3*10⁻10 0] - same weird theta in another run that hangs [0 -8*10⁻6 0], but it seems to work for the first N permutations... maybe a hint.

Big note: the file is a .jld2 not a .zip => rename due to github file restrictions... bug_threading2.jld2.zip

behinger commented 3 years ago

just a quick update: for whatever reason (should have uploaded a manifest... now I know) - This exact instance does not stop any more.

There seems to be other iterations that stop and I will try to extract one and update this.

behinger commented 3 years ago

Ok. found another one..

using JLD2,FileIO,MixedModelsPermutations,MixedModels,Unfold,Random
g  = FileIO.load("/store/users/ehinger/unfoldjl_dev/data/bug_threading/bug_threading2.jld2")
H0 = coef(g["mm"])
H0[2] = 0
perm = permutation(MersenneTwister(1),800,g["mm"];β=H0,blup_method=Unfold.olsranefjf,use_threads=false); 

Again: Rename it first to "*.jld2" bug_threading2.jld2.zip

Full package list just in case

(unfoldjl_dev) pkg> st
      Status `/store/users/ehinger/unfoldjl_dev/Project.toml`
  [cbdf2221] AlgebraOfGraphics v0.2.4
  [488c2830] BSplines v0.3.2
  [20533458] BenchmarkCI v0.1.7
  [6e4b80f9] BenchmarkTools v0.5.0
  [0a1fb500] BlockDiagonals v0.1.17
  [336ed68f] CSV v0.8.4
  [13f3f980] CairoMakie v0.3.19
  [5ae59095] Colors v0.12.6
  [717857b8] DSP v0.6.10
  [a93c6f00] DataFrames v0.22.5
  [31a5f54b] Debugger v0.6.7
  [39dd38d3] Dierckx v0.5.1
  [634d3b9d] DrWatson v2.0.1
  [5789e2e9] FileIO v1.6.5
  [38e38edf] GLM v1.4.1
  [e9467ef8] GLMakie v0.1.30
  [033835bb] JLD2 v0.4.2
  [ee78f7c6] Makie v0.12.0
  [ff71e718] MixedModels v3.6.0
  [647c4018] MixedModelsPermutations v0.1.2 `dev/MixedModelsPermutations`
  [d5ae56c5] MixedModelsSim v0.2.0 `https://github.com/RePsychLing/MixedModelsSim.jl#master`
  [b98c9c47] Pipe v1.3.0
  [32113eaa] PkgBenchmark v0.2.10
  [92933f4c] ProgressMeter v1.5.0
  [438e738f] PyCall v1.92.2
  [6c5003b2] PyMNE v0.1.2
  [6f49c342] RCall v0.13.10
  [90137ffa] StaticArrays v1.0.1
  [2913bbd2] StatsBase v0.33.4
  [3eaba693] StatsModels v0.6.21
  [fd094767] Suppressor v0.2.0
  [181c99d8] Unfold v0.2.2 `dev/Unfold`
  [276b4fcb] WGLMakie v0.3.3

(unfoldjl_dev) pkg> 
behinger commented 3 years ago

just tested this at Julia 1.6.1 and same problem (with MixedModelsPermutations 0.1.3) - it does seem to work with 1.7.0-beta2, at least for this iteration. But under 1.7.0.beta-2 I get looooads of crazy console output:

intersect_var at /buildworker/worker/package_linux64/build/src/subtype.c:2219
intersect at /buildworker/worker/package_linux64/build/src/subtype.c:3044
... x 1000

Thus I cannot test for more iterations, too slow :/

grafik

palday commented 3 years ago

MixedModels doesn't work on 1.7 currently -- it's a bug in julia! https://github.com/JuliaLang/julia/issues/40048