Sorry, I added the @everywhere seeing the "k not defined" messages in Paul's post. It is not required. Don't know why he saw that.
As for the timings it does seem like the issue with using globals. Wrapping the example in a function gives the same performance for both value and variable. On Mon, Jun 2, 2014 at 12:48 PM, Andreas Noack Jensen < [email protected]> wrote: > It still does not work > > julia> @everywhere const k = 10000000; > > julia> @time tmp = @parallel (+) for i = 1:k; > int(randbool()) > end > elapsed time: 3.067388361 seconds (640090568 bytes allocated) > > > julia> @time tmp = @parallel (+) for i = 1:10000000; > int(randbool()) > end > elapsed time: 0.055685151 seconds (155072 bytes allocated) > > > 2014-06-02 5:26 GMT+02:00 Amit Murthy <[email protected]>: > > > > > @everywhere const k=200000000 > > > > > > On Sun, Jun 1, 2014 at 8:26 PM, Andreas Noack Jensen < > [email protected]> wrote: > >> > >> I don't know why you get that error. It is not there on my machine. > >> > >> However, for some reason defining k as const does not work for parallel > loops. It only makes a difference for serial loops so my explanation was > wrong. Is this expected? > >> > >> julia> const k1=10000000;k2 = k1; > >> > >> julia> @time for i = 1:10000000 > >> int(randbool()) > >> end > >> elapsed time: 0.041954142 seconds (0 bytes allocated) > >> > >> julia> @time for i = 1:k1 > >> int(randbool()) > >> end > >> elapsed time: 0.042543885 seconds (0 bytes allocated) > >> > >> julia> @time for i = 1:k2 > >> int(randbool()) > >> end > >> elapsed time: 2.923224821 seconds (639983688 bytes allocated) > >> > >> julia> @time tmp = @parallel (+) for i = 1:10000000 > >> int(randbool()) > >> end > >> elapsed time: 0.05594257 seconds (155072 bytes allocated) > >> > >> julia> @time tmp = @parallel (+) for i = 1:k1 > >> int(randbool()) > >> end > >> elapsed time: 3.067074328 seconds (640486512 bytes allocated) > >> > >> julia> @time tmp = @parallel (+) for i = 1:k2 > >> int(randbool()) > >> end > >> elapsed time: 3.021796716 seconds (640090424 bytes allocated) > >> > >> > >> 2014-06-01 16:28 GMT+02:00 paul analyst <[email protected]>: > >> > >>> After restart julia : > >>> > >>> > >>> D:\install\Julia\Julia 0.3.0-prerelease-win64-ver3\Julia > 0.3.0-prerelease ver 3>bin\julia.exe -p 8 > >>> _ > >>> _ _ _(_)_ | A fresh approach to technical computing > >>> (_) | (_) (_) | Documentation: http://docs.julialang.org > >>> _ _ _| |_ __ _ | Type "help()" to list help topics > >>> | | | | | | |/ _` | | > >>> | | |_| | | | (_| | | Version 0.3.0-prerelease+2599 (2014-04-11 > 23:52 UTC) > >>> _/ |\__'_|_|_|\__'_| | Commit bf7096c (50 days old master) > >>> |__/ | x86_64-w64-mingw32 > >>> > >>> julia> const k=200000000 > >>> > >>> 200000000 > >>> > >>> julia> tic(); > >>> > >>> julia> nheads = @parallel (+) for i=1:k > >>> int(randbool()) > >>> end > >>> exception on exception on 3: 4: ERROR: ERROR: exception on exception > on 2: exception on 7: ERROR: 5: > >>> ERROR: ERROR: exception on k not defined6: exception on ERROR: > >>> in anonymous at no file:1379 > >>> 8k: not definedERROR: > >>> in anonymous at no file:1379 > >>> k not definedk not defined > >>> in anonymous at no file:1379 > >>> > >>> in anonymous at no file:1379 > >>> k not definedk not definedk not defined > >>> in anonymous at no file:1379 > >>> > >>> in anonymous at no file:1379 > >>> > >>> in anonymous at no file:1379exception on > >>> 9: ERROR: k not defined > >>> in anonymous at no file:1379 > >>> ERROR: no method +(UndefVarError, UndefVarError) > >>> in mr_pairwise at reduce.jl:534 > >>> > >>> julia> toc() > >>> elapsed time: 2.493525081 seconds > >>> 2.493525081 > >>> > >>> julia> > >>> > >>> W dniu niedziela, 1 czerwca 2014 16:27:14 UTC+2 użytkownik paul > analyst napisał: > >>>> > >>>> julia> const k=200000000; > >>>> ERROR: cannot declare k constant; it already has a value > >>>> :/ > >>>> Paul > >>>> > >>>> W dniu niedziela, 1 czerwca 2014 16:13:27 UTC+2 użytkownik Andreas > Noack Jensen napisał: > >>>>> > >>>>> This is the usual problem with global variables in Julia. If you > define k by > >>>>> > >>>>> const k=200000000 > >>>>> > >>>>> the timing results should be similar. > >>>>> > >>>>> > >>>>> 2014-06-01 16:09 GMT+02:00 paul analyst <[email protected]>: > >>>>>> > >>>>>> > >>>>>> D:\install\Julia\Julia 0.3.0-prerelease-win64-ver3\Julia > 0.3.0-prerelease ver 3>bin\julia.exe -p 8 > >>>>>> _ > >>>>>> _ _ _(_)_ | A fresh approach to technical computing > >>>>>> (_) | (_) (_) | Documentation: http://docs.julialang.org > >>>>>> _ _ _| |_ __ _ | Type "help()" to list help topics > >>>>>> | | | | | | |/ _` | | > >>>>>> | | |_| | | | (_| | | Version 0.3.0-prerelease+2599 (2014-04-11 > 23:52 UTC) > >>>>>> _/ |\__'_|_|_|\__'_| | Commit bf7096c (50 days old master) > >>>>>> |__/ | x86_64-w64-mingw32 > >>>>>> > >>>>>> julia> procs() > >>>>>> 9-element Array{Int64,1}: > >>>>>> 1 > >>>>>> 2 > >>>>>> 3 > >>>>>> 4 > >>>>>> 5 > >>>>>> 6 > >>>>>> 7 > >>>>>> 8 > >>>>>> 9 > >>>>>> > >>>>>> julia> tic(); > >>>>>> > >>>>>> julia> nheads = @parallel (+) for i=1:200000000 > >>>>>> int(randbool()) > >>>>>> end > >>>>>> 100006468 > >>>>>> > >>>>>> julia> toc() > >>>>>> elapsed time: 2.77418807 seconds > >>>>>> 2.77418807 > >>>>>> > >>>>>> julia>exit() > >>>>>> > >>>>>> > >>>>>> D:\install\Julia\Julia 0.3.0-prerelease-win64-ver3\Julia > 0.3.0-prerelease ver 3>bin\julia.exe -p 8 > >>>>>> _ > >>>>>> _ _ _(_)_ | A fresh approach to technical computing > >>>>>> (_) | (_) (_) | Documentation: http://docs.julialang.org > >>>>>> _ _ _| |_ __ _ | Type "help()" to list help topics > >>>>>> | | | | | | |/ _` | | > >>>>>> | | |_| | | | (_| | | Version 0.3.0-prerelease+2599 (2014-04-11 > 23:52 UTC) > >>>>>> _/ |\__'_|_|_|\__'_| | Commit bf7096c (50 days old master) > >>>>>> |__/ | x86_64-w64-mingw32 > >>>>>> > >>>>>> julia> k=200000000 > >>>>>> 200000000 > >>>>>> > >>>>>> julia> tic(); > >>>>>> > >>>>>> julia> nheads = @parallel (+) for i=1:k > >>>>>> int(randbool()) > >>>>>> end > >>>>>> 99989022 > >>>>>> > >>>>>> julia> toc() > >>>>>> elapsed time: 18.631674663 seconds > >>>>>> 18.631674663 > >>>>>> > >>>>>> julia> > >>>>>> > >>>>>> What hapend ? > >>>>>> > >>>>>> Paul > >>>>>> > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> Med venlig hilsen > >>>>> > >>>>> Andreas Noack Jensen > >> > >> > >> > >> > >> -- > >> Med venlig hilsen > >> > >> Andreas Noack Jensen > > > > > > > > -- > Med venlig hilsen > > Andreas Noack Jensen >
