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

WIP: NWChem with patch and prerequisite GlobalArrays for Flexiblas. #85

Open
wants to merge 2 commits into
base: computecanada-main
Choose a base branch
from

Conversation

cwant
Copy link

@cwant cwant commented Dec 20, 2024

This builds, but the tests fails. Likely an issue with flexiblas.

Instructions: build the included GlobalArrays first.


configopts = ' --with-mpi --enable-i8'
configopts += ' --with-blas8="-lflexiblas"'
configopts += ' --with-scalapack="-lflexiblas -lpthread -lm -ldl"'

Choose a reason for hiding this comment

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

try this:

configopts += ' --with-blas8="-lflexiblas64_intel"'
configopts += ' --with-scalapack="-lscalapack64"'

to get ILP64 versions of both


dependencies = [
('GlobalArrays', '5.8.2'),
('Python', '3.12.3'),

Choose a reason for hiding this comment

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

why 3.12.3? We still have 3.11 as default, so I'd use 3.11.5.
(it's not a good candidate for multidep since nwchem directly links to libpython)

Copy link
Author

Choose a reason for hiding this comment

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

Yeah, I initially stole the recipe from the upstream easyfolks, and that is the python version they were using. That's the only reason.

preconfigopts = 'export EXTRA_LIBS=-lutil && '\
'export BLASOPT=-lflexiblas && '\
'export LAPACK_LIB=-lflexiblas && '\
'export USE_SCALAPACK=n && '
Copy link

@bartoldeman bartoldeman Dec 20, 2024

Choose a reason for hiding this comment

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

the BLASOPT/LAPACK_LIB/USE_SCALAPACK here is ignored, unfortunately.

You'll have to override the easyblock using:

buildopts = 'BLASOPT=-lflexiblas64_intel LAPACK_LIB=-lflexiblas64_intel SCALAPACK=-lscalapack64 '
buildopts += 'EXTERNAL_GA_PATH=$EBROOTGLOBALARRAYS '
buildopts += 'COPTIMIZE="$CFLAGS" FOPTIMIZE="$FFLAGS" '
buildopts += 'USE_SCALAPACK_I8=y BLAS_SIZE=8 LAPACK_SIZE=8 SCALAPACK_SIZE=8 FC="$F77" nwchem_config #'

notice the # a the end, otherwise the easyblock stuff will come after, overriding our flexiblas64 etc. Alternatively I need to teach the framework about libscalapack64.so

@cwant
Copy link
Author

cwant commented Jan 9, 2025

@bartoldeman I've tried your changes (pushed to this PR), but still half of the tests fail.
I talked with @gshamov who has the most recent version running on Grex, but he had to use mkl to get it to work (hacked EasyBlock?).
Not sure what to do at this point (focus on StdEnv/2020 stack ... or go another direction?).

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.

2 participants