-
Notifications
You must be signed in to change notification settings - Fork 469
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OpenFAST dev branch segfaults Intel OneAPI 2023.2 #2135
Comments
That's an odd error. We'll definitely have to fix that. FYI: |
I don't know for certain if PR #2136 will solve this issue. @jrood-nrel, could you check if that branch fixes it? |
@andrew-platt I made the mistake of including |
Sure I will try it. |
@jrood-nrel, I merged this into |
@bjonkman, Thanks for the info! @deslaughter, do we have other instances of the automatic deallocation/allocation that may not be supported by all compilers yet? |
I still see this with the
|
There must still be an issue in Are you compiling |
Paths redacted:
|
What is your |
|
Ah. That ends up building all targets including As a temporary workaround, could you specify only the targets of interest |
From @deslaughter
We will work towards fully supporting Intel's LLVM in the future, but I don't know how soon that will be. So if you can work around the issue by specifying the targets, that would be preferable while we find time/resources to fully test with Intel's LLVM. |
@bjonkman Thanks for tracing this down. I'm really surprised this is causing an issue since it's part of the Fortran 2003 standard. I'll take a look and see if I can figure out what's happening.
I think that I was mostly using it in the new tight coupling code, though I remember seeing an instance in AeroDyn that caused problems with Flang, though I don't think it was related to ADI. |
So using |
When I replace it with a more traditional Fortran (and longer) allocation method, it works. Internal compiler errors are bugs in the compiler, which may or may not be caused by valid code. I actually misspoke on what I was using to build. The 32-bit compiler is deprecated, so it's using a slightly different version. The error is with Intel Fortran Compiler Classic 2021.12.0 [IA-32] (IFORT). The Intel Fortran Compiler 2024.1.0 [Intel 64] (IFX) builds the original code fine. |
@bjonkman Thanks for clarifying. I'm glad that the traditional method still works. @jrood-nrel @andrew-platt I've tracked the ADI library compiler bug to being caused by OpenMP. Without OpenMP enabled, the compile succeeds. OpenMP is being enabled by use of the C++ API. |
Ok I will try that. We already disable OpenMP in this line when building with MacOS on our laptops to avoid build errors Line 113 in 5d17a91
|
@andrew-platt I think we should remove the OMP comments from the section of code that's causing the issue.
|
Disabling OpenMP solves the segfault for us. We will just always disable OpenMP. Thanks for the help. |
I agree on removing OMP from AeroDyn_Inflow.f90. This may incur a performance penalty in the FVW module when we have ~100k points, but we intend to change how the data is accessed there with the introduction of the FlowField data structure in See #2140 |
This was causing a compiler fault with OneAPI 2023.2 with LLVM (see issue OpenFAST#2135)
In theory, #2140 should fix the segfault of the OneAPI compiler |
Fix included in v4.0.0 (#2586) |
Can someone try building OpenFAST where
AeroDyn_Inflow.f90
is compiled? I believe it should segfault Intel OneAPI 2023.2 using the LLVM compilers.The text was updated successfully, but these errors were encountered: