You could test whether the GC is fast enough by implementing the
computational core (using simulated data or something similar), then
just running it. Then if you find it is not acceptable, you haven't
wasted time on writing the code for interfacing with the equipment.

Also, you could think about the "cost" of an occasional longer GC run,
and what the acceptable failure rate is. For example, is it a great
concern if you have suboptimal quality or even total loss of every
1000th frame? or 10000th? Of course one would like to have all the data,
but equipment can be down for all sorts of reasons and maybe the GC
hiccups will not be your primary concern.

Best,

Tamas

On Mon, May 30 2016, Leger Jonathan wrote:

> Thanks for the answer.
>
> I don't intend to use any package, only use my array so I can confirm 
> that I will not have dynamic memory allocation (let's hope that I'm true 
> ;) ).
> But even in this case Julia itself may do allocations, so my question 
> would be more: if there is nearly nothing to do, is the GC fast ?
> I already read many topics about GC and yes, even if there was very good 
> improvements, is it enough for my case ?
>
> In the worst case Julia will be for testing and will only call the main 
> loop in C++.
>
> Le 30/05/2016 14:10, Uwe Fechner a écrit :
>> I think, that would be difficult.
>>
>> As soon as you use any packages for image conversion or estimation you 
>> have to assume that they use dynamic memory allocation.
>>
>> The garbage collector of Julia is fast, but not suitable for hard 
>> real-time requirements. Implementing a garbage collector for hard 
>> real-time
>> applications is possible, but a lot of work and will probably not 
>> happen in the near future.
>>
>> Their was an issue on this topic, that was closed as "won't fix":
>> https://github.com/JuliaLang/julia/issues/8543
>>
>> Uwe
>>
>> On Monday, May 30, 2016 at 12:00:13 PM UTC+2, John leger wrote:
>>
>>     Hi everyone,
>>
>>     I am working in astronomy and we are thinking of using Julia for a
>>     real time, high performance adaptive optics system on a solar
>>     telescope.
>>
>>     This is how the system is supposed to work:
>>        1) the image is read from the camera
>>        2) some correction are applied
>>        3) the atmospheric turbulence is numerically estimated in order
>>     to calculate the command to be sent to the deformable mirror
>>
>>     The overall process should be executed in less than 1ms so that it
>>     can be integrated to the chain (closed loop).
>>
>>     Do you think it is possible to do all the computation in Julia or
>>     would it be better to code some part in C/C++. What I fear the
>>     most is the GC but in our case we can pre-allocate everything, so
>>     once we launch the system there will not be any memory allocated
>>     during the experiment and it will run for days.
>>
>>     So, what do you think? Considering the current state of Julia will
>>     I be able to get the performances I need. Will the garbage
>>     collector be an hindrance ?
>>
>>     Thank you.
>>

Reply via email to