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

OpenBLAS: make 64bit integer options explicit in recent easyconfigs #15748

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

Conversation

jfgrimm
Copy link
Member

@jfgrimm jfgrimm commented Jun 23, 2022

@boegelbot
Copy link
Collaborator

@jfgrimm: Tests failed in GitHub Actions, see https://github.com/easybuilders/easybuild-easyconfigs/actions/runs/2548818359
Last 100 lines of output from first failing test suite run:

    EasyConfigTest.parse_all_easyconfigs()
  File "test/easyconfigs/easyconfigs.py", line 201, in parse_all_easyconfigs
    cls._parsed_easyconfigs.extend(process_easyconfig(spec))
  File "/opt/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 2071, in process_easyconfig
    raise EasyBuildError("Failed to process easyconfig %s: %s", spec, err.msg)
EasyBuildError: "Failed to process easyconfig /home/runner/work/easybuild-easyconfigs/easybuild-easyconfigs/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.2.0.eb: Use of 3 unknown easyconfig parameters detected in OpenBLAS-0.3.20-GCC-11.2.0.eb: build_ilp64, ilp64_lib_suffix, ilp64_symbol_suffix\nIf these are just local variables please rename them to start with 'local_', or try using --fix-deprecated-easyconfigs to do this automatically.\nFor more information, see https://easybuild.readthedocs.io/en/latest/Easyconfig-files-local-variables.html ."

======================================================================
ERROR: test_pr_python_packages (test.easyconfigs.easyconfigs.EasyConfigTest)
Several checks for easyconfigs that install (bundles of) Python packages.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test/easyconfigs/easyconfigs.py", line 942, in test_pr_python_packages
    for ec in self.changed_ecs:
  File "test/easyconfigs/easyconfigs.py", line 295, in changed_ecs
    self._get_changed_easyconfigs()
  File "test/easyconfigs/easyconfigs.py", line 233, in _get_changed_easyconfigs
    for ec in self.parsed_easyconfigs:
  File "test/easyconfigs/easyconfigs.py", line 270, in parsed_easyconfigs
    EasyConfigTest.parse_all_easyconfigs()
  File "test/easyconfigs/easyconfigs.py", line 201, in parse_all_easyconfigs
    cls._parsed_easyconfigs.extend(process_easyconfig(spec))
  File "/opt/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 2071, in process_easyconfig
    raise EasyBuildError("Failed to process easyconfig %s: %s", spec, err.msg)
EasyBuildError: "Failed to process easyconfig /home/runner/work/easybuild-easyconfigs/easybuild-easyconfigs/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.2.0.eb: Use of 3 unknown easyconfig parameters detected in OpenBLAS-0.3.20-GCC-11.2.0.eb: build_ilp64, ilp64_lib_suffix, ilp64_symbol_suffix\nIf these are just local variables please rename them to start with 'local_', or try using --fix-deprecated-easyconfigs to do this automatically.\nFor more information, see https://easybuild.readthedocs.io/en/latest/Easyconfig-files-local-variables.html ."

======================================================================
ERROR: test_pr_sanity_check_paths (test.easyconfigs.easyconfigs.EasyConfigTest)
Make sure a custom sanity_check_paths value is specified for easyconfigs that use a generic easyblock.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test/easyconfigs/easyconfigs.py", line 1069, in test_pr_sanity_check_paths
    for ec in self.changed_ecs:
  File "test/easyconfigs/easyconfigs.py", line 295, in changed_ecs
    self._get_changed_easyconfigs()
  File "test/easyconfigs/easyconfigs.py", line 233, in _get_changed_easyconfigs
    for ec in self.parsed_easyconfigs:
  File "test/easyconfigs/easyconfigs.py", line 270, in parsed_easyconfigs
    EasyConfigTest.parse_all_easyconfigs()
  File "test/easyconfigs/easyconfigs.py", line 201, in parse_all_easyconfigs
    cls._parsed_easyconfigs.extend(process_easyconfig(spec))
  File "/opt/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 2071, in process_easyconfig
    raise EasyBuildError("Failed to process easyconfig %s: %s", spec, err.msg)
