You do not need @everywhere. `using` will load on all nodes.

-viral

On Friday, September 2, 2016 at 2:39:34 PM UTC+5:30, Paulito Palmes wrote:
>
> I also noticed (not specific to Power machines) that when you want to load 
> packages in Julia with several workers, I have to do the following to have 
> successful loading of packages:
>
> nprocs()==1 && addprocs()
> using Knet
> @everywhere using Knet
> using RDatasets
> @everywhere using RDatasets
> using MLBase
> @everywhere using MLBase
>
>
> If I use, 
> nprocs()==1 && addprocs()
> @everywhere using RDatasets
> @everywhere using Knet
> @everywhere using MLBase
>
> I have this error:
> ERROR: On worker 2:
> LoadError: LoadError: UndefVarError: @knet not defined
>
> If I use,
> nprocs()==1 && addprocs()
> using RDatasets
> using Knet
> using MLBase
>
> ERROR (unhandled task failure): On worker 4:
> On worker 4:
> On worker 4:
> UndefVarError: Gaussian not defined
>
> Attached is the code that I use which uses 3 @parallel for syntax
>
> My insight is that you need to load first all the packages into the 
> process id 1 to avoid clashes during pre-cache compilation and use 
> @everywhere using 
> to export the functions to other processes. It seems that just *using* 
> directives does not immediately export those functions to all processes 
> based on the code attached such that I have to use "@everywhere using" 
> directives. Is this a bug?
>
> Please try to reproduce the errors I have with the attached code. This 
> error only happens if you do addprocs() to run parallel julia.
>
> I'm using Julia 0.4.6 (2016-06-19 17:16 UTC)
>
> On Fri, Sep 2, 2016 at 9:52 AM, Paulito Palmes <ppal...@gmail.com> wrote:
>
>> Hi All,
>>
>> I noticed that some of the packages are not aware that Julia has power 
>> port now and when you install those packages, they include some compiler 
>> directives specific to Intel processor such as SSE. In the Makefile, I 
>> removed this extra option and the package compiles. However, if I do 
>> Pkg.build("Package"), it does not respect the edited Makefile and starts to 
>> download from github. I don't know the sequence of operations behind but is 
>> there a way to manually compile and install the local package downloaded 
>> after you edit some files to make it work for the power machine?
>>
>> I think the long term solution is to have a test server running power 
>> machine to flag that the package did not compile successfully to the power 
>> port.
>>
>> -paulito
>>
>> On Fri, Sep 2, 2016 at 8:02 AM, Viral Shah <vi...@mayin.org> wrote:
>>
>>> Can you try this one? I believe this error is addressed now.
>>>
>>>
>>> http://s3.amazonaws.com/julianightlies/bin/linux/ppc64le/julia-latest-linuxppc64.tar.gz
>>>
>>> Also, Elliot enabled the nightlies:
>>>
>>> https://build.julialang.org/builders/package_tarballppc64le
>>>
>>> -viral
>>>
>>>
>>> > On Sep 2, 2016, at 4:15 AM, James Fairbanks <jpfairba...@gmail.com> 
>>> wrote:
>>> >
>>> > Hi Viral,
>>> >
>>> > I got negative results on my power8 machine.
>>> > After untarring the link above I got the following errors when just 
>>> running the repl.
>>> >
>>> >
>>> > [jpf@power8 julia-3005940a21]$ ./bin/julia
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> > 'powerpc64le' is not a recognized processor for this target (ignoring 
>>> processor)
>>> >                _
>>> >    _       _ _(_)_     |  A fresh approach to technical computing
>>> >   (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
>>> >    _ _   _| |_  __ _   |  Type "?help" for help.
>>> >   | | | | | | |/ _` |  |
>>> >   | | |_| | | | (_| |  |  Version 0.5.0-rc3+3 (2016-08-26 06:19 UTC)
>>> >  _/ |\__'_|_|_|\__'_|  |  sf/ppc64le/3005940 (fork: 3 commits, 9 days)
>>> > |__/                   |  powerpc64le-unknown-linux-gnu
>>> >
>>> >
>>> > Then I got a lot more errors.
>>> > For example:
>>> >
>>> > WARNING: Method definition f(Tuple{Vararg{Int64, #N<:Any}}, 
>>> AbstractArray{#T<:Any, #N<:Any}) in module Main at 
>>> /home/jpf/julia-3005940a21/share/julia/test/core.jl:706 overwritten at 
>>> /home/jpf/julia-3005940a21/share/julia/test/core.jl:712.
>>> >     From worker 13:         * linalg/diagonal       in 101.62 seconds, 
>>> maxrss  348.31 MB
>>> >     From worker 13:         * inference             in   0.92 seconds, 
>>> maxrss  352.38 MB
>>> >     From worker 13:         * keywordargs           in   1.56 seconds, 
>>> maxrss  354.13 MB
>>> > WARNING: Method definition f() in module JLCall14301 at 
>>> /home/jpf/julia-3005940a21/share/julia/test/core.jl:3529 overwritten at 
>>> /home/jpf/julia-3005940a21/share/julia/test/core.jl:3539.
>>> >     From worker 5:         * linalg/matmul         in 169.17 seconds, 
>>> maxrss  367.69 MB
>>> >     From worker 16:         * linalg/cholesky       in  96.71 seconds, 
>>> maxrss  332.44 MB
>>> >     From worker 16:         * char                 Error During Test
>>> >     From worker 16:      Test threw an exception of type InexactError
>>> >     From worker 16:      Expression: $(Expr(:escape, 
>>> :(convert(Char,Float16(x))))) $(Expr(:escape, :(==))) $(Expr(:escape, 
>>> :(convert(Char,Float32(x))))) $(Expr(:escape, :(==))) $(Expr(:escape, 
>>> :(convert(Char,Float64(x))))) $(Expr(:escape, :(==))) $(Expr(:escape, 
>>> :(Char(x))))
>>> >     From worker 16:      InexactError()
>>> >     From worker 16:       in macro expansion; at 
>>> /home/jpf/julia-3005940a21/share/julia/test/char.jl:72 [inlined]
>>> >     From worker 16:       in anonymous at ./<missing>:?
>>> >     From worker 16:       in include_string(::String, ::String) at 
>>> ./loading.jl:380
>>> >     From worker 16:       in include_from_node1(::String) at 
>>> ./loading.jl:429
>>> >     From worker 16:       in macro expansion at ./util.jl:226 [inlined]
>>> >     From worker 16:       in runtests(::String) at 
>>> /home/jpf/julia-3005940a21/share/julia/test/testdefs.jl:7
>>> >     From worker 16:       in 
>>> (::Base.Serializer.__deserialized_types__.##16#24)(::String) at 
>>> /home/jpf/julia-3005940a21/share/julia/test/runtests.jl:44
>>> >     From worker 16:       in 
>>> (::Base.##625#627{Base.CallMsg{:call_fetch}})() at ./multi.jl:1421
>>> >     From worker 16:       in 
>>> run_work_thunk(::Base.##625#627{Base.CallMsg{:call_fetch}}, ::Bool) at 
>>> ./multi.jl:1001
>>> >     From worker 16:       in macro expansion at ./multi.jl:1421 
>>> [inlined]
>>> >     From worker 16:       in 
>>> (::Base.##624#626{Base.CallMsg{:call_fetch},Base.MsgHeader,TCPSocket})() at 
>>> ./event.jl:68
>>> >
>>> > On Tuesday, August 30, 2016 at 1:30:54 AM UTC-4, Viral Shah wrote:
>>> > I should point out that the linalg tests are expected to fail for now, 
>>> since we are awaiting a new openblas release, which is known to fix these 
>>> issues.
>>> >
>>> > -viral
>>> >
>>> > On Friday, August 19, 2016 at 10:26:38 AM UTC+5:30, Viral Shah wrote:
>>> > I have uploaded Julia-0.5 on Power8 binaries here. These are built 
>>> with the latest openblas (that passes all julia tests) and hence there is 
>>> no need to use ATLAS.
>>> >
>>> > https://drive.google.com/open?id=0B0rXlkvSbIfhVWpZb2hqclBIVms
>>> >
>>> > Would be great if people can try this out.
>>> >
>>> > -viral
>>> >
>>> >
>>> >
>>> > > On Aug 19, 2016, at 9:06 AM, Viral Shah <vi...@mayin.org> wrote:
>>> > >
>>> > > I am getting successful builds on the OSU Power8 machine. Once 
>>> openblas has a new release, I suspect we can provide pre-packaged power8 
>>> binaries.
>>> > >
>>> > > I am building on CentOS 7 and this is what lscpu says:
>>> > >
>>> > > Architecture:          ppc64le
>>> > > Byte Order:            Little Endian
>>> > > CPU(s):                160
>>> > > On-line CPU(s) list:   0-159
>>> > > Thread(s) per core:    8
>>> > > Core(s) per socket:    10
>>> > > Socket(s):             2
>>> > > NUMA node(s):          2
>>> > > Model:                 8335-GCA
>>> > > L1d cache:             64K
>>> > > L1i cache:             32K
>>> > > L2 cache:              512K
>>> > > L3 cache:              8192K
>>> > > NUMA node0 CPU(s):     0-79
>>> > > NUMA node8 CPU(s):     80-159
>>> > >
>>> > > I suspect you are running into a codegen issue. Let’s give it a few 
>>> days and once llvm 3.9 releases, we can try that. If not, we may need 
>>> Jameson’s help.
>>> > >
>>> > > -viral
>>> > >
>>> > >
>>> > >
>>> > >> On Aug 19, 2016, at 8:54 AM, Viral Shah <vi...@mayin.org> wrote:
>>> > >>
>>> > >> It is hard to say what is happening there. Trying it out.
>>> > >>
>>> > >> OpenBLAS develop branch is now passing on Power and hence Atlas 
>>> should no longer be required. Note that you need the latest (3.10.4?) 
>>> ATLAS, but in any case, this should not affect the build.
>>> > >>
>>> > >> -viral
>>> > >>
>>> > >>
>>> > >>
>>> > >>> On Aug 18, 2016, at 7:03 PM, Geert Janssen <gee...@gmail.com> 
>>> wrote:
>>> > >>>
>>> > >>> Dear Viral,
>>> > >>>
>>> > >>> I am building Julie release-0.5 on a Power8E Ubuntu 14.10 machine.
>>> > >>> I use the following Make.user after having had trouble compiling 
>>> OpenBLAS that was pulled in:
>>> > >>>
>>> > >>> created Make.user:
>>> > >>> override USE_SYSTEM_BLAS = 1
>>> > >>> override USE_BLAS64 = 0
>>> > >>> override LIBBLAS = -L/opt/atlas/lib -ltatlas
>>> > >>> override LIBBLASNAME = libtatlas
>>> > >>>
>>> > >>> I get a clean build all the way till the end and then this happens:
>>> > >>>
>>> > >>>   ....
>>> > >>>   JULIA usr/lib/julia/inference.ji
>>> > >>> /bin/sh: line 1:  6967 Segmentation fault      
>>> /localhome/geert/src/julia/usr/bin/julia -C native --output-ji 
>>> /localhome/geert/src/julia/usr/lib/julia/inference.ji --startup-file=no 
>>> coreimg.jl
>>> > >>> Makefile:215: recipe for target 
>>> '/localhome/geert/src/julia/usr/lib/julia/inference.ji' failed
>>> > >>> make[1]: *** 
>>> [/localhome/geert/src/julia/usr/lib/julia/inference.ji] Error 139
>>> > >>> Makefile:96: recipe for target 'julia-inference' failed
>>> > >>> make: *** [julia-inference] Error 2
>>> > >>>
>>> > >>> The machine and OS details are:
>>> > >>>
>>> > >>> geert@tulgpu505:~/src/julia$ lscpu
>>> > >>> Architecture:          ppc64le
>>> > >>> Byte Order:            Little Endian
>>> > >>> CPU(s):                184
>>> > >>> On-line CPU(s) list:   0-151,160-191
>>> > >>> Thread(s) per core:    8
>>> > >>> Core(s) per socket:    5
>>> > >>> Socket(s):             4
>>> > >>> NUMA node(s):          4
>>> > >>> Model:                 8247-42L
>>> > >>> CPU max MHz:           3923.0000
>>> > >>> CPU min MHz:           2061.0000
>>> > >>> L1d cache:             64K
>>> > >>> L1i cache:             32K
>>> > >>> L2 cache:              512K
>>> > >>> L3 cache:              8192K
>>> > >>> NUMA node0 CPU(s):     0-47
>>> > >>> NUMA node1 CPU(s):     48-95
>>> > >>> NUMA node16 CPU(s):    96-143
>>> > >>> NUMA node17 CPU(s):    144-151,160-191
>>> > >>> geert@tulgpu505:~/src/julia$ cat /etc/os-release
>>> > >>> NAME="Ubuntu"
>>> > >>> VERSION="14.10 (Utopic Unicorn)"
>>> > >>> ID=ubuntu
>>> > >>> ID_LIKE=debian
>>> > >>> PRETTY_NAME="Ubuntu 14.10"
>>> > >>> VERSION_ID="14.10"
>>> > >>> HOME_URL="http://www.ubuntu.com/";
>>> > >>> SUPPORT_URL="http://help.ubuntu.com/";
>>> > >>> BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/";
>>> > >>> geert@tulgpu505:~/src/julia$ uname -a
>>> > >>> Linux tulgpu505 3.16.0-30-generic #40-Ubuntu SMP Mon Jan 12 
>>> 22:07:11 UTC 2015 ppc64le ppc64le ppc64le GNU/Linux
>>> > >>> geert@tulgpu505:~/src/julia$
>>> > >>>
>>> > >>> Any suggestions?
>>> > >>>
>>> > >>> Thanks,
>>> > >>>
>>> > >>> Geert
>>> > >>
>>> > >
>>> >
>>>
>>>
>>
>

Reply via email to