Skip to content
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

Update intel classic compiler version minimum to 2021.1 #4389

Merged
merged 5 commits into from
Jan 10, 2023

Conversation

ye-luo
Copy link
Contributor

@ye-luo ye-luo commented Jan 8, 2023

Proposed changes

Too old intel classic compilers are too painful to deal with. See #4359 CI failure.
Raised to >=2021.1 released in the end of 2020 (as part of oneapi 2021.1)
@williamfgc Update CI will be needed to merge this PR.

What type(s) of changes does this code introduce?

  • Build related changes

Does this introduce a breaking change?

  • No

What systems has this change been tested on?

bora

Checklist

  • Yes. This PR is up to date with current the current state of 'develop'

@ye-luo
Copy link
Contributor Author

ye-luo commented Jan 8, 2023

Test this please

@prckent prckent self-requested a review January 8, 2023 15:24
Copy link
Contributor

@prckent prckent left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK with this change and the reasoning.

Please mention in the changelog unreleased section. In a later PR we should update readme.md compilers with the current minimums and recommendations.

@williamfgc
Copy link
Contributor

Related to #4326

@prckent
Copy link
Contributor

prckent commented Jan 9, 2023

We should add or even switch to icpx/ icx in our CI. @williamfgc already sulfur has the latest OneAPI compiler (/opt/intel/oneapi/setvars.sh). Is the only reason for monitoring the classic compiler the last few KNL systems?

@ye-luo
Copy link
Contributor Author

ye-luo commented Jan 9, 2023

I'm not sure if users switched to icpx already or not. Consider cpu only runs are fast. I would like to keep the classic compiler and add icpx as separate CI variants.

@williamfgc
Copy link
Contributor

Yes, the CPU runs can coexist. One thing this PR does is pulling the plug on the classic compilers available on sulfur. My two cents is to might as well move to OneAPI as recommended by Intel:

Intel® C++ Compiler Classic (icc) is deprecated and will be removed in a oneAPI release in the second half of 2023. Intel recommends that customers transition now to using the LLVM-based [Intel® oneAPI DPC++/C++ Compiler](https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html) (icx) for continued Windows* and Linux* support, new language support, new language features, and optimizations. Note that starting with release 2021.7, macOS* support is limited to Mac* computers with Intel® Processors.  

@ye-luo
Copy link
Contributor Author

ye-luo commented Jan 9, 2023

Yes, the CPU runs can coexist. One thing this PR does is pulling the plug on the classic compilers available on sulfur. My two cents is to might as well move to OneAPI as recommended by Intel:

Intel® C++ Compiler Classic (icc) is deprecated and will be removed in a oneAPI release in the second half of 2023. Intel recommends that customers transition now to using the LLVM-based [Intel® oneAPI DPC++/C++ Compiler](https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html) (icx) for continued Windows* and Linux* support, new language support, new language features, and optimizations. Note that starting with release 2021.7, macOS* support is limited to Mac* computers with Intel® Processors.  

The classic compiler is still been maintained as https://www.intel.com/content/www/us/en/developer/articles/release-notes/oneapi-c-compiler-release-notes.html

as long as you install oneapi, classic compilers are still being shipped.

@prckent
Copy link
Contributor

prckent commented Jan 9, 2023

Since OneAPI is already installed, all that is needed is

source /opt/intel/oneapi/setvars.sh intel64
cmake -GNinja -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DQMC_MPI=0 ../qmcpack/ # For OneAPI compilers
cmake -GNinja -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc -DQMC_MPI=0 ../qmcpack/ # For Classic compilers

@PDoakORNL
Copy link
Contributor

My #4359 is waiting on this as well.

@williamfgc
Copy link
Contributor

Thank you all, let me try on sulfur and do a PR.

@ye-luo
Copy link
Contributor Author

ye-luo commented Jan 10, 2023

Test this please

@ye-luo
Copy link
Contributor Author

ye-luo commented Jan 10, 2023

Test this please

@ye-luo
Copy link
Contributor Author

ye-luo commented Jan 10, 2023

changelog unreleased section

@prckent Updated

@ye-luo ye-luo disabled auto-merge January 10, 2023 20:28
@ye-luo ye-luo merged commit 988dc08 into QMCPACK:develop Jan 10, 2023
@ye-luo ye-luo deleted the update-cmake-intel branch January 10, 2023 20:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants