Open wyldckat opened 6 years ago
Hello, Is your post related with the amount of RAM that you can use in Linux and Windows? I am running a simulation in blueCFD, and it uses only 4.1 MB of RAM while I have 16 GB available, and the total memory use is only about 37%. That's the reason why a simulation of couple of minutes takes so long. Do you have any solution for this please? Thanks.
@poulmack: It shouldn't be the same problem. I've received a similar email through our contact form at joomla.bluecape.com.pt and I've sent an email to that email address with several questions in order to isolate the origin of the situation you are seeing.
Given a recent Intel CPU bug that has been in the news lately, I was reminded of a curious difference in how out-of-bounds memory accesses can occur with OpenFOAM on Linux and on Windows:
On Linux, access to the index
-1
will likely not trigger any errors or crashes, which may result later on in some crazy buggy consequence.On Windows, out-of-bound array access is mostly considered illegal and will result in a crash, which I believe is something that was implemented after Windows 95 was released (back then it was way too often an occurrence that programmers would not check array access in their own code).
This difference in implementation by each operating system could explain how much this affects performance, when comparing running OpenFOAM on Linux versus Windows. Furthermore, I do vaguely remember having gotten immediate crashes on Linux after an illegal access, but unfortunately I didn't document how and when this happened.
So the objective for this task would be to try and ascertain how much memory checking would impact performance on Linux and if that would make the blueCFD-Core builds have a performance more similar to these builds of OpenFOAM on Linux.
Looking into this again, there are a few things that could be tested on Linux and Windows:
-fsanitize
compiler option: http://codeforces.com/blog/entry/15547List
andUList
classes to always check memory bound accesses, so accounting for how much this impacts on performance would be a helpful indicator.