Physics / Computational Physics research group in U.S. University that uses Julia?

It’s the time of the year to apply for grad school. I have been doing high-energy / accelerator science and it’s my feeling that the field’s need for HPC will surge (especially with a unified codebase).

So, anyone knows group/labs that would consider Julia a plus (using or thinking migrating), of course physics always would be the determining factor but I try to avoid writing 4 years of MATLAB whenever possible :wink:

From my experience, most physics research groups should be more than happy to let you use what tools you want, and I suspect most good ones would appreciate the benefits of Julia. Granted, depending on what you’re doing there may be large existing code bases (I worked on CMS which had a pretty sizable C++ code base, much of which I think also had Python wrappers by the time I was there, and of course use of ROOT in the HEP community is ubiquitous). I’d still expect that most groups would be happy to let you use Julia as long as you can make use of existing API’s, so Cxx.jl could be an important factor. Of course, there will inevitably be groups in which your primary job as a grad student will be to work on existing code (I’d imagine most groups which are primarily focused on computational physics are like this), in which case you’ll have fewer options, but you should have a good idea before joining a group whether you’d be stuck in that kind of situation.

Anyway, it would of course be great if people chime in with information about specific groups using Julia, but I’m posting here to recommend that you not worry about this aspect of choosing a group too much. Physicists tend to appreciate nice things, and in most cases your advisor is not likely to be overly opinionated about how you are writing your code, as long as you get your work done. It’s if/when you have the misfortune to go into private industry that you’ll be well and truly screwed (but less poor). In the ivory tower, enjoy using Julia on whatever.

(Of course, this is just my personal experience specifically in high energy physics. I’d imagine things are similar in astro/cosmo, I really have no clue what it’s like in the condensed matter or AMO worlds.)

By the way, updating ROOT.jl would be a really good start to getting to work with Julia during your career in HEP or accelerator physics :wink:

9 Likes

Perhaps take a look at https://julialang.org/learning/, in particular “Classes using Julia for teaching”. If you find places with physics related courses this is probably a good sign for some Julia affinity.

1 Like

thx, I’ve actually talked to @oschulz some time back (both about ROOT.jl and Uproot.jl)

Hasn’t it been updated already, or did you have something else in mind? You mean 0.7 to 1.0 hasn’t been done, or is difficult?

I noticed the line there, not sure you overlooked:
schulz Use Compat.Test instead of Base.Test for Julia v0.7 compatibility

[and just tried: using Roots, in Julia 1.2]

I did see: REQUIRE Require Julia v0.6 2 years ago

and conflicting in README:

Requirements

  • Julia v0.5

Julia 0.6 (and even more 0.5) and/or updated “years ago”, are usually indicators not yet ready for 0.7/1.0.

Then I look at travis or appveyor files, to see if tested. Since missing here, I have no good idea how to know if works in Julia 1.0+ except to run the code to test. Is there some other good way?

Sorry, no, it hasn’t been done yet. It shouldn’t be to difficult, but I simply haven’t found the time to update ROOT.jl yet, I’m a bit overloaded at the moment. The main task would be to update the modified Julia binary it has to build to work around the ROOT LLVM vs. Julia LLVM compatibility issue.

1 Like

As for Travis/Appveyor testing of ROOT.jl - that was never done in the past, but should of course, in the future. Again, it’ll require some work, ROOT.jl should be able to automatically install ROOT (if no existing ROOT installation is found).

Just looking at how long since it’s been updated, it seems unlikely that things are working smoothly with ROOT.jl, but I haven’t tried it so I don’t really know. Hopefully now that Cxx.jl is more stable UpROOT.jl will no longer be necessary.

I didn’t realize there was such a deep issue. That’s a bit disheartening.

1 Like

It’s shouldn’t be that bad - mainly has to be adapted to whatever has changed in the Julia API for starting the Julia “engine”.

If you have a good resume, look at the Julia Lab. We are growing a lot right now due to a funding boom, so if you find scientific ML interesting (physics and differential equations mixed with ML) we should chat.

6 Likes

Julia is fine, but in order to participate in inter-laboratory research groups, knowledge of Matlab/Octave and Python are almost indispensable.

I write Python C++ for live (jk, I do High energy