- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you try:
ifort -O3 -c elements.f90
the compiler never complete the operation.
No problem with -O2 or -O0 or with other fortran compilers.
Corrado
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Which compiler version? Which OS? Does it use excessive memory?
It is usual to have to set -O1 for code resembling this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When the compiler finds it has to cut back on optimization, it would usually go all the way back to -O0, so setting -O1 is preferable.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Theres nothing unreasonable about the code, but it does include a large number of implied do loops (more than 600 all those constructors) in a single routine. O3 enables aggressive optimizations; I think the compiler is trying to merge many of these loops to improve runtime performance. Im not sure yet whether the compiler is truly stuck or (more likely) just taking a very long time; well investigate.
There are various ways to work around this; one would be to split the initialization routine load_chemical_elements into two parts. When I did this, it compiled in just under 4 minutes still rather slow, but not catastrophic.
However, this looks like an initialization routine that would be called only once, so there is really no need to compile it at O3, the default of O2 should be fine.
Well look into ways of restraining the compiler from trying to fuse together an unreasonably large number of loops.
Thanks for bringing this to our attention.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The 12.0 compiler may be obtained from http://registrationcenter.intel.com as part of Intel Composer XE for Linux.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page