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. 
>>
>>
>>

Reply via email to