Intel releases oneAPI Toolkit, free, Fortran 2018

I’ve wondered for years what performance improvements might be hiding behind the price of the intel compilers :slight_smile: I downloaded these compilers as soon as I saw they were available, and ran some comparisons between gfortran and ifort using Nek5000 (CFD software) in serial mode. I was surprised to find that gfortran was about 8-10 percent faster (repeatable over many runs). I played around with flags a lot and narrowed the difference down to -ffast-math. With that flag off the performance was very similar.

Take this with a grain of salt of course - it’s one program on one platform, but I just thought I’d share my experience…

For those of you familar with ifort, is there an equivalent of ffast-math in ifort?

2 Likes

You can always start with -fast, that applies some options that generally improve performance. It implies -xHost, which means optimize for the CPU you’re compiling on. Were you using an Intel CPU? It helps there more.

Hey @sblionel !

I was using an intel CPU, but a very old one… i7-4790. I used -xHost and -Ofast. For some reason -fast didn’t actually work - I got runtime errors in some library I didn’t recognize.

1 Like

For those seeking installation instructions on Linux, they can be found on the following sub-page:

5 Likes

I once read that Digital Visual Fortran (a Fortran 90 compiler for Windows) started as an unofficial skunkworks project by Digital developers. Then Digital was acquired by Compaq, Compaq merged with HP, and the HP compiler team and technology was acquired by Intel. I am grateful that through all shakeups, work continued on the compiler. It’s being made free is icing on the cake.

I am also grateful to the gfortran developers and to the g95 developer, who I will never forget. Having two free compilers that support much/all of Fortran 2003, 2008 and 2018 removes my excuse for not trying out features from those standards.

4 Likes

Not quite. Here is the sequence…

  1. DEC ported DEC Fortran 90 to Windows NT on Alpha processors - already had it for VMS and DEC/OSF1 (UNIX). It was command-line only and didn’t see much use.

  2. DEC approached Microsoft about licensing the Visual Studio IDE for the Alpha product. By that time, Microsoft was realizing that they would need to put in a lot of effort to bring their Fortran PowerStation product up to Fortran 95 (and resolve the many bugs). MS didn’t want to make this sort of investment and suggested instead that DEC take over for them in the X86 market. MS licensed Visual Studio '98 to DEC, along with the MSVC libraries, as well as other components such as the QuickWin library and Windows API declarations.

  3. DEC released Digital Visual Fortran 5 in 1997 and Microsoft withdrew Fortran PowerStation 4 from the market. This was DEC’s Fortran 90 compiler and (mostly) run-time library, with almost all of the PowerStation extensions added in. Alpha was supported too (on NT).

  4. In 1999, Compaq bought DEC. DVF became CVF (6.5 by then), the color scheme changed to red, and that was about it.

  5. August 2001, Intel acquires the Compaq Fortran team, some of the Compaq C++ team and most of the remaining Alpha engineering team. The Fortran team’s task was to throw out the (excellent) GEM compiler backend and replace it with Intel’s IL0. An Intel manager predicted it would take six months.

  6. September 2001, HP acquires Compaq. Note that this timeline means that at no time were we HP employees. The acquisition added some complications for the Intel deal, but they were eventually worked out. CVF continued with a minor update (6.6) and bug fixes

  7. 2004, Intel Visual Fortran 8 (previous Intel version was 7) was released, along with Intel Fortran for Linux. (Six months - right!) Itanium (remember that?) support was added. DEC had been working on a Linux version for a while, prior to the Intel deal, but never released it. Initially, it required that you have Visual Studio .NET already installed, but as of version 10, MS offered a “Premier Partner Edition” of VS that had the necessary bits, and Intel licensed that.

12 Likes

Thank you @sblionel for writing up the history. I would actually really like this to be written somewhere in a more permanent form, I wonder if we can have a section “History” at fortran-lang.org and have this there. Right now we have “Compilers” section:

We have done our best to collect all Fortran compilers. If there is any missing, please let us know.

Here is a history of the NAG compiler: https://www.nag.com/content/personal-history-nag-fortran-compiler

Right now the history is mostly remembered by people like @sblionel, @billlong, but newcomers like me do not necessarily know the backgrounds of the various efforts, and they are not well documented at places like Wikipedia. I think it’s important to preserve the history for future generations.

5 Likes

