We have this code <https://einsteintoolkit.org> that simulates black holes
and other astrophysical systems. It's written in C++ (and a few other
languages). I obviously intend to rewrite it in Julia, but that's not the
point here.

One of the core functions allows evaluating (interpolating) the value of a
function at any point in the domain. That code was originally written in
2002, and has been used and optimized and tested extensively. So you'd
think it's reasonably bug-free...

Today, a colleague ran this code on Blue Waters, using 32,000 nodes, and
with some other parameters set to higher resolutions that before. Given the
subject of the email, you can guess what happened.

Luckily, a debugging routine was active, and caught an inconsistency (an
inconsistent domain decomposition), alerting us to the problem.

Would Julia have prevented this? I know that everybody wants speed -- and
if you are using 32,000 nodes, you want a lot of speed -- but the idea of
bugs that only appear when you are pushing the limits makes me
uncomfortable. So, no -- Julia's unchecked integer arithmetic would not
have caught this bug either.

Score: Julia vs. C++, both zero.

-erik

-- 
Erik Schnetter <[email protected]>
http://www.perimeterinstitute.ca/personal/eschnetter/

Reply via email to