Dr. Blatt - HPC-Simulation-Software & Services Dr. Blatt

DUNE, C++ and HPC for Industry

C++, Dune, HPC | 31-10-2011 | Markus Blatt

As of today I am officially in business and providing industry with support and specialized training for DUNE, C++ and parallel programming. Additionally, I will do contract work in these areas. I think all three areas are hot topics these days that enterprises already care about and if not they definitely should. Let us take a short look at the reasons for this:

DUNE, "The Distributed and Unified Numerics Environment", has reached maturity for quite a while now. This did not happen unnoticed. Just take a look at the DUNE mailings lists. A few years back they were just a means for us, the core developers, to communicate with each other. Then we started to provide training courses and summer schools targeting at academia. The traffic increased and the user base grew larger and larger. First the word about DUNE was spread in Germany, Austria and Switzerland. Then Statoil decided to base a new oil reservoir simulator on DUNE and ported the corner point grid to the DUNE grid interface. This year's DUNE course held in Heidelberg was also announced on Xing, linked in and research gate. Consequently, a few prospective users from industry joined. Shortly after that a few firms approached me wishing to use DUNE for their projects. In my opinion there is a serious demand for professional support and training by industry and I am happy to supply this need.

These days everybody seems to be talking about the renaissance of C++. Just google the words, it is all over the place. Therefore there must be some truth in it. Until recently industry preferred productivity over performance and mostly settled for managed languages like Java, .Net, etc. What happened? Just compare the CPU frequency of your latest PC or laptop with previously. Most likely it did not increase like it used to the last years but actually went down. There is no automatic performance gain to be expected by new hardware generations any more. What a about your mobile phone? Changed a lot, didn't it? Mine has a dual core processor now and serves we well for surfing and checking my mails (typing still sucks, though). But it needs to have a low energy foot print and therefore the CPU will never be comparable to my laptop. Still, we need applications with good performance for the platforms. This makes unmanaged languages the weapon of choice for programming these platforms. C++ is a good choice because it was meant as a language for system programming from start and its multi paradigm (object oriented, functional, generic) gives us a lot of choices to pick the best for each problem. With the right use of templates and the recent improvements of the new C++ standard C++11 productivity of the programmer is enhanced a lot now. If you have not used these improvement yet and your compiler already supports them, you should probably take a closer look at them.

If you really think there is no need for HPC (High Performance Computing) or parallel computing (at least for you) you should take another look. A few years back only peoples running technical simulation on clusters or supercomputer had to deal with HPC. But the world changed a great deal during the last years. Your webserver probably has been a multicore machine for years now. The CPU frequency of your laptop or PC might not have increased with your latest purchase but it probably has more than one core now, hasn't it? Actually even my smartphone is a multicore machine. The hardware already changed towards HPC for normal consumers. Now it is time for the software to keep up with these improvements. It still lacks behind in most cases and this has to change. Shiny HPC-hardware with no software taking advange of it is not of much use, is it?