Viral,  Thanks for the information about possible improvements in the 
future.

Gray, if you look at the 'getAlgs' function in my code you'll see that I do 
include an alternate (but unused by default) way of encapsulating each 
algorithm in a function.  This doesn't seem to improve the compilation 
speed.

chris

On Tuesday, January 20, 2015 at 1:02:17 PM UTC-8, Viral Shah wrote:
>
> With Jameson's work on static compilation and very early work towards 
> interpreting Julia code, this will get addressed, but not in the near 
> future.
>
> -viral
>
> On Tuesday, January 20, 2015 at 12:11:45 AM UTC+5:30, Gray Calhoun wrote:
>>
>> Hi Christian, you can certainly make the code-writing process
>> much faster by splitting large functions into many distinct
>> smaller functions. In your example (which I've only skimmed),
>> `mimosimu` looks like it directly implements and annotates
>> several similar but different algorithms which could all be
>> separate functions. Compilation happens at the function level,
>> not the file level, and shorter functions compile (and usually
>> run) much faster.
>>
>> Also, loading part of a file is something that editors can handle
>> as well, so if there aren't satisfactory packages (I haven't
>> tried the Autoreload.jl package recommended in the last thread,
>> but it looks promising), using an editor like Emacs (with ESS) or
>> Light Table (with Juno) could help. I'm sure there are lots of
>> other editors that do this too, but those are the two I'm
>> familiar with.
>>
>> On Sunday, January 18, 2015 at 10:04:58 PM UTC-6, Christian Peel wrote:
>>>
>>> I'm enjoying learning Julia.
>>>
>>> I have the same toy script written in Matlab and Julia at the following 
>>> URL: 
>>>      https://github.com/ChristianPeel/toySims/tree/master/mimoToys
>>> Running the following in matlab
>>>      tic; mimoUPtoy(200,4,4,4,0,12,12,[-10:5:30]); toc
>>> takes about 0.82 seconds on a specific machine.  In contrast, with Julia 
>>> I first need to 'include' it, then the first time through the compiler 
>>> takes around 7 seconds to compile the code and execute it. Subsequent 
>>> executions of the code have speed similar to Matlab.  
>>>      julia> tic(); include("mimoUPtoy.jl"); toc()
>>>      elapsed time: 0.348886314 seconds
>>>      0.348886314
>>>      julia> tic(); mimoUPtoy(200,4,4,4,0,12,12,[-10.0:5:30]); toq()
>>>     ...output...
>>>     7.002885787
>>>     julia> tic(); mimoUPtoy(200,4,4,4,0,12,12,[-10.0:5:30]); toq()
>>>     ...output...
>>>     0.860070365
>>> Some questions are (1) is there is some improvement in 0.4 or otherwise 
>>> which would improve the initial JIT time?  (2) is there any way to only 
>>> recompile the parts of a file that have changed? Say by using a hash on a 
>>> function to see if it has changed?  (3) I'm used to the Matlab development 
>>> cycle in which I don't need to 'include' anything (it's done automatically) 
>>> and also any JIT compilation that Matlab does is very fast and is 
>>> essentially not noticable.   So even though Matlab may be slower for code 
>>> execution, it feels faster for code development.  Is there anything that 
>>> can be done to Julia to make the code writing process quicker?  Is there a 
>>> way to automate the 'include' process?
>>>
>>> I acknowledge that one option to speed compilation time is to break 
>>> mimoUPtoy.jl into separate files. I'm also sure that there are things that 
>>> can be improved in both my Matlab and Julia code.   Finally; this function 
>>> is similar to that which I refered to in a previous post (I was busy at the 
>>> time and didn't get the code posted)
>>>    
>>> https://groups.google.com/forum/?fromgroups=#!searchin/julia-users/peel/julia-users/thR_80jtE2Q/ymV5i-AXmKkJ
>>>
>>>

Reply via email to