Public domain photo from https://pixabay.com/photos/seaside-man-sitting-relax-wait-371229
WSL2 and still waiting... - II
Disclaimer on behalf of Microsoft: The findings reported here are based on a very fresh version of Windows 10 made available to "insiders" (like me) only six days ago (by June 18, 2019). All conclusions should therefore be seen as subject to change and not applying for any Windows 10 version for professional use.
I have on June 20, 2019, been approached by a person who
is more of a Microsoft insider than I am. Considering this statement
of mine: "Microsoft has claimed that they would soon be able to run
Linux binaries as efficiently as a native GNU/Linux installation",
this person states: "That line lacks citation".
This observation
may be entirely correct. Microsoft
has claimed that their WSL2 will be able to run GNU/Linux amd64
binaries, and I can do that with "Windows 10 Insider Preview Build
18917". What I cannot do is to achieve comparable runtime figures -
any attempt from within Windows 10 comes with a considerable
performance overhead.
The basic message of this link of mine:
http://www.simxon.com/results/sxforms1-20190618/sxforms1-20190618.zip
is: "Don't take my word for it - try for yourself. If I am wrong,
tell me and any audience I might have."
Less than one month ago, I wrote this article, highlighting the fact that even though Microsoft strives to be able to execute GNU/Linux software on Windows 10 as well as any native GNU/Linux installation, this objective has not yet been reached. Four days ago, I reported my first findings concerning "Windows Subsystem for Linux, version 2" (WSL2) in this article.
Since then, my attention has been drawn to the fact that WSL2 is only a thin layer on top of Microsoft's Hyper-V virtualization technology. So is Docker for Windows.
My latest findings are that Hyper-V is "to blame" in the sense that the performance penalties which I have consistently observed are probably due to the virtualization itself and not to any particular properties of the applications (WSL or Docker) addressed on top of it.
I am much more of a CAE expert than an expert in these technologies. For that reason, I am very much prepared to be corrected. See the following paragraph.
What I have done, you can try for yourself
If you are just slightly interested in the technicalities presented here, I suggest that you download this 448 MB zip file. Read the "readme.txt" and decide if you want to try it out on your own hardware. If you have anything to report, please tell me.
Results of the June 18 performance study (primarily testing Hyper-V virtualization)
As before, the runtimes quoted below apply for the central part of an OpenFOAM simulation. "Native" means that the computer booted from a fresh harddisk installation of an Ubuntu "mini-CD". "Hyper-V" means that the mini-CD was installed on a Hyper-V virtual computer (with the same processor count, 16, as the host computer).
Previous performance results (June 14, 2019):
Native Ubuntu: 16 minutes and 5 seconds
Docker on Ubuntu: 16 minutes and 13 seconds
WSL2 (on Windows): 29 minutes and 53 seconds
Docker on Windows: 29 minutes and 19 seconds
Latest performance results (June 18, 2019):
Native Ubuntu: 16 minutes and 5 seconds
Docker on native Ubuntu: 16 minutes and 15 seconds
Ubuntu on Hyper-V (on Windows): 31 minutes and 26 seconds
Docker on Ubuntu on Hyper-V (on Windows): 31 minutes and 47 seconds
Conclusion
Microsoft has claimed that they would soon be able to run Linux binaries as efficiently as a native GNU/Linux installation. It appears that concerning CPU-intensive multiprocessing operations like those typical for CAE, Microsoft's virtualization technology is not yet up to speed.