I have been working with Julia on Windows for about 3 years, more specifically with JuMP for energy systems optimization.
There has always been a pain to install some packages and some “unusual tricks” are required to get them running. Most of the solutions provided here are for Mac users or they simply cannot be reproduced on other machines.
This is especially frustrating for new Julia users on Windows, whom I teach energy systems optimization.
I do not know if these pains are common for other Windows users.
My question is: now I have the opportunity to change my working laptop (paid by the employer), should I get a Mac for working better with Julia?
You need to figure out whether the software you are currently depend on will run on the new platform and if yes would it be crippled in any way? Personally, I have windows, macs and linux experience, and from a software development point of view linux gives the best experience, because almost everything is pre-packaged and easy to install. If you depend on commercial software that is not available on linux, that is another issue. Apple has weird choices, for examle: macOS 10.15: Slow by Design
Dual boot Windows and Ubuntu Linux.
It is easy enough to do.
My personal laptop is dual boot Windows 10 and Fedora Linux. I liked Windows as it is a retina screen HP Spectre which is convertible and touchscreen so worked perfectly with Windows.
These days Fedora works perfectly for me also so I use Fedora almost exclusively.
This way you can see how smooth it runs in Linux, then decide if you want to change OS (or maybe just keep using WSL…). Note that you might have some difficulties to get GUI packages working, for example for plotting to a window, but it should be possible.
I don’t know which solution is the best for Julia, but I am moving from Mac to Linux/Windows dual. The main reason is that I want to have the opportunity to do some GPU processing, and it appears that Apple is making that very difficult.
Also, the latest versions of some Linux distributions seem so appealing, the latest Dells so impressive, and MacOS so stagnant, that I fear that current macs are not very future-proof.
If your employer is paying for it, and the overall transition can be smooth (all the apps you need are on macOS) the go for it. Mac is a great option as long as you don’t use GPU (specifically CUDA) in your work. Just make sure to get the latest gen since the previous few iterations have crappy keyboards.
With regards to the general topic of Mac though, anyone who is looking for a machine should probably wait until WWDC to see what Apple might do with Mac’s CPUs. If they are really switching to ARM, it may not be a good decision to buy a Mac now.
[I would use Linux (I don’t play games). I believe for games, AMD’s GPUs, can be similarly fast (for that), but you’ll have ray-tracing on Nvidia’s RTX GPUs (also in AMD’s latest, used in upcoming Playstation and Xbox consoles, but I just haven’t seen it yet, for desktop), and even if AMD supporting it, games and other software may be Windows only.]
I don’t know enough about it (for energy), but you want to know if the GPU is important and if it needs to be Nvidia/CUDA (and AMD’s isn’t, while they have RoCm playing catchup, and Julia might be the best platform for, it’s unclear when, if ever good enough, as not in Julia’s hands only):
See this answer:
In the case of commercially available software, where no source code is available, you are stuck using the GPU that is better supported by the applications you intend to run.
AmgX, cuSOLVER and nvGRAPH all require Nvidia GPUs, and offer supporting articles on their blog.
[read all of this]
The best deal is probably the AMD Radeon VII with it’s FP64 rate of 1/4 for only U$700, and even though it’s new it’s also being discontinued; so there may be some price drops coming.
here, and some other answers (I quote in part below):
If you problem is continuous I would say that it might be beneficial. For problems that involve discrete variables I’ve not seen anything that does benefit from the usage of a GPU.
another answer:
The first algorithm coming to mind that can benefit from GPUs is the Interior-Point Method (IPM), at its heart is the resolution of a linear system. See references:
As far as I understand they cut support for openCL too, and everything but Metal. And also made it hard to run Linux(!) I pretty much gave up on Mac after hearing that.
Ah yes that as well. I don’t know, is it possible that they change their stance, now that the OpenCL roadmap has pretty much been reset? Technically they are still in the Kronos group but I don’t know how much they care or how much they contributed to the new OpenCL standard rollback.
I think this is bad advice. WSL is a great tool for linux super users who know what and how things should work. In my experience nothing but basic things work on WSL thus it cannot be recommend for benchmarking your future OS. I would recommend linux pen drives instead. Pretty much all distributions have pen drive OS availeble for easy testing, just boot the linux from pen drive and start using.
[Going kinda off-topic here, but currently in steam it became very easy for even a novice linux user put many of the games to work on linux (even if they were not done for linux). I did need to do some tricks (i.e., download a tarball and move the extracted folder to a specific path) but I can play Monster Hunter World and many other games without any problems.]
If you are not a command line only addicted like me, the Windows explorer or File manger is so many light years ahead of Finder that I can’t simply use Mac for more than 1/2 hour. And I had 3 generations of MacBook … running Windows. But now I have a Dell (though I could have chosen another MBP).
I have not ever really had problems with Julia on Win10. My biggest gripe has been that the terminal sucks, but that is pretty easy to fix yourself. I have also heard good things about the new Windows Terminal, so maybe that will work too. WSL2 is also pretty nice, so you can use Linux inside Windows if you really need to.
I have a Julia code that runs an acoustics simulation in parallel using threads. The performance on the Mac with 12 cores was disappointing. Linux workstation with 48 cores (but using 12 for comparison) was running circles around the Mac.
Note that the situation around WSL on Windows just improved a lot with the release of WSL2 this week. I haven’t tried it recently, but a few months ago I was even able to use BinaryBuilder.jl just out of the box in WSL2 without any additional configuration work.
I was told by my HPC professor that OpenCL isn’t on the radar (only Nvidia/CUDA for HPC, and he made clear he wasn’t promoting it, trying to be neutral). I’m not sure it’s as dead as he claimed, or AMD non-useful, but there’s at least (I believe the future direction of AMD, and not sure about its support; e.g. on a Mac):