Discussion:
[Beowulf] Julia Language
John Hearns via Beowulf
2017-09-13 11:43:01 UTC
Permalink
I see HPCwire has an article on Julia. I am a big fan of Julia, so
though it worth pointing out.
https://www.hpcwire.com/off-the-wire/julia-joins-petaflop-club/
Though the source of this seems old news - it is a presentation from this
year's JuliaCon

JuliaCon 2018 will be talking place at UCL in London so mark your diaries.
Yours truly should be there.
John Hearns via Beowulf
2017-09-18 08:22:11 UTC
Permalink
Justin, I do not know the answer to this question.
Woudl you kindly elaborate further - do you mean is it necessary to have
checkpointing with Julia,
or are you working on checkpointing software?

Not really an answer to this question. Julia uses the LLVM compiler and
something called multiple dispatch.
At first sight as a scientist/engineer you will probably throw your hands
up in horror at the though of multiple dispatch,
and start wailign that it is wasteful of machine resources and CPU cycles.
But no, wait and think on... computers are
pretty powerful these days and disk space (to a first approcxilmation) is
plentiful. SO read on with an open mind...

https://armchairecology.blog/2017/07/10/julia-in-ecology-why-multiple-dispatch-is-good/
http://www.stochasticlifestyle.com/type-dispatch-design-post-object-oriented-programming-julia/

So for any function Julia creates separate OPTIMISED code paths for every
combination of types the function can operate on.
(ie those types which do not have operators which are able to work on them
are ruled out).
Read that again - instead of creating huge code blocks which work with any
type which you give it,
separate code blocks with optimised code are produced. (Th is is my
understanding of how it works).

A consequence of this is that first time through, a Julia program is slow.
You are cautioned to remember this when benchmarking.
I have never shot a gun, but if I may bowrrow a term from target shooting
there is a pretty tight grouping around the C bullseye here
https://julialang.org/benchmarks/



Before anyone throws their teddies away, it is of course perfectly possible
to produce compiled Julia code. My reading of this is that this is not
a slick process at the moment, and there are efforts ongoing to make this
easy.
Though this looks pretty slick to me:
https://github.com/JuliaComputing/static-julia
Do you need to add checkpoints for Julia programs?
Just curious.
Thanks!
Justin
On Wed, Sep 13, 2017 at 7:43 AM, John Hearns via Beowulf <
Post by John Hearns via Beowulf
I see HPCwire has an article on Julia. I am a big fan of Julia, so
though it worth pointing out.
https://www.hpcwire.com/off-the-wire/julia-joins-petaflop-club/
Though the source of this seems old news - it is a presentation from this
year's JuliaCon
JuliaCon 2018 will be talking place at UCL in London so mark your
diaries. Yours truly should be there.
_______________________________________________
To change your subscription (digest mode or unsubscribe) visit
http://www.beowulf.org/mailman/listinfo/beowulf
John Hearns via Beowulf
2017-09-19 20:13:28 UTC
Permalink
Justin, to be honest I think Julia parallelism is in an early stage.
I think you would be better to talk directly with the language founders.
A good place for discussions is at:
https://discourse.julialang.org/
Thanks for your quick reply. I have been working on fault tolerant
computing for a long while. Given Julia's recent successes, I am curious
about how it's designer had tackled the scaling challenge.
In other words, we knew that end-to-end computing paradigms are
fundamentally unstable under the lens of extreme scale computing. I am
always interested in the extremes when the envelope MTBF (mean time between
failures) can be pushed.
Justin
On Mon, Sep 18, 2017 at 4:22 AM, John Hearns via Beowulf <
Post by John Hearns via Beowulf
Justin, I do not know the answer to this question.
Woudl you kindly elaborate further - do you mean is it necessary to have
checkpointing with Julia,
or are you working on checkpointing software?
Not really an answer to this question. Julia uses the LLVM compiler and
something called multiple dispatch.
At first sight as a scientist/engineer you will probably throw your hands
up in horror at the though of multiple dispatch,
and start wailign that it is wasteful of machine resources and CPU
cycles. But no, wait and think on... computers are
pretty powerful these days and disk space (to a first approcxilmation) is
plentiful. SO read on with an open mind...
https://armchairecology.blog/2017/07/10/julia-in-ecology-why
-multiple-dispatch-is-good/
http://www.stochasticlifestyle.com/type-dispatch-design-
post-object-oriented-programming-julia/
So for any function Julia creates separate OPTIMISED code paths for every
combination of types the function can operate on.
(ie those types which do not have operators which are able to work on
them are ruled out).
Read that again - instead of creating huge code blocks which work with
any type which you give it,
separate code blocks with optimised code are produced. (Th is is my
understanding of how it works).
A consequence of this is that first time through, a Julia program is
slow. You are cautioned to remember this when benchmarking.
I have never shot a gun, but if I may bowrrow a term from target shooting
there is a pretty tight grouping around the C bullseye here
https://julialang.org/benchmarks/
Before anyone throws their teddies away, it is of course perfectly
possible to produce compiled Julia code. My reading of this is that this is
not
a slick process at the moment, and there are efforts ongoing to make this
easy.
https://github.com/JuliaComputing/static-julia
Do you need to add checkpoints for Julia programs?
Just curious.
Thanks!
Justin
On Wed, Sep 13, 2017 at 7:43 AM, John Hearns via Beowulf <
Post by John Hearns via Beowulf
I see HPCwire has an article on Julia. I am a big fan of Julia, so
though it worth pointing out.
https://www.hpcwire.com/off-the-wire/julia-joins-petaflop-club/
Though the source of this seems old news - it is a presentation from
this year's JuliaCon
JuliaCon 2018 will be talking place at UCL in London so mark your
diaries. Yours truly should be there.
_______________________________________________
To change your subscription (digest mode or unsubscribe) visit
http://www.beowulf.org/mailman/listinfo/beowulf
_______________________________________________
To change your subscription (digest mode or unsubscribe) visit
http://www.beowulf.org/mailman/listinfo/beowulf
Jeffrey Layton
2017-09-19 20:10:25 UTC
Permalink
John,

