C++ compilers in EcosimPro: current status and prospects

The first commercial version of EcosimPro was released in 1999. That was more than a decade ago. During this time, C/C++ compilers have undergone an important evolution. Some of the compilers available then have ceased to exist, while others have continued to evolve into new versions and other products from other companies have appeared.

EcosimPro generates models for simulation in C++ that need to be compiled with a C++ compiler prior to the simulation. This compilation is done automatically upon a request from the end user from the program. The first commercial version used the Microsoft Visual Studio C++ (MVS C++) 6.0. It was the right decision because it has been one of the most-used compilers in companies in the world. In fact, it is still used in some, although there is a tendency towards modernisation.

Later, EcosimPro incorporated support for the MVS 2003 .NET and GNU GCC compilers. The latter is an important C++ compiler that uses open code and is free, and it originates in the UNIX environment. Since this was expected to be a recurring scenario, version 4.8 of EcosimPro (2010) featured a scalable system that could support many future compilers. Thanks to this architecture it has been possible to add support for MVS C++ 2008 and MVS C++ 2010, as well as new versions of GNU GCC, simply and homogenously. There are currently few simulation tools that allow such a versatility of support to compilers.

In terms of performance we have made a comparison between MVS C++ 2010 vs MVS C++ 6.0 and the first is up to 40% faster than the second. We encourage all users to move to this new compiler since is much more powerful and they do not need to change anything on their libraries.

Over time, both the range of GNU GCC compilers and Microsoft ones have improved on both a programming environment level (speed, robustness, configuration options) and an implementation level for the various versions of the C++ language standard.

In addition, whenever mention is made of a compiler it is almost always necessary to speak about the hardware architecture for which binary code is to be created. In this sense, there has been a revolution in the field of computer processors since the second half of the past decade. The proposal of the manufacturers involved has been to leave the race to increase the frequency of the processors to one side and to focus on the calculation capacity, taking the number of cores in the processor as the scaling factor. Years ago, this technology was only available in special processors from certain companies, but they are now easily available in the market for computers, graphics cards and even cell phones, so companies in this sector are enjoying a great level of success.

Riding on the wave of this technological revolution, the programming libraries and compilers have benefitted from all this potential and generated highly-advanced codes that in most cases accelerate the execution speed. In some cases, the simple fact of compiling with them makes the C++ source code yield faster programs.

In line with its commitment to its clients, the EcosimPro/PROOSIS development team in Empresarios Agrupados expects to include support for the new Microsoft compiler MVS C++ 2012, in upcoming versions. In addition, the last few months have seen the completion of several tests designed to allow the range of Intel compilers to be used, both for C++ and for FORTRAN. These compilers perform well with regard to both simulation time and consistency of results, and they are widely used in academic and professional circles.