mkl_blas_mc3_zdotc is a pretty good sign that this is an issue with complex 
return-value calling convention differences between ifort and gfortran. 
You'd probably have to use the gfortran-calling-convention version of MKL 
if you're using gfortran to build arpack and the other Julia dependencies. 
I don't think we have that set up easily in the build system though - last 
time I tried it on a system that had MKL but not ifort it didn't work 
correctly.

With enough tweaks to Julia's makefiles it could possibly be made to work, 
but it would require regular testing against all the different combinations 
that we want to support. Currently we aren't testing any compilers other 
than GCC or Clang, or any Blas implementations other than OpenBLAS (or 
maybe, occasionally, reference netlib blas when that's what USE_SYSTEM_BLAS 
picks up) often enough to really honestly say we fully support those 
configurations.


On Sunday, February 8, 2015 at 11:58:20 AM UTC-8, Mark Wells wrote:
>
> Hi Tony!
>
> I'm using the 3.0 release (git checkout release-0.3). I would use ifort 
> but I am currently using the free student license which includes Intel® 
> C++ Compiler, Intel® MKL, Intel® TBB, Intel® IPP, Intel® VTune™ Amplifier 
> XE, Intel® Inspector XE, Intel® Advisor XE and does not include ifort.
>
> Here is the output now that I have set linalg4.jl debug from false to true
>
> mark@studio1458: ~/builds/julia
> :> make testall
>     PERL base/version_git.jl.phony
> exports.jl
> base.jl
> reflection.jl
> build_h.jl
> version_git.jl
> c.jl
> promotion.jl
> tuple.jl
> range.jl
> expr.jl
> error.jl
> bool.jl
> number.jl
> int.jl
> operators.jl
> pointer.jl
> float.jl
> complex.jl
> rational.jl
> abstractarray.jl
> reduce.jl
> subarray.jl
> array.jl
> bitarray.jl
> intset.jl
> dict.jl
> set.jl
> hashing.jl
> iterator.jl
> inference.jl
> osutils.jl
> char.jl
> ascii.jl
> utf8.jl
> utf16.jl
> utf32.jl
> iobuffer.jl
> string.jl
> utf8proc.jl
> regex.jl
> pcre.jl
> base64.jl
> io.jl
> iostream.jl
> libc.jl
> env.jl
> errno.jl
> path.jl
> intfuncs.jl
> task.jl
> show.jl
> stream.jl
> uv_constants.jl
> socket.jl
> stat.jl
> fs.jl
> process.jl
> multimedia.jl
> grisu.jl
> file.jl
> methodshow.jl
> floatfuncs.jl
> math.jl
> float16.jl
> cartesian.jl
> multidimensional.jl
> primes.jl
> serialize.jl
> multi.jl
> poll.jl
> loading.jl
> reducedim.jl
> ordering.jl
> collections.jl
> sort.jl
> combinatorics.jl
> rounding.jl
> gmp.jl
> mpfr.jl
> hashing2.jl
> dSFMT.jl
> random.jl
> darray.jl
> mmap.jl
> sharedarray.jl
> version.jl
> datafmt.jl
> deepcopy.jl
> interactiveutil.jl
> replutil.jl
> test.jl
> meta.jl
> i18n.jl
> help.jl
> simdloop.jl
> Terminals.jl
> LineEdit.jl
> REPLCompletions.jl
> REPL.jl
> client.jl
> printf.jl
> util.jl
> sparse.jl
> sparse/abstractsparse.jl
> linalg.jl
> broadcast.jl
> statistics.jl
> fftw.jl
> dsp.jl
> sysinfo.jl
> constants.jl
> quadgk.jl
> deprecated.jl
> pkg.jl
> graphics.jl
> profile.jl
> precompile.jl
>     JULIA test/all
> From worker 9:     * keywordargs
> From worker 2:     * linalg1
> From worker 6:     * linalg/cholmod
> From worker 4:     * linalg3
> From worker 3:     * linalg2
> From worker 5:     * linalg4
> From worker 7:     * linalg/umfpack
> From worker 8:     * core
> From worker 5: Triangular matrices
> From worker 9:     * numbers
> From worker 6:     * strings
> From worker 5: elty is Float32, relty is Float32
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 8:     * collections
> From worker 7:     * hashing
> From worker 5: Condition number tests - can be VERY approximate
> From worker 5: Binary operations
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Condition number tests - can be VERY approximate
> From worker 5: Binary operations
> From worker 6:     * remote
> From worker 5: elty is Complex{Float32}, relty is Float32
> From worker 5: Linear solver
> From worker 6:     * iobuffer
> From worker 6:     * arrayops
> From worker 7:     * reduce
> From worker 5: Eigensystems
> From worker 5: Condition number tests - can be VERY approximate
> From worker 5: Binary operations
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Condition number tests - can be VERY approximate
> From worker 5: Binary operations
> From worker 5: elty is Float64, relty is Float64
> From worker 5: Linear solver
> From worker 7:     * reducedim
> From worker 5: Eigensystems
> From worker 5: Condition number tests - can be VERY approximate
> From worker 5: Binary operations
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Condition number tests - can be VERY approximate
> From worker 5: Binary operations
> From worker 5: elty is Complex{Float64}, relty is Float64
> From worker 5: Linear solver
> From worker 8:     * simdloop
> From worker 8:     * blas
> From worker 5: Eigensystems
> From worker 5: Condition number tests - can be VERY approximate
> From worker 5: Binary operations
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Condition number tests - can be VERY approximate
> From worker 5: Binary operations
> From worker 5: elty is BigFloat, relty is BigFloat
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 8:     * fft
> From worker 5: Binary operations
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Binary operations
> From worker 5: elty is Complex{BigFloat}, relty is BigFloat
> From worker 5: Linear solver
> From worker 7:     * dsp
> From worker 9:     * sparse
> From worker 8:     * bitarray
> From worker 5: Eigensystems
> From worker 7:     * random
> From worker 5: Binary operations
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Binary operations
> From worker 5: Tridiagonal matrices
> From worker 5: relty is Float32, elty is Float32
> From worker 7:     * math
> From worker 5: Simple unary functions
> From worker 5: Binary operations
> From worker 5: relty is Float32, elty is Complex{Float32}
> From worker 5: Simple unary functions
> From worker 4:     * functional
> From worker 5: Binary operations
> From worker 5: relty is Float64, elty is Float64
> From worker 5: Simple unary functions
> From worker 5: Binary operations
> From worker 5: relty is Float64, elty is Complex{Float64}
> From worker 5: Simple unary functions
> From worker 5: Binary operations
> From worker 5: SymTridiagonal (symmetric tridiagonal) matrices
> From worker 4:     * bigint
> From worker 5: elty is Float32, relty is Float32
> From worker 5: Idempotent tests
> From worker 5: Simple unary functions
> From worker 5: Eigensystems
> From worker 5: This tests eigenvalue and eigenvector computations using 
> stebz! and stein!
> From worker 4:     * sorting
> From worker 6:     * statistics
> From worker 5: stein! call using iblock and isplit
> From worker 5: Binary operations
> From worker 5: elty is Complex{Float32}, relty is Float32
> From worker 5: Idempotent tests
> From worker 5: Simple unary functions
> From worker 5: Binary operations
> From worker 5: elty is Float64, relty is Float64
> From worker 5: Idempotent tests
> From worker 5: Simple unary functions
> From worker 5: Eigensystems
> From worker 5: This tests eigenvalue and eigenvector computations using 
> stebz! and stein!
> From worker 5: stein! call using iblock and isplit
> From worker 5: Binary operations
> From worker 5: elty is Complex{Float64}, relty is Float64
> From worker 5: Idempotent tests
> From worker 5: Simple unary functions
> From worker 5: Binary operations
> From worker 5: Eigenvalues in interval for Symmetric{Float64}
> From worker 5: Eigenvalues in interval for Hermitian{Float64}
> From worker 5: Eigenvalues in interval for Hermitian{Complex{Float64}}
> From worker 5: Eigenvalues in interval for SymTridiagonal{Float64}
> From worker 5: Bidiagonal matrices
> From worker 5: elty is Float32, relty is Float32
> From worker 5: Test upper and lower bidiagonal matrices
> From worker 5: isupper is: true
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: isupper is: false
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: elty is Complex{Float32}, relty is Float32
> From worker 5: Test upper and lower bidiagonal matrices
> From worker 5: isupper is: true
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: isupper is: false
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: elty is Float64, relty is Float64
> From worker 5: Test upper and lower bidiagonal matrices
> From worker 5: isupper is: true
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 7:     * spawn
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: isupper is: false
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: elty is Complex{Float64}, relty is Float64
> From worker 5: Test upper and lower bidiagonal matrices
> From worker 5: isupper is: true
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: isupper is: false
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: elty is BigFloat, relty is BigFloat
> From worker 5: Test upper and lower bidiagonal matrices
> From worker 5: isupper is: true
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 7:       [stdio passthrough ok]
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: isupper is: false
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: elty is Complex{BigFloat}, relty is BigFloat
> From worker 5: Test upper and lower bidiagonal matrices
> From worker 5: isupper is: true
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: isupper is: false
> From worker 5: Idempotent tests
> From worker 5: Linear solver
> From worker 5: Eigensystems
> From worker 5: Singular systems
> From worker 5: Binary operations
> From worker 5: Conversion from Bidiagonal to Tridiagonal
> From worker 5: Diagonal matrices
> From worker 5: elty is Float32, relty is Float32
> From worker 5: Linear solve
> From worker 6:     * intfuncs
> From worker 6:     * backtrace
> From worker 6:     * priorityqueue
> From worker 5: Simple unary functions
> From worker 5: Binary operations
> From worker 5: elty is Complex{Float32}, relty is Float32
> From worker 5: Linear solve
> From worker 5: Simple unary functions
> From worker 6:     * arpack
> exception on 5: From worker 7:     * file
> ERROR: assertion failed: |func(D) - func(DM)| <= 3.4332275e-5
>   func(D) = 1.048798f0 - 1.5707964f0im
>   func(DM) = 1.0487979650497437 - 0.5797938426309308im
>   difference = 0.9910025278753558 > 3.4332275e-5
>  in error at error.jl:22
>  in test_approx_eq at test.jl:109
>  in anonymous at no file:295
>  in runtests at /home/mark/builds/julia/test/testdefs.jl:5
>  in anonymous at multi.jl:855
>  in run_work_thunk at multi.jl:621
>  in anonymous at task.jl:855
> while loading linalg4.jl, in expression starting on line 263
>
> signal (11): Segmentation fault
> mkl_blas_mc3_zdotc at /opt/intel/composerxe/mkl/lib/intel64/libmkl_mc3.so 
> (unknown line)
> zdotc at /opt/intel/composerxe/mkl/lib/intel64/libmkl_intel_ilp64.so 
> (unknown line)
> zdotc at /opt/intel/composerxe/mkl/lib/intel64/libmkl_rt.so (unknown line)
> zneupd_ at /home/mark/builds/julia/usr/bin/../lib/libarpack.so (unknown 
> line)
> neupd at linalg/arpack.jl:285
> jlcall_neupd_24499 at  (unknown line)
> jl_apply at <invalid>:0
> eupd_wrapper at linalg/arpack.jl:131
> jlcall_eupd_wrapper_24492 at  (unknown line)
> jl_apply at <invalid>:0
> eigs at linalg/arnoldi.jl:105
> jlcall___eigs#159___24445 at  (unknown line)
> jl_apply_generic at <invalid>:0
> julia_eigs_24485 at  (unknown line)
> jlcall_eigs_24485 at  (unknown line)
> jl_apply at <invalid>:0
> eigs at linalg/arnoldi.jl:5
> julia_eigs_24440 at  (unknown line)
> jl_apply at <invalid>:0
> anonymous at no file:28
> jl_apply at <invalid>:0
> jl_parse_eval_all at <invalid>:0
> jl_load at <invalid>:0
> runtests at /home/mark/builds/julia/test/testdefs.jl:5
> jlcall_runtests_20201 at  (unknown line)
> jl_apply_generic at <invalid>:0
> jl_apply at <invalid>:0
> anonymous at multi.jl:855
> run_work_thunk at multi.jl:621
> jl_apply_generic at <invalid>:0
> anonymous at task.jl:855
> start_task at <invalid>:0
> julia_trampoline at <invalid>:0
> unknown function (ip: 4201261)
> __libc_start_main at /usr/lib/libc.so.6 (unknown line)
> unknown function (ip: 4200937)
> unknown function (ip: 0)
> Worker 6 terminated.
> ERROR: assertion failed: |func(D) - func(DM)| <= 3.4332275e-5
>   func(D) = 1.048798f0 - 1.5707964f0im
>   func(DM) = 1.0487979650497437 - 0.5797938426309308im
>   difference = 0.9910025278753558 > 3.4332275e-5
>  in wait at ./task.jl:284
>  in wait at ./task.jl:194
>  in wait_full at ./multi.jl:602
>  in remotecall_fetch at multi.jl:704
>  in remotecall_fetch at multi.jl:709
>  in anonymous at task.jl:1365
> while loading linalg4.jl, in expression starting on line 263
> while loading /home/mark/builds/julia/test/runtests.jl, in expression 
> starting on line 39
>
> Makefile:16: recipe for target 'all' failed
> make[1]: *** [all] Error 1
> Makefile:426: recipe for target 'testall' failed
> make: *** [testall] Error 2
>
>
>
>

Reply via email to