-
Notifications
You must be signed in to change notification settings - Fork 6
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
Support intel-compiler-llvm (oneapi) compilers #52
Comments
This issue has been mentioned on ACCESS Hive Community Forum. There might be relevant details there: |
Status: IFX internal compiler errors occur. e.g. #101 (comment) |
Intel has discontinued the |
Thanks @penguian , @manodeep had a chat with me before the holidays and said he was going to look into the state of IFX. I opened ACCESS-NRI/ACCESS-OM2#93. |
Thanks Harshula. Yes, I have been looking into compiling the packages with with oneAPI compilers - so far without success, at least within spack. I am currently building from git source directly ( |
Thanks for the Release Notes link Paul - that shows the (Unfortunately, the suggested fix did not work for me, even after loading the latest autoconf module on NCI) |
Success - I managed to circumvent the [~/codes/oneapi_compilation_dir/COSIMA-libaccessom2/oasis3-mct @gadi07] git diff lib/psmile/
diff --git a/lib/psmile/src/mod_oasis_method.F90 b/lib/psmile/src/mod_oasis_method.F90
index 57b6bc9..5684c57 100644
--- a/lib/psmile/src/mod_oasis_method.F90
+++ b/lib/psmile/src/mod_oasis_method.F90
@@ -614,6 +614,10 @@ CONTAINS
character(len=*),parameter :: subname = 'oasis_get_intercomm'
! ---------------------------------------------------------
+! Added by MS to try to circumvent ifx ICE
+ CHARACTER(len=:), ALLOCATABLE :: trim_compnm
+
+
call oasis_debug_enter(subname)
if (present(kinfo)) then
kinfo = OASIS_OK
@@ -649,7 +653,9 @@ CONTAINS
CALL oasis_flush(nulprt)
ENDIF
- tag=ICHAR(TRIM(compnm))+ICHAR(TRIM(cdnam))
+ trim_compnm=TRIM(compnm)
+ tag=ICHAR(trim_compnm)
+ tag=tag+ICHAR(TRIM(cdnam))
CALL mpi_intercomm_create(mpi_comm_local, 0, MPI_COMM_WORLD, &
mpi_root_global(il), tag, new_comm, ierr) I don't think this allocatable string requires an explicit deallocate but may be a Fortran expert can chime in here. @micaeljtoliveira ? |
No, here it doesn't. The memory will be automatically deallocated when the string goes out of scope. |
Thanks @micaeljtoliveira ! |
While trying to compile ACCESS-ESM1.6 with the oneapi compilers, I keep getting an error with gcc-runtime:
[esm1p6-dev] [~/codes/access-nri/ACCESS-ESM1.6 @gadi08] git diff
diff --git a/spack.yaml b/spack.yaml
index a04cbc5..de55196 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -58,11 +58,11 @@ spack:
# Preferences for all packages
all:
require:
- - '%intel@19.0.3.199'
+ - '%oneapi@2024.2.1'
- 'target=x86_64_v4'
view: true
concretizer:
- unify: true
+ unify: false
modules:
default:
tcl:
@harshula Do you have thoughts on what I should be doing here? |
Hi @manodeep , Is that error triggered without your changes to the |
@harshula Yup - my attempts at changing to oneapi lead to this error. |
@manodeep , Can you please clarify. Does that error occur without your changes to |
Didn't check without the changes but presumably that worked. In any case, I have managed to resolve the error by adding the following: gcc-runtime:
require:
- '%gcc@14.1.0' |
@harshula I added the four sub-issues, which are part of my ESM1.6 work, but I now notice that the parent issue is on the ACCESS-OM2 project board. Did you want me to remove the sub-issues from here and attach to a different parent issue within the ESM1.6 project board? |
Hi @manodeep , This issue was opened for For your ACCESS-ESM1.6 work, you should create a parent issue in the ACCESS-ESM1.6 repository. Furthermore, try to open an issue against |
@harshula Since
Will do. But the sub-issues can only have one parent - so I will point these to the ESM1.6 project board instead of here.
If I wanted to change the source code or the code in the build system, then sure thing - I would open the issue in the respective repo. But based on y'all and specifically Aidan for using As a specific example, Micael has successfully built |
Hi @manodeep ,
Spack uses the package's |
Let me give an example - perhaps that will make it clearer what I mean about duplicating the work. The UM7 spack package contains these lines which effectively write out the build config and then invokes |
Hi @manodeep , Broadly speaking, there are two types of SPRs. Let's call them Type A SPRs and Type B SPRs. You seem to be solely focused on Type A SPRs, perhaps, from when you started looking at ACCESS-OM2. You need to be able to identify Type B SPRs that do not contain compiler flags. e.g. |
Let me see if I understand - do you mean that for those packages where spack is acting as a wrapper (e.g., For the other kind, where spack is re-implementing bits of the package build system (e.g., (Since the atmosphere and ocean components take majority of the runtime, I am focussing on those two first. Both those spack recipes are of "Type A" and contain compiler flags) |
Correction: @micaeljtoliveira built the upstream version of FMS with oneAPI and not |
Hi @manodeep ,
For Type B SPRs, yes, please. The content of the SPR should provide guidance on where to open the issue. e.g. Issue #198 , that you opened, is unlikely to be a problem with the SPR. For Type A SPRs, if you've identified that the problem is with the SPR, please continue to open issues in |
Happy to put our heads together if this still needs clarification. |
We might want to get together and sort out the oneAPI building issues. Looks like oneAPI 2025 ( |
|
@harshula Are you updating the spack package recipes to build with oneAPI? If so, could we build with oneAPI + the latest netcdf + openmpi modules ( |
https://forum.access-hive.org.au/t/how-to-build-access-om2-on-gadi-using-intel-oneapi-compilers/1574/1
The text was updated successfully, but these errors were encountered: