This is now fixed now on master by using a new openblas release that fixes the bug. You can get the fix in tomorrow's nightly. Thanks for reporting!
-viral On Thursday, July 10, 2014 4:20:07 AM UTC+5:30, Thomas Covert wrote: > > I have found cholfact to behave differently (erroneously?) under parallel > processing contexts than under standard settings. What I mean by "parallel > processing" is simply having previously called addprocs(). Here is some > example code that I am running on my mid-2009 MacBook Pro using a somewhat > recent brew of @staticfloat's homebrew distribution: > > addprocs(8) > > N = 1000 > > x = 10 * randn(N) > > X = zeros(N,N) > > > for i = 1:N > > for j = 1:N > > X[i,j] = exp(-.5 * (x[i]-x[j])^2) > > end > > end > > > X = X + diagm(.5 * ones(N)) > > > C = cholfact(X) > > iC = inv(C) > > CiC = cholfact(iC) > > I believe this code generates an X which is positive definite by > construction. > > If I run this code as-is, I get the following error (or something similar, > the PosDefException sometimes changes): > > *ERROR: PosDefException(12)* > > * in cholfact! at linalg/factorization.jl:36* > > * in cholfact at linalg/factorization.jl:39* > > *while loading /Users/tcovert/path_to_code.jl, in expression starting on > line 16* > > However, if I comment out the "addprocs(8)" line, everything works fine. > Also, for smaller values of N the problem goes away (N=100,200 is fine, > N=400 is not). Here is my versioninfo() if that helps: > > *julia> **versioninfo()* > > Julia Version 0.3.0-prerelease+3868 > > Commit e7a9a7d* (2014-06-24 19:39 UTC) > > Platform Info: > > System: Darwin (x86_64-apple-darwin13.2.0) > > CPU: Intel(R) Core(TM)2 Duo CPU P8700 @ 2.53GHz > > WORD_SIZE: 64 > > BLAS: libopenblas (USE64BITINT NO_AFFINITY) > > LAPACK: libopenblas > > LIBM: libopenlibm > >
