5 things you need to know about GCC 5 – Developer Toolset Beta
As always when we rebase GCC in Developer Toolset (as we announced yesterday) to a new major upstream release, there are a huge number of bugfixes, performance improvements, quality of implementation enhancements – the list goes on. In this article, however, I’d like to focus on four headline features and one new way of using the tools. Let’s dive in.
So firstly, OpenMP 4.0 is fully-supported for C, C++, and Fortran developers. Red Hat is a member of the OpenMP Architecture Review Board, and an active participant in the development of new OpenMP standards, as well as playing a key role in the implementation of that standard in GCC, resolving ambiguities with the community as we implement the specification. OpenMP Version 4.0 adds initial support for offloading to compute nodes, including early support for upcoming Intel Xeon Phi MICs. The new standard also adds SIMD constructs, thread affinity, task enhancements, and other benefits.
Continuing the theme of enhanced parallelism and concurrency support, GCC v5 now fully supports Intel’s Cilk Plus parallel programming interface for C and C++ developers. There are other resources available for those interested in Cilk Plus, including further information and tutorials. In short, however, Cilk provides C/C++ language extensions for multi-threaded parallel computing, notably for expressing task and data parallelism.
Alongside the OpenMP standard support, GCC5’s C++ library (libstdc++) now has full support for C++11, thereby completing GCC’s C++11 support, as well as experimental support for C++14. Complementing this, G++ (GCC’s C++ front end) now includes many C++14 features ranging from variable templates to aggregates with non-static data member initializers, sized deallocation functions, and much more.
Up fourth is new hardware enablement. GCC5 in Developer Toolset v4 introduces code generation support for Intel’s forthcoming Skylake servers. The required runtime support is available in Red Hat Enterprise Linux 6.7 or later, and 7.2 or later, allowing binaries and shared libraries built with Red Hat Developer Toolset 4.0 Beta to execute on Red Hat Enterprise Linux.
That rounds out the headline features of GCC5 in Red Hat Developer Toolset 4.0 Beta, but we also have a neat new way developers can use these tools. Starting from 4.0 Beta we are providing Docker images to Red Hat Enterprise Linux Server subscribers. As with all containers, this adds both portability and encapsulation, and opens a number of new development options to Red Hat Enterprise Linux developers. See the documentation for further details.
And, as ever, we welcome your feedback – let us know what you like in Red Hat Developer Toolset 4.0 and any requests for future enhancements.