Seems it may have something to do with that. If I understood correctly what you're saying, if I create Empty2.jl defining module Empty2, I get,
julia> addprocs(); julia> tic(); using Empty; toc() elapsed time: 2.706353202 seconds 2.706353202 julia> tic(); using Empty; toc() elapsed time: 0.00042397 seconds 0.00042397 julia> tic(); using Empty2; toc() elapsed time: 0.029200919 seconds 0.029200919 julia> tic(); using Empty2; toc() elapsed time: 0.000193097 seconds 0.000193097 That first load of Empty2 at 0.02 secs is much more in line with what loading it on a single processor takes. On Tuesday, July 19, 2016 at 4:13:15 PM UTC+2, Cedric St-Jean wrote: > > Maybe there is some warm-up JIT time in there? If you create an Empty2 > module and load it after Empty, is it also slow? > > On Tuesday, July 19, 2016 at 9:07:01 AM UTC-4, Marius Millea wrote: >> >> I noticed that once I addprocs(), subsequent "using" statements were >> extremely slow. I guess in this case its loading the module on each >> processor, but if it happens in parallel it shouldn't be *that* much more >> wall time, and here I'm talking about two orders of magnitude difference. >> >> Assuming I've got a file Empty.jl who contents is, >> >> module Empty >> end >> >> then single threaded: >> >> tic() >> using Empty >> toc() >> elapsed time: 0.024461076 seconds >> >> vs. multi-threaded: >> >> addprocs() #I've got 8 procs >> tic() >> using Empty >> toc() >> elapsed time: 2.479418079 seconds >> >> >> Should I submit this as an Issue on Github, or is there something else >> going on? I've checked both Julia 0.4.5. and 0.5 (01e3c8a). I'm on Ubuntu >> 16.04 64bit. >> >> >>