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

{chem}[intel/2023a] FHI-aims v240507 #20793

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

sassy-crick
Copy link
Collaborator

(created using eb --new-pr)

@smoors
Copy link
Contributor

smoors commented Jun 10, 2024

@boegelbot: please test @ generoso

@boegelbot
Copy link
Collaborator

@smoors: Request for testing this PR well received on login1

PR test command 'EB_PR=20793 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs /opt/software/slurm/bin/sbatch --job-name test_PR_20793 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 13708

Test results coming soon (I hope)...

- notification for comment with ID 2158999105 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Collaborator

boegelbot commented Jun 10, 2024

Test report by @boegelbot
FAILED
Build succeeded for 0 out of 1 (1 easyconfigs in total)
cns1 - Linux Rocky Linux 8.9, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/boegelbot/2c680794ff300f21ff5203337a665c60 for a full test report.

EDIT: i missed that it's a manual download

@sassy-crick
Copy link
Collaborator Author

Test report can be found here


builddependencies = [('CMake', '3.26.3')]

configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" -DCMAKE_CXX_COMPILER="icpc" -DCMAKE_C_COMPILER="icc" '
Copy link
Contributor

Choose a reason for hiding this comment

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

To honor toolchain options oneapi and usempi:

Suggested change
configopts = ' -DCMAKE_Fortran_COMPILER="$MPIF90" -DCMAKE_CXX_COMPILER="icpc" -DCMAKE_C_COMPILER="icc" '
configopts = ' -DCMAKE_Fortran_COMPILER="$FC" -DCMAKE_CXX_COMPILER="$CXX_SEQ" -DCMAKE_C_COMPILER="$CC_SEQ" '

According to https://fhi-aims-club.gitlab.io/tutorials/cmake-tutorial/cmake_tutorial they need an MPI fortran compiler --> 'usempi': True in toolchainopts

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks for that! I done a bit more digging and with the help of the FHI-aims team I think I got it all sorted so we can use oneAPI as the compiler now. From what I understand, there are only a few places where MPI is being used and thus when you link it is important to use MPI but not when compiling. I got told that eliminates problems with wrapper-scripts. Nonetheless, I used MPI for all three languages. Let me know what you think of the improvements done.

Comment on lines 44 to 46
configopts += ' -DCMAKE_Fortran_FLAGS="$FFLAGS -fc=ifx -finline-functions" '
configopts += ' -DCMAKE_CXX_FLAGS="$CXXFLAGS -cxx=icpx -finline-functions -std=c++11" '
configopts += ' -DCMAKE_C_FLAGS="$CFLAGS -cc=icx -finline-functions -std=gnu99" '
Copy link
Contributor

Choose a reason for hiding this comment

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

Are you sure any of this is required?

  • -fc etc. should be set by EasyBuild via the I_MPI variables
  • finline-functions is set by -O2 and above
  • -std shouldn't be required as the defaults for those intel compilers are likely at least that

Removing might help updating the EC later.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I took these flags from the template they provided. The -finline-functions comes from the dropping of -ip and that was the replacement I found.
That said: you are right, it works without them as well. I will update the PR and will include one which makes use of an external ELPA installation.

@sassy-crick
Copy link
Collaborator Author

I have included a second EasyConfig file which is using an external ELPA installation. The thing I am not sure how to handle best is: which ELPA kernel has being used? ELPA itself is setting the kernel but I don't know how to retrieve that information for the FHI-aims installation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants