# Blog post about my experiences with Julia

**URL:** <https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976>\
**Category:** Community\
**Created:** [April 25, 2022, 8:19am UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976 "2022-04-25T08:19:00Z")\
**Posts on this page:** 20\
**Page:** 12

<div class="post-metadata">

**Author:** ![goerch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goerch/32/29122_2.png) [@goerch](https://discourse.julialang.org/u/goerch)\
**Post date:** [May 1, 2022, 9:38pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/223 "2022-05-01T21:38:29Z")

</div>

> [@Schneeschaufel](#):
>
> (Glad where I work they banned us from using IDL and a few IDL licenses have been kept for legacy code but no one is allowed to develop IDL code. IDL was the worst thing ever invented).

I found [this](https://www.nas.nasa.gov/hecc/support/kb/interactive-data-language-(idl)-license-policy_624.html) and yes, it already sounds ridiculous.

> [@Schneeschaufel](#):
>
> On our (the real big ones) super computers we wouldn’t be allowed to do data analysis (by this I mean post processing and plotting). But Python can be used for general tasks and computations.

I don’t understand the message you are trying to convey.

---

<div class="post-metadata">

**Author:** ![Schneeschaufel](https://avatars.discourse-cdn.com/v4/letter/s/a87d85/32.png) [@Schneeschaufel](https://discourse.julialang.org/u/Schneeschaufel)\
**Post date:** [May 1, 2022, 9:44pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/224 "2022-05-01T21:44:18Z")

</div>

Ever tried to convince management to install Julia if all they know is Python and Fortran?

If Julia were pre-installed by the hpc vendors this would help a lot with public perception.

---

<div class="post-metadata">

**Author:** ![goerch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goerch/32/29122_2.png) [@goerch](https://discourse.julialang.org/u/goerch)\
**Post date:** [May 1, 2022, 9:47pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/225 "2022-05-01T21:47:48Z")

</div>

> [@Schneeschaufel](#):
>
> Ever tried to convince management to install Julia if all they know is Python and Fortran?

Maybe it isn’t good enough or you didn’t know enough about it to be convincing?

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [May 1, 2022, 9:55pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/226 "2022-05-01T21:55:13Z")

</div>

> [@Schneeschaufel](#):
>
> Ever tried to convince management to install Julia if all they know is Python and Fortran?

No, I didn’t have to, since, as I said, it’s already installed in most systems I use. And downloading the [official binaries](https://julialang.org/downloads/) takes relatively little effort if it isn’t there already.

> [@Schneeschaufel](#):
>
> If Julia were pre-installed by the hpc vendors this would help a lot with public perception.

Julia v1.6 is available on [Fugaku](https://en.wikipedia.org/wiki/Fugaku_(supercomputer)), currently number 1 in the [TOP500](https://en.wikipedia.org/wiki/TOP500) list. Does that help the public perception?

---

<div class="post-metadata">

**Author:** ![goerch](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goerch/32/29122_2.png) [@goerch](https://discourse.julialang.org/u/goerch)\
**Post date:** [May 1, 2022, 9:57pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/227 "2022-05-01T21:57:10Z")

</div>

> [@giordano](#):
>
> Julia v1.6 is available on [Fugaku](https://en.wikipedia.org/wiki/Fugaku_(supercomputer)), currently number 1 in the [TOP500](https://en.wikipedia.org/wiki/TOP500) list. Does that help the public perception?

As part of the public: I’m convinced now 🙂

---

<div class="post-metadata">

**Author:** ![Schneeschaufel](https://avatars.discourse-cdn.com/v4/letter/s/a87d85/32.png) [@Schneeschaufel](https://discourse.julialang.org/u/Schneeschaufel)\
**Post date:** [May 1, 2022, 9:57pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/228 "2022-05-01T21:57:52Z")

</div>

Giordano:

That is interesting. Thanks for that info.

I did not know that Julia is pre-installed on the Fugaku high performance super computer.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [May 1, 2022, 9:58pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/229 "2022-05-01T21:58:28Z")

</div>

> [@Schneeschaufel](#):
>
> I did not know that Julia is pre-installed on the Fugaku high performance super computer.

Then I guess the public perception wasn’t much influenced by that 🙂

---

<div class="post-metadata">

**Author:** ![jar1](https://avatars.discourse-cdn.com/v4/letter/j/c0e974/32.png) [@jar1](https://discourse.julialang.org/u/jar1)\
**Post date:** [May 1, 2022, 10:10pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/230 "2022-05-01T22:10:48Z")

</div>

I wonder how many of the other TOP500 have Julia.

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [May 2, 2022, 5:26am UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/231 "2022-05-02T05:26:06Z")

</div>

It’s not so much about _having_ Julia but offering support for it if you ask me. Anyways, to give you a few more examples, Julia is available at NERSC (USA), CSCS (Switzerland), and JSC (Germany) and these are all Tier 1 supercomputing centers. And I could name more.

Personally I’m working hard (in collaboration with others) on establishing Julia in the German HPC landscape. For example, there will be a Julia for HPC course at the Tier 1 supercomputing center HLRS in Stuttgart later this year. (@Schneeschaufel since you have a German alias, may I ask which supercomputer you’re working on?)

---

<div class="post-metadata">

**Author:** ![Schneeschaufel](https://avatars.discourse-cdn.com/v4/letter/s/a87d85/32.png) [@Schneeschaufel](https://discourse.julialang.org/u/Schneeschaufel)\
**Post date:** [May 2, 2022, 7:28am UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/232 "2022-05-02T07:28:06Z")

</div>

Hi Carsten

I am not in Germany (I live in an English speaking country though).

We are in the process of getting a new hpc but I am not allowed to talk about any details during the post tender process (it is not military classified though).

---

<div class="post-metadata">

**Author:** ![paulmelis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paulmelis/32/35063_2.png) [@paulmelis](https://discourse.julialang.org/u/paulmelis)\
**Post date:** [May 2, 2022, 8:01am UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/233 "2022-05-02T08:01:16Z")

</div>

> [@carstenbauer](#):
>
> It’s not so much about _having_ Julia but offering support for it if you ask me.

Plus configuring it correctly w.r.t. MPI, SLURM, CUDA, parallel I/O, etc to make sure Julia can actually take full advantage of hardware and (low-level) software. I’m always amazed to see amount of complexity you need to go through as a user to get, say, GPU-to-GPU transfers working at full speed. I don’t work on those things myself, but my colleagues often have to guide users to compiling and running their programs efficiently.

That’s why I think just downloading Julia on a supercomputer and running it will not immediately give you all the performance you want, especially when running large multi-node jobs.

@carstenbauer Hi! I’m co-organizing the Julia for HPC webinar at SURF, you spoke to Abel 🙂

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [May 2, 2022, 8:14am UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/234 "2022-05-02T08:14:28Z")

</div>

> [@paulmelis](#):
>
> That’s why I think just downloading Julia on a supercomputer and running it will not immediately give you all the performance you want, especially when running large multi-node jobs.

Why? Keep in mind that Julia is a compiler, the performance of the code it generates doesn’t depend on how it was compiled. There can be a little improvement in the performance of Julia’s runtime, but the benchmarks in [Compiling Julia using LTO+PGO - #5 by stabbles](https://discourse.julialang.org/t/compiling-julia-using-lto-pgo/39168/5) showed negligible speedup when compiling Julia and _all_ of its dependencies with `-march=native`. You mention large multi-node jobs, but if you’re referring to MPI, the package `MPI.jl` does dynamic loading, so compiling Julia locally doesn’t have any advantages compared to using a prebuilt generic binaries of Julia. Or were you thinking of something else?

---

<div class="post-metadata">

**Author:** ![paulmelis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paulmelis/32/35063_2.png) [@paulmelis](https://discourse.julialang.org/u/paulmelis)\
**Post date:** [May 2, 2022, 8:40am UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/235 "2022-05-02T08:40:28Z")

</div>

> [@giordano](#):
>
> You mention large multi-node jobs, but if you’re referring to MPI, the package `MPI.jl` does dynamic loading, so compiling Julia locally doesn’t have any advantages compared to using a prebuilt generic binaries of Julia. Or were you thinking of something else?

No, I did not mean it is necessary to compile Julia locally. One issue is that, at least on our system, there’s quite a set of environment combinations that a user can choose (Intel versus OpenMPI), HDF5 (tied to MPI version), srun versus mpiexec, etc. E.g. even OpenMPI comes in 3 flavors, compiled with GCC, Intel Compilers and NVIDIA HPC compilers. So depending on their needs (and sometimes restrictions in the software used forcing certain choices) they will load certain versions of these and I’m still not entirely sure Julia will pick up the correct shared libraries in all cases and it will work as expected, but I haven’t looked closely at that yet.

For example, looking at [Configuration · MPI.jl](https://juliaparallel.org/MPI.jl/stable/configuration/#Using-a-system-provided-MPI) it seems you do need to build MPI.jl with the correct module loaded, but this then means a user will need to make sure the same module is loaded when actually running a Julia program under that MPI. But again, I haven’t actually gone through these steps myself yet, partly because it takes quite a bit of time to figure out which libraries Julia uses from the system, which from jll’s it downloads itself, if these conflict with system libraries, if all combinations work, etc.

Edit: in short, correct configuration of the environment is part of the challenge 😉

---

<div class="post-metadata">

**Author:** ![zdenek\_hurak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zdenek_hurak/32/53118_2.png) [@zdenek\_hurak](https://discourse.julialang.org/u/zdenek_hurak)\
**Post date:** [May 2, 2022, 8:47am UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/236 "2022-05-02T08:47:46Z")

</div>

As for the structure of the documentation, I am absolutely not implying that Julia should mimic Matlab (after all the reason for my migrating to Julia is that it does things in its own way), but for completeness I would like to share here that majority of their toolboxes have these four pieces in the documentation section:

- Release notes
- Getting started
- User’ guide
- Reference

I am confident that a better system can be designed and implemented, but this one works fairly well, I think.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [May 2, 2022, 8:51am UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/237 "2022-05-02T08:51:18Z")

</div>

> [@paulmelis](#):
>
> Edit: in short, correct configuration of the environment is part of the challenge 😉

Oh, ok, configuration is certainly an important component! Note that documentation if the development version of MPI.jl has also [notes for HPC clusters sysadmins](https://juliaparallel.org/MPI.jl/dev/configuration/#Notes-to-HPC-cluster-adminstators).

BTW, we have a [Julia HPC working group](https://julialang.org/community/working-groups/) meeting every fourth Tuesday of the month, and how to simplify configuration is a recurring topic. It’d be great if you could join us if you want to bring your experience or share your thoughts! See also [JuliaHPC Meeting](https://discourse.julialang.org/t/juliahpc-meeting/49093) (we don’t use Google meet anymore, but the document with the agenda should have the link for joining the call)

---

<div class="post-metadata">

**Author:** ![Gregstrq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gregstrq/32/20620_2.png) [@Gregstrq](https://discourse.julialang.org/u/Gregstrq)\
**Post date:** [May 2, 2022, 11:55am UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/238 "2022-05-02T11:55:49Z")

</div>

Does this course delves deeply into HPC side of things and is it possible to participate in it online even if you are not in Stuttgart?

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [May 2, 2022, 12:28pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/239 "2022-05-02T12:28:36Z")

</div>

No. This is an in-person workshop which, given that it’s the first event at HLRS, is primarily intended for people with basic HPC knowledge (in any language) who are not particularly familiar with Julia for HPC. There’ll be a website announcement soon.

---

<div class="post-metadata">

**Author:** ![ultrapoci](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ultrapoci/32/25356_2.png) [@ultrapoci](https://discourse.julialang.org/u/ultrapoci)\
**Post date:** [May 2, 2022, 4:22pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/240 "2022-05-02T16:22:48Z")

</div>

I don’t think confidence in the language should be tied to the choice of not including a particular package in the official docs. Rust has basically the same strategy when it comes to packages: it doesn’t include fundamental packages in the standard library. Not even `rand` is in the standard library, or `tokio`, which is used for async stuff. And let me tell you, Rust is very far from being a language people have little faith in, since it is being used gradually everywhere. And besides, I’ve also had a similar experience with Rust, having to dig the source code to understand how libraries work. It’s the nature of new, fast growing languages. I’m not saying “deal with it”, but it’s nothing unheard of.

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [May 2, 2022, 4:34pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/241 "2022-05-02T16:34:02Z")

</div>

> [@ultrapoci](#):
>
> I don’t think confidence in the language should be tied to the choice of not including a particular package in the official docs. Rust has basically the same strategy when it comes to packages: it doesn’t include fundamental packages in the standard library.

Julia and Rust are targeting very different audiences. Julia in many ways caters to scientific and numerical computing, where many users are not professional developers.

What may need to happen is the creation of Julia distributions in the same sense that there are Linux distributions. These distributions could include a wider range of standard packages as well as custom system images with those packages compiled in. A distribution could include Plots.jl and GR.jl built-in for example and be optimized to minimize time to first plot.

---

<div class="post-metadata">

**Author:** ![dlakelan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlakelan/32/8491_2.png) [@dlakelan](https://discourse.julialang.org/u/dlakelan)\
**Post date:** [May 3, 2022, 1:38pm UTC](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976/242 "2022-05-03T13:38:45Z")

</div>

> [@mkitti](#):
>
> A distribution could include Plots.jl and GR.jl built-in for example and be optimized to minimize time to first plot.

Fortunately it’s easy to [do this yourself](https://discourse.julialang.org/t/a-julia-dataanalysis-sysimage-from-packagecompiler-its-so-easy-you-should-do-it-too/68127)

[Previous page](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976.md?page=11)

[Next page](https://discourse.julialang.org/t/blog-post-about-my-experiences-with-julia/79976.md?page=13)
