I get the same error that Christopher is getting when I run include method 
in .4. However, it does work in .3 without conflicts. 

The include method seems to work with my code but I do not call any 
packages.

So I am wondering if there is an error in one or several of the packages or 
if the behavior in .4 changed. 
 

On Sunday, October 11, 2015 at 10:22:28 AM UTC-4, Christopher Fisher wrote:
>
> Sorry for the confusion. I realized the problem with sendto() was that the 
> argument workers() was missing and there was a minor indexing problem in 
> MainScript.jl. Please see the updated code attached. I also included code 
> that works in Julia .3 with the require method, just to show that the code 
> is functioning. 
>
>
>
> The include method is beginning to work but it results in a conflict of 
> pdf between Distributions and KernelDensity: 
>
> WARNING: using KernelDensity.UnivariateKDE in module Main conflicts with an 
> existing identifier.
> WARNING: using KernelDensity.UnivariateKDE in module Main conflicts with an 
> existing identifier.
> WARNING: using Distributions.pdf in module Main conflicts with an existing 
> identifier.
> WARNING: using KernelDensity.UnivariateKDE in module Main conflicts with an 
> existing identifier.
> WARNING: using KernelDensity.pdf in module Main conflicts with an existing 
> identifier.
>
> LoadError: On worker 4:
> UndefVarError: pdf not defined
>  in KDFeval at /Users/chrisfisher/Desktop/Example Updated/Include 
> Method/KDFs.jl:10
>  in map at 
> /Applications/Julia-0.4.0.app/Contents/Resources/julia/lib/julia/sys.dylib
>  in anonymous at 
> /Users/chrisfisher/.julia/v0.4/DistributedArrays/src/DistributedArrays.jl:494
>  in anonymous at multi.jl:889
>  in run_work_thunk at multi.jl:645
>  in run_work_thunk at multi.jl:654
>  in anonymous at task.jl:58
>  in remotecall_fetch at multi.jl:731
>  in call_on_owner at multi.jl:776
>  in fetch at multi.jl:784
>  in chunk at 
> /Users/chrisfisher/.julia/v0.4/DistributedArrays/src/DistributedArrays.jl:257
>  in anonymous at task.jl:447
> while loading In[4], in expression starting on line 28
>
>  in sync_end at 
> /Applications/Julia-0.4.0.app/Contents/Resources/julia/lib/julia/sys.dylib
>  [inlined code] from task.jl:422
>  in convert at 
> /Users/chrisfisher/.julia/v0.4/DistributedArrays/src/DistributedArrays.jl:344
>  in convert at abstractarray.jl:421
>  [inlined code] from In[4]:35 
>
> in anonymous at no file:34
>
>
>  
>
> On Sunday, October 11, 2015 at 7:14:27 AM UTC-4, Tim Holy wrote:
>>
>> IIUC, there were two reasons for deprecating require: 
>>
>> - many people complained about the slew of related concepts (include, 
>> require, 
>> reload, using, import). require seems like the easiest of these to 
>> eliminate. 
>>
>> - Package precompilation. It was quite ambiguous whether 
>> require(filename) 
>> should defer to the precompiled file or the source code. However, now 
>> that we 
>> have timestamp checks to ensure these are in sync with each other, I'm 
>> not 
>> sure that argument is relevant anymore. 
>>
>> However, modules really should be "static" (containers of code, not of 
>> data), 
>> so perhaps use of modules indicates that the deprecation is a good idea 
>> on its 
>> own merits. Does my reply to Christopher about the anonymous functions 
>> help 
>> with your use case? 
>>
>> Best, 
>> --Tim 
>>
>> On Saturday, October 10, 2015 04:08:36 AM Sara Freeman wrote: 
>> > I've encountered a similar problem, but do not have a solution to 
>> report. 
>> > 
>> >  I'm not sure why require was depreciated. It worked quite well. 
>> > 
>> > On Friday, October 9, 2015 at 10:35:20 AM UTC-4, Christopher Fisher 
>> wrote: 
>> > > Hi all- 
>> > > 
>> > > I am trying to load a file of functions on a cluster of computers. In 
>> the 
>> > > past, I used require() (now depreciated) and the sendto() function 
>> > > described here 
>> > > <
>> http://stackoverflow.com/questions/27677399/julia-how-to-copy-data-to-ano 
>> > > ther-processor-in-julia>to make a data variable available on all 
>> workers. 
>> > > ( Note that I cannot simply load the data upon initializing the 
>> program 
>> > > because the data will change outside of the module, eventually 
>> receiving 
>> > > a stream of data from another program. So speed and flexibility is 
>> > > imperative).  As recommended here 
>> > > <
>> https://groups.google.com/forum/#!searchin/julia-users/$20require/julia-> 
>> > users/6zBKw4nd20I/5JLt7Ded0zkJ>, I defined a module containing the 
>> > > functions and used "using MyModule" to send it to the available 
>> workers. 
>> > > It seems that the major limitation of this approach is that data is 
>> not 
>> > > available to the functions within the module when using sendto(). I 
>> > > suspect this is because modules are 
>> > > encapsulated from other variables and functions. Bearing that in 
>> mind: 
>> > > 
>> > > 
>> > > 1. Is there a way around this problem using the module method? 
>> > > 
>> > > 2. Alternatively, is there a way I can make the functions and 
>> packages 
>> > > available to the workers without using modules? Perhaps something 
>> akin to 
>> > > the old require method? 
>> > > 
>> > > 3. Or is there a way to send the data via map() along with my 
>> function and 
>> > > distributed array? Essentially, my code loads stored inputs for 
>> numerous 
>> > > kernel density functions and converts them to a distributed array of 
>> > > arrays. For example: 
>> > > 
>> > > map(EvalKDFs,MyDistArray) 
>> > > 
>> > > Each time the above function is called, "MyData" needs to be 
>> available to 
>> > > the function EvalKDFs. However, map(EvalKDFs,MyDistArray,MyData) does 
>> not 
>> > > work because there is one array of data and many arrays within 
>> > > MyDistArray. 
>> > > 
>> > > I might be able to post a stripped down version of my code if my 
>> > > description does not suffice. 
>> > > 
>> > > Any help would be greatly appreciated. 
>>
>>

Reply via email to