madeleineudell / ParallelSparseMatMul.jl

A Julia library for parallel sparse matrix multiplication using shared memory
Other
43 stars 13 forks source link

Undefined Error when testing example #14

Closed CorbinFoucart closed 7 years ago

CorbinFoucart commented 7 years ago

I am getting some undefined error after doing a simple test:

addprocs(3) m,n,p = 100,30,.1 # generate an 100 x 30 matrix with 10% fill S = shsprandn(m,n,p) # entries are normal random variables x = Base.shmem_randn(n) # create a shared memory array of length n y = S*x

Generates: (venvJul2) ibfdr-compute-0-0(3D_tracer)% julia -i testSp.jl WARNING: Base.SparseMatrix is deprecated, use Base.SparseArrays instead. likely near /home/foucartc/.julia/v0.5/ParallelSparseMatMul/src/ParallelSparseMatMul.jl:5 24 ERROR: LoadError: On worker 2: UndefVarError: ParallelSparseMatMul not defined in deserialize at ./serialize.jl:602 in handle_deserialize at ./serialize.jl:581 in deserialize at ./serialize.jl:541 in deserialize_datatype at ./serialize.jl:822 in handle_deserialize at ./serialize.jl:571 in collect_to! at ./array.jl:340 in collect at ./array.jl:308 in deserialize at ./serialize.jl:588 in handle_deserialize at ./serialize.jl:581 in deserialize at ./serialize.jl:541 in deserialize_datatype at ./serialize.jl:829 in handle_deserialize at ./serialize.jl:571 in deserialize_msg at ./multi.jl:120 in message_handler_loop at ./multi.jl:1317 in process_tcp_streams at ./multi.jl:1276 in #618 at ./event.jl:68 in #remotecall_fetch#606(::Array{Any,1}, ::Function, ::Function, ::Base.Worker, ::Base.RRID, ::Vararg{Any,N}) at ./multi.jl:1070 in remotecall_fetch(::Function, ::Base.Worker, ::Base.RRID, ::Vararg{Any,N}) at ./multi.jl:1062 in #remotecall_fetch#609(::Array{Any,1}, ::Function, ::Function, ::Int64, ::Base.RRID, ::Vararg{Any,N}) at ./multi.jl:1080 in remotecall_fetch(::Function, ::Int64, ::Base.RRID, ::Vararg{Any,N}) at ./multi.jl:1080 in call_on_owner(::Function, ::Future, ::Int64, ::Vararg{Int64,N}) at ./multi.jl:1130 in wait(::Future) at ./multi.jl:1145 in sync_end() at ./task.jl:298 in macro expansion at ./task.jl:327 [inlined] in A_mul_B!(::Float64, ::ParallelSparseMatMul.SharedSparseMatrixCSC{Float64,Int64}, ::SharedArray{Float64,1}, ::Float64, ::SharedArray{Float64,1}) at /home/foucartc/.julia/v0.5/ParallelSparseMatMul/src/parallel_matmul.jl:70 in *(::ParallelSparseMatMul.SharedSparseMatrixCSC{Float64,Int64}, ::SharedArray{Float64,1}) at /home/foucartc/.julia/v0.5/ParallelSparseMatMul/src/parallel_matmul.jl:84 in include_from_node1(::String) at ./loading.jl:488 in process_options(::Base.JLOptions) at ./client.jl:262 in _start() at ./client.jl:318 while loading /home/foucartc/julHDG/branches/MMSDebug/test_cases/3D_tracer/testSp.jl, in expression starting on line 48

Do you have any idea what this is about?

CorbinFoucart commented 7 years ago

I see that the problem is that I have not loaded the module on all threads, which is why a LoadError appears on worker 2 first. Rookie mistake.