I am very happy about your work. I had the hope, that the built-in method 
sleep could be improved to reach this level of performance: 
https://github.com/JuliaLang/julia/issues/12770

But perhaps it is better to have this in a separate package.

Uwe

On Monday, June 6, 2016 at 10:07:22 AM UTC+2, Islam Badreldin wrote:
>
> Hi,
>
> I'm excited to announce the first release of POSIXClock, a package that 
> provides Julia bindings to clock_*() functions from POSIX real-time 
> extensions (librt on Linux).
> https://github.com/ibadr/POSIXClock.jl
>
> But first, a full disclosure: I'm very new to Julia programming as well as 
> to real-time programming. That being said, I think this first release is 
> working as expected, and I tested it on a laptop powered by Intel Celeron 
> processor running Julia v0.4.5 as well as on a BeagleBone Black board 
> powered by AM335x armv7-based processor running Julia v0.5.0-dev nightly 
> build.
>
> The focus of the first release was on showing a proof-of-concept 
> demonstration that it's possible to execute hard real-time Julia code, with 
> emphasis on wrapping the clock_gettime() and the clock_nanosleep() 
> functions using CLOCK_MONOTONIC and absolute-time sleeps. Special care was 
> devoted to completely avoiding memory allocations in the real-time section 
> of the code by using in-place operations and pre-allocating all the needed 
> variables, as well as by disabling the garbage collector. The latency 
> histogram (see README.md) demonstrates such hard real-time functionality, 
> with worst-case latency of 40 us on a simple Intel Celeron processor. A 
> similar histogram was obtained for the BeagleBone Black, albeit with 
> worst-case latency of up to 140 us.
>
> This package should appeal to roboticists interested in Julia (I have 
> successfully tested this package with blinking a GPIO on the BeagleBone 
> Black using the mraa library), as well as to scientists conducting 
> closed-loop experiments with soft or hard real-time requirements. (Hard 
> real-time performance requires a recent Linux kernel with the PREEMPT_RT 
> patch.)
>
> In addition to this announcement, I have a couple of questions pertaining 
> to best practices for writing real-time Julia code and avoiding memory 
> allocations, as well as to sharing arrays between two Julia instances (one 
> is real-time and the other is regular). Is it best to post these questions 
> in this thread, or to create a new thread for these questions?
>
> Cheers,
> Islam
>

Reply via email to