EasyBuildError: "Failed to process easyconfig /home/runner/work/easybuild-easyconfigs/easybuild-easyconfigs/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.2.0.eb: Use of 3 unknown easyconfig parameters detected in OpenBLAS-0.3.20-GCC-11.2.0.eb: build_ilp64, ilp64_lib_suffix, ilp64_symbol_suffix\nIf these are just local variables please rename them to start with 'local_', or try using --fix-deprecated-easyconfigs to do this automatically.\nFor more information, see https://easybuild.readthedocs.io/en/latest/Easyconfig-files-local-variables.html ."

======================================================================
ERROR: test_pr_sha256_checksums (test.easyconfigs.easyconfigs.EasyConfigTest)
Make sure changed easyconfigs have SHA256 checksums in place.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test/easyconfigs/easyconfigs.py", line 903, in test_pr_sha256_checksums
    for ec in self.changed_ecs:
  File "test/easyconfigs/easyconfigs.py", line 295, in changed_ecs
    self._get_changed_easyconfigs()
  File "test/easyconfigs/easyconfigs.py", line 233, in _get_changed_easyconfigs
    for ec in self.parsed_easyconfigs:
  File "test/easyconfigs/easyconfigs.py", line 270, in parsed_easyconfigs
    EasyConfigTest.parse_all_easyconfigs()
  File "test/easyconfigs/easyconfigs.py", line 201, in parse_all_easyconfigs
    cls._parsed_easyconfigs.extend(process_easyconfig(spec))
  File "/opt/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 2071, in process_easyconfig
    raise EasyBuildError("Failed to process easyconfig %s: %s", spec, err.msg)
EasyBuildError: "Failed to process easyconfig /home/runner/work/easybuild-easyconfigs/easybuild-easyconfigs/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.2.0.eb: Use of 3 unknown easyconfig parameters detected in OpenBLAS-0.3.20-GCC-11.2.0.eb: build_ilp64, ilp64_lib_suffix, ilp64_symbol_suffix\nIf these are just local variables please rename them to start with 'local_', or try using --fix-deprecated-easyconfigs to do this automatically.\nFor more information, see https://easybuild.readthedocs.io/en/latest/Easyconfig-files-local-variables.html ."

======================================================================
ERROR: test_r_libs_site_env_var (test.easyconfigs.easyconfigs.EasyConfigTest)
Make sure $R_LIBS_SITE is being updated, rather than $R_LIBS.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test/easyconfigs/easyconfigs.py", line 857, in test_r_libs_site_env_var
    for ec in self.parsed_easyconfigs:
  File "test/easyconfigs/easyconfigs.py", line 270, in parsed_easyconfigs
    EasyConfigTest.parse_all_easyconfigs()
  File "test/easyconfigs/easyconfigs.py", line 201, in parse_all_easyconfigs
    cls._parsed_easyconfigs.extend(process_easyconfig(spec))
  File "/opt/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 2071, in process_easyconfig
    raise EasyBuildError("Failed to process easyconfig %s: %s", spec, err.msg)
EasyBuildError: "Failed to process easyconfig /home/runner/work/easybuild-easyconfigs/easybuild-easyconfigs/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.2.0.eb: Use of 3 unknown easyconfig parameters detected in OpenBLAS-0.3.20-GCC-11.2.0.eb: build_ilp64, ilp64_lib_suffix, ilp64_symbol_suffix\nIf these are just local variables please rename them to start with 'local_', or try using --fix-deprecated-easyconfigs to do this automatically.\nFor more information, see https://easybuild.readthedocs.io/en/latest/Easyconfig-files-local-variables.html ."

======================================================================
ERROR: test_sanity_check_paths (test.easyconfigs.easyconfigs.EasyConfigTest)
Make sure specified sanity check paths adher to the requirements.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test/easyconfigs/easyconfigs.py", line 841, in test_sanity_check_paths
    for ec in self.parsed_easyconfigs:
  File "test/easyconfigs/easyconfigs.py", line 270, in parsed_easyconfigs
    EasyConfigTest.parse_all_easyconfigs()
  File "test/easyconfigs/easyconfigs.py", line 201, in parse_all_easyconfigs
    cls._parsed_easyconfigs.extend(process_easyconfig(spec))
  File "/opt/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/site-packages/easybuild/framework/easyconfig/easyconfig.py", line 2071, in process_easyconfig
    raise EasyBuildError("Failed to process easyconfig %s: %s", spec, err.msg)