Have you done much Julia coding? Can you talk about your experience?

I have threatened to learn it for a while but your post has prompted me to
finally start learning Julia :)

Thanks!

Jeff


On Wed, Sep 13, 2017 at 7:43 AM, John Hearns via Beowulf <
Post by John Hearns via Beowulf
I see HPCwire has an article on Julia. I am a big fan of Julia, so
though it worth pointing out.
https://www.hpcwire.com/off-the-wire/julia-joins-petaflop-club/
Though the source of this seems old news - it is a presentation from this
year's JuliaCon
JuliaCon 2018 will be talking place at UCL in London so mark your diaries.
Yours truly should be there.
_______________________________________________
To change your subscription (digest mode or unsubscribe) visit
http://www.beowulf.org/mailman/listinfo/beowulf
Joe Landman
2017-09-19 20:14:17 UTC
Permalink
It is very good. Think "python done right". Have a look at this:
https://learnxinyminutes.com/docs/julia/

And some stuff I wrote:
https://scalability.org/2017/06/on-hackerrank-and-julia/ and
https://scalability.org/2017/06/the-birthday-problem-allocation-collisions-for-networks-and-mac-addresses/
Post by Jeffrey Layton
John,
Have you done much Julia coding? Can you talk about your experience?
I have threatened to learn it for a while but your post has prompted
me to finally start learning Julia :)
Thanks!
Jeff
On Wed, Sep 13, 2017 at 7:43 AM, John Hearns via Beowulf
I see HPCwire has an article on Julia. I am a big fan of Julia,
so though it worth pointing out.
https://www.hpcwire.com/off-the-wire/julia-joins-petaflop-club/
<https://www.hpcwire.com/off-the-wire/julia-joins-petaflop-club/>
Though the source of this seems old news - it is a presentation
from this year's JuliaCon
JuliaCon 2018 will be talking place at UCL in London so mark your
diaries. Yours truly should be there.
_______________________________________________
To change your subscription (digest mode or unsubscribe) visit
http://www.beowulf.org/mailman/listinfo/beowulf
<http://www.beowulf.org/mailman/listinfo/beowulf>
_______________________________________________
To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf
--
Joe Landman
e: ***@gmail.com
t: @hpcjoe
w: https://scalability.org
g: https://github.com/joelandman
l: https://www.linkedin.com/in/joelandman

_______________________________________________
Beowulf mailing list, ***@beowulf.org sponsored by Penguin Computing
To change your subscription (digest mode or unsubscribe) visit http
John Hearns via Beowulf
2017-09-19 20:17:56 UTC
Permalink
In reply to Jeff, I am no Julia expert.
However I am going to stick my neck out here. Yes, learn Julia.
Firstly there is a definite 'buzz' in the Julia community and you encounter
science and engineering experts at every turn.
Secondly, where I come from. My background is in high energy physics, from
the era of old style FORTRAN.
I gather that HEP codes are currently written in C++, probably by
physicists who are not experts.
I would really like to see clean, modern language used in physics
simulations.
I would like to use the term "strongly typed" - but in fact Julia is
anything but.
I gather the correct term is "duck typed" - which I rather like.
Post by Jeffrey Layton
John,
Have you done much Julia coding? Can you talk about your experience?
I have threatened to learn it for a while but your post has prompted me to
finally start learning Julia :)
Thanks!
Jeff
On Wed, Sep 13, 2017 at 7:43 AM, John Hearns via Beowulf <
Post by John Hearns via Beowulf
I see HPCwire has an article on Julia. I am a big fan of Julia, so
though it worth pointing out.
https://www.hpcwire.com/off-the-wire/julia-joins-petaflop-club/
Though the source of this seems old news - it is a presentation from this
year's JuliaCon
JuliaCon 2018 will be talking place at UCL in London so mark your
diaries. Yours truly should be there.
_______________________________________________
To change your subscription (digest mode or unsubscribe) visit
http://www.beowulf.org/mailman/listinfo/beowulf
John Hearns via Beowulf
2017-09-19 21:04:01 UTC
Permalink
I was going to say something deep about Python here, but again I am not
qualified. I program in Python every day - today I was writing a PBSPro
hook in Python, and it is supremely adapted for tasks like that. I can also
see why the bioinformatics community loves Python.
But would I start coding a CFD simulation from scratch in Python? Or
LS-DYNA Errr.....

Julians take pride in it being "Julia all the way down" - referred to as
the 'two languages problem' - there is not need to bolt on C code to get
the performance.

Look over on the Julia discourse board. There are people there arguing the
merits of setting up the correct types for Angles such that scientific
calculations are performed naturally. The intention being that in the
future there is a rich set of Angle types available in the units an
engineer or scientist wants to use. They really do care about gettint this
right.

Also look at the Julia package system. Packages live on GitHub, and you
just clone them from there. It is stupidly easy.

One of the weaker parts in Julia in my opinion HAS been the concept of
having your personal Julia installation, in your home directory, and being
to add packages. This goes against the grain of our normal Soviet-style (*)
centralist HPC cluster software installs.
This is being dealt with by the new Pkg3 system
https://github.com/JuliaLang/Juleps/blob/master/Pkg3.md

The real point I am making here is that you have to move beyond the model
of having a Julia install on your MacBook to usefully using Julia on a
national HPC facility, seamlessly.


(*) Yes, I know I am teasing the assembled audience here. Of course you can
set PATHs and have packages installed in a shared location.
Post by John Hearns via Beowulf
In reply to Jeff, I am no Julia expert.
However I am going to stick my neck out here. Yes, learn Julia.
Firstly there is a definite 'buzz' in the Julia community and you
encounter science and engineering experts at every turn.
Secondly, where I come from. My background is in high energy physics, from
the era of old style FORTRAN.
I gather that HEP codes are currently written in C++, probably by
physicists who are not experts.
I would really like to see clean, modern language used in physics
simulations.
I would like to use the term "strongly typed" - but in fact Julia is
anything but.
I gather the correct term is "duck typed" - which I rather like.
Post by Jeffrey Layton
John,
Have you done much Julia coding? Can you talk about your experience?
I have threatened to learn it for a while but your post has prompted me
to finally start learning Julia :)
Thanks!
Jeff
On Wed, Sep 13, 2017 at 7:43 AM, John Hearns via Beowulf <
Post by John Hearns via Beowulf
I see HPCwire has an article on Julia. I am a big fan of Julia, so
though it worth pointing out.
https://www.hpcwire.com/off-the-wire/julia-joins-petaflop-club/
Though the source of this seems old news - it is a presentation from
this year's JuliaCon
JuliaCon 2018 will be talking place at UCL in London so mark your
diaries. Yours truly should be there.
_______________________________________________
To change your subscription (digest mode or unsubscribe) visit
http://www.beowulf.org/mailman/listinfo/beowulf
Loading...