I’ll write up a longer history of DEC-heritage compilers soon. My knowledge pre-1978 is fuzzy, but I’ll do the best I can.

3 Likes

@sblionel thank you, that would be very valuable. 1978 forward would be awesome.

In my experience (some time ago), ifort gave significant performance gain for molecular dynamics codes, while not much (or essentially no gain) as compared to gfortran for electronic structure codes. I guess it may depend on how the type of calculation can benefit from so-called “vectorization”, though I am not sure about details…

After ifort-14 (which was free for the non-commercial edition), I mainly used gfortran for my programs (because I cannot use the license in my home or laptop), but I can try it now with ifort. I believe this is really nice :slight_smile:

4 Likes

As of early 2018 (last time I measured), Intel-built WRF (weather prediction) was about 3.5x faster than the GNU build, on Intel Xeon 8168.

4 Likes

In most of my tests, GFortran is about 150%-200% faster than ifort. But that greatly depends on the type of the test, the operations involved, and most importantly, the Intel-architecture-specific compiler optimizations. I guess that’s where Intel turns out to be faster.

But speed is not the only issue that matters. Sadly, GNU compilers are not built with -fPIC and therefore do not allow static linking of GFortran libraries with shared files. So one has to always carry around the library dependencies, which create a whole new set of issues, or let the users deal with it by themselves, which create all sorts of other headaches. On the flip side, Intel Fortran Compiler does not suffer from the same weakness, which makes it really superior to GFortran, in my opinion.

3 Likes

Which IDE is recommended to use with the Intel oneAPI?

On which OS? On Windows, Visual Studio. On Linux, you have many choices.

Steve, thank you for the guidance. I am using Windows. I can certainly get VS Community Edition. I see on the Intel oneAPI web page there is an IoT Toolkit, and the Eclipse IDE is bundled in that. It gives the impression that Intel is promoting Eclipse over VS. I take it your feeling is that VS is best overall for integrating with the Intel oneAPI. Any thoughts about Code:Blocks? Thank you in advance.

Robert, I have no personal experience with Code:Blocks, but have read good things about it. For Fortran on Windows, Intel supports only Visual Studio - if you use other IDEs you are on your own, especially as the only debugger that works is the VS debugger. Intel doesn’t support any IDEs for Fortran on Linux, though there is an awareness that Eclipse claims to support Intel Fortran.

1 Like

I followed that path: MS Fortran PowerStation, Digital Visual Fortran, Compaq Visual Fortran, then gfortran after migrating to Linux (but I have bought the ifort 2015).

I was a big fan of the QuickWin library, not available with Linux ifort (but the Windows version runs under Linux with WineHQ!). That’s why I launched with my coauthors the gtk-fortran project in 2011. Building it with ifort 2015 under Linux was not a success: lots of examples were crashing in the project… But I couldn’t pay for ifort updates… Now I can try again with that new version. It’s always interesting to build a project with several compilers! It makes a more robust code.

Thanks for the great info!

Have you gone through this site? https://cbfortran.sourceforge.io/

Re: Code::Blocks, you may also want to inquire here: https://groups.google.com/g/cbfortran. The developer of the Fortran integration for Code::Blocks is very responsive to inquiries there. There is some info for setting up the Intel Fortran compiler with Code::Blocks IDE there, however the issue is the debugger facility where the Visual Studio IDE is better.

Note, however, an aspect of significant sadness for Fortranners on Windows remains the experience of debugging modern Fortran code in Visual Studio is way, way too poor of an experience considering it’s year 2021 now. Intel itself has hardly improved the integration of their product with Visual Studio in nearly a decade now, Issues like this - community.intel.com/t5/Intel-Fortran-Compiler/Debug-issue-relating-to-allocatable-variables-in-user-defined/m-p/1194823#M150844 - have gone unresolved for a long, long time.

I am interested by that solution. It seems the Base oneAPI requires 4 GB. But I have not yet found the page were we could just download the Fortran compiler…

There is no “just the Fortran compiler” download. Currently, the Fortran debugging support is a component of the Base Toolkit (in “Intel Distribution for GDB”), but I am told that a future update will move this to the HPC Toolkit. You don’t have to install the whole Base or HPC Toolkit, you can select components. From the Base, pick only “Intel Distribution for GDB”. From HPC, you can select only Fortran. (If you want MKL, that is in the Base.)

1 Like