EasyBuildError: "Failed to process easyconfig /home/runner/work/easybuild-easyconfigs/easybuild-easyconfigs/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.20-GCC-11.2.0.eb: Use of 3 unknown easyconfig parameters detected in OpenBLAS-0.3.20-GCC-11.2.0.eb: build_ilp64, ilp64_lib_suffix, ilp64_symbol_suffix\nIf these are just local variables please rename them to start with 'local_', or try using --fix-deprecated-easyconfigs to do this automatically.\nFor more information, see https://easybuild.readthedocs.io/en/latest/Easyconfig-files-local-variables.html ."

----------------------------------------------------------------------
Ran 14933 tests in 487.843s

FAILED (errors=17)
ERROR: Not all tests were successful

bleep, bloop, I'm just a bot (boegelbot v20200716.01)
Please talk to my owner @boegel if you notice you me acting stupid),
or submit a pull request to https://github.com/boegel/boegelbot fix the problem.

# library name suffix to append to 64-bit versions
ilp64_lib_suffix = 'ilp64'
# symbol suffix to append to 64-bit versions
ilp64_symbol_suffix = '64_'
Copy link
Contributor

Choose a reason for hiding this comment

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

Should suffix really be "64_" and not "_64" ??

Copy link
Member

Choose a reason for hiding this comment

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

I think you're both right :) OpenMathLib/OpenBLAS#646 (comment)

Copy link
Contributor

Choose a reason for hiding this comment

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

Ah, hadn't seen that thread before... so question withdrawn.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Just to add to this as I am trying to get an EC for GAMESS-US, latest version, going. The do this:

: openblas
Where is your libopenblas64.a or libopenblas.a file located?

Shall we patch that for that GAMESS-US version or consider doing yet another symlink here?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Update on that: My older manual OpenBLAS installtion has these files:

libopenblas_64bit.so 
libopenblas_64bit.a

@jfgrimm
Copy link
Member Author

jfgrimm commented Jun 23, 2022

Test report by @jfgrimm
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#2753
SUCCESS
Build succeeded for 16 out of 16 (9 easyconfigs in total)
himem02.pri.viking.alces.network - Linux CentOS Linux 7.9.2009, x86_64, Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz (skylake_avx512), Python 3.6.8
See https://gist.github.com/7f154192890de350de4651ef4319035e for a full test report.

@sassy-crick
Copy link
Collaborator

Test report by @sassy-crick
Using easyblocks from PR(s) easybuilders/easybuild-easyblocks#2753
FAILED
Build succeeded for 4 out of 9 (9 easyconfigs in total)
hp - Linux Debian GNU/Linux 11, x86_64, 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz, Python 3.9.2
See https://gist.github.com/0bff898e0de3ae187c6ee7fa6ea45fdd for a full test report.

@sassy-crick
Copy link
Collaborator

sassy-crick commented Sep 13, 2022

Just to add to this, and I might be wrong here: I am trying to install GAMESS-US version 20220731-R1 with that so compiled OpenBlas and the foss-2022atoolchain and I get:

/home/sassy/apps/software/binutils/2.38-GCCcore-11.3.0/bin/ld: /home/sassy/apps/software/OpenBLAS/0.3.20-GCC-11.3.0/lib/libopenblas64_.a(memory.o): in function `get_num_procs':
memory.c:(.text+0x1ef): undefined reference to `omp_get_num_places'
/home/sassy/apps/software/binutils/2.38-GCCcore-11.3.0/bin/ld: /home/sassy/apps/software/OpenBLAS/0.3.20-GCC-11.3.0/lib/libopenblas64_.a(daxpy.o): in function `daxpy_':
axpy.c:(.text+0x8d): undefined reference to `omp_get_max_threads'

It somehow appears that libgomp is missing from the static library. I am not sure if that is a problem with the modifications or the package itself.

Update: adding -lgomp solved the problem, which I don't seem to require when I am using my older OpenBLAS manual installation and do static linking. So that would suggest the problem is more in OpenBLAS.

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.

5 participants