Skip to content

Conversation

@Iximiel
Copy link
Member

@Iximiel Iximiel commented May 27, 2025

Description

I noted that my modification to the CI with the NVHPC sdk was just installing it and then plumed was compiled with the gnu compilers...

I corrected the mistake and now it also checks that the openacc things gets compiled as expected.

The module membranefusion in not compatible with the current nvhpc compiler because nvc++ do not support the custom reductions in openMP. In the -nvhpc- matrix that module is disabled to end the compilation and try the tests

Target release

I would like my code to appear in release v2.11

Type of contribution
  • changes to code or doc authored by PLUMED developers, or additions of code in the core or within the default modules
  • changes to a module not authored by you
  • new module contribution or edit of a module authored by you
Copyright
  • I agree to transfer the copyright of the code I have written to the PLUMED developers or to the author of the code I am modifying.
  • the module I added or modified contains a COPYRIGHT file with the correct license information. Code should be released under an open source license. I also used the command cd src && ./header.sh mymodulename in order to make sure the headers of the module are correct.
Tests
  • I added a new regtest or modified an existing regtest to validate my changes.
  • I verified that all regtests are passed successfully on GitHub Actions.

@Iximiel
Copy link
Member Author

Iximiel commented May 27, 2025

@GiovanniBussi do you know if there is a non invasive solution for giving the more that one option/flag in CXXFLAGS="-O3[space]other_option[space]etc..." into the PLUMED_CONFIG environment variable without doing nasty things to IFS?
Apparently using the quotes \" do not prevent PLUMED_CONFIG being splitted on the spaces when it is expanded in the ./config call...
And I do not think that changing it to an array to expand it with "${PLUMED_CONFIG[@]}" will be a painless thing to do

@GiovanniBussi
Copy link
Member

@Iximiel no I don't know... But I would not touch ./configure script. You probably can fix the thing by just modifying the workflow

@Iximiel Iximiel marked this pull request as draft May 28, 2025 08:14
@Iximiel
Copy link
Member Author

Iximiel commented May 28, 2025

But I would not touch ./configure script.

I totally agree, I will try hammering the CI a little

Now I have to get it back to work, I'm deactivating the other CI runners (for this pr) while I search for the solution

@Iximiel Iximiel force-pushed the using_nvhpc branch 2 times, most recently from 5a835ab to 22fecff Compare May 28, 2025 13:37
@Iximiel
Copy link
Member Author

Iximiel commented May 28, 2025

luckily for me ./configure "" works and do not complain about "" being an unknown input/setting/flag like other commands do

@Iximiel
Copy link
Member Author

Iximiel commented May 29, 2025

About the test failing with nvhpc (47 tests):

  • rt-graph-* : have some problem with plotting the CUSTOM kw, I have the same failure locally
  • METAD tests fails with a sigsegv in evaluateGaussian (I added an extra assert to check the possible cultprit)
  • ves and isdb tests seems to fail due to approximation but for most of them is a completely wrong value (usually we get zeros instead of the expected values)
  • some drr tests seems to fail due to approximation (like expected 102.367422176 but returned 102.367422175)

@Iximiel
Copy link
Member Author

Iximiel commented Jun 16, 2025

@Iximiel no I don't know... But I would not touch ./configure script. You probably can fix the thing by just modifying the workflow

In the end I touched the config script, now the openacc settings can be passed with much more control that before, and are tested in the right order

@Iximiel
Copy link
Member Author

Iximiel commented Jun 17, 2025

the various FunctionOfSomething<Custom>::writeInGraph() do not get linked correctly with nvhpc, for unknown reasons.
I moved the specializations in Custom.cpp. Now the graph tests with CUSTOM pass
(@gtribello do you prefer to move the action registrations in the FunctionOfSomething cpps, like for FunctionOfGrid?)

Now the graph tests should pass correctly

@gtribello
Copy link
Member

Hi @Iximiel

Moving the specialization in Custom.cpp is fine. The reason is just so that the function that is being used is output on the node of the graph. There is not need to have a specialised version of the other functions as what they do should hopefully be clearer.

@gtribello
Copy link
Member

This is the list of regtests in ves that fail on my Mac:

+  ERROR in test ves/rt-bf-chebyshev/
+ check file ves/rt-bf-chebyshev/report.txt for more information
+ ERROR in test ves/rt-bf-combined/
+ check file ves/rt-bf-combined/report.txt for more information
+ ERROR in test ves/rt-bf-custom-legendre/
+ check file ves/rt-bf-custom-legendre/report.txt for more information
+ ERROR in test ves/rt-bf-custom-transform/
+ check file ves/rt-bf-custom-transform/report.txt for more information
+ ERROR in test ves/rt-bf-custom/
+ check file ves/rt-bf-custom/report.txt for more information
+ ERROR in test ves/rt-bf-fourier/
+ check file ves/rt-bf-fourier/report.txt for more information
+ ERROR in test ves/rt-bf-gaussians/
+ check file ves/rt-bf-gaussians/report.txt for more information
+ ERROR in test ves/rt-bf-legendre-scaled/
+ check file ves/rt-bf-legendre-scaled/report.txt for more information
+ ERROR in test ves/rt-bf-legendre/
+ check file ves/rt-bf-legendre/report.txt for more information
+ ERROR in test ves/rt-bf-powers/
+ check file ves/rt-bf-powers/report.txt for more information
+ ERROR in test ves/rt-bf-sine/
+ check file ves/rt-bf-sine/report.txt for more information
+ ERROR in test ves/rt-bf-splines/
+ check file ves/rt-bf-splines/report.txt for more information
+ ERROR in test ves/rt-bf-wavelets-db/
+ check file ves/rt-bf-wavelets-db/report.txt for more information
+ ERROR in test ves/rt-bf-wavelets-sym/
+ check file ves/rt-bf-wavelets-sym/report.txt for more information
+ ERROR in test ves/rt-output-fes-2d-targetdist/
+ check file ves/rt-output-fes-2d-targetdist/report.txt for more information
+ ERROR in test ves/rt-td-generalized-extreme-value/
+ check file ves/rt-td-generalized-extreme-value/report.txt for more information
+++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Final report:
+ 642 tests performed, 142 tests not applicable
+ 16 errors found
+ Find the bug!
+ To replace references, go to the test directory and
+ type 'make reset'
+++++++++++++++++++++++++++++++++++++++++++++++++++++

@Iximiel Iximiel mentioned this pull request Jun 23, 2025
7 tasks
@Iximiel
Copy link
Member Author

Iximiel commented Jun 30, 2025

As a temporary measure I omitted also ves from the nvhpc compilation. With nvhcp ves shows some problems that we see with clang+arm mac (see the discussion in #950, and in particular this #950 (comment)).
And I also omitted from compilation idsb and membranefusion because in some files they use #pragma omp declare reduction that it is not liked by nvc...

@Iximiel
Copy link
Member Author

Iximiel commented Dec 5, 2025

#1318 updates and overcome this

@Iximiel Iximiel closed this Dec 5, 2025
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.

3 participants