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

Downgrade F2018 requirement to F2003 (NVHPC support) #346

Merged
merged 8 commits into from
Jun 5, 2023

Conversation

ashao
Copy link
Member

@ashao ashao commented May 25, 2023

Replaces the assumed rank feature of F2018 used in the Fortran client with assumed
shape arrays. Compilers need only be compliant with the F2003 standard now. While
this means that it is possible to compile SmartRedis with the Nvidia toolchain,
users should consider this only experimental support until we can incorporate
Nvidia compilers into our CI.

@ashao ashao requested a review from billschereriii May 25, 2023 21:41
Makefile Outdated Show resolved Hide resolved
Copy link
Contributor

@billschereriii billschereriii left a comment

Choose a reason for hiding this comment

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

Looks good to me though I'm curious why we used to install hiredis in two steps instead of the one you've demonstrated here.

@billschereriii
Copy link
Contributor

Approval is conditional of course on test cases passing

ashao added 8 commits June 2, 2023 19:00
Changing the declaration of arrays from dimension(..) (an F2018
feature) to dimensio(*) seems to preserve the same functionality
and enable compilers like Nvidia's which only have support up to
F2003 to compile SmartRedis. All tests pass
@ashao ashao merged commit 3cdbec6 into CrayLabs:develop Jun 5, 2023
36 checks passed
ashao added a commit to ashao/SmartRedis that referenced this pull request Jul 6, 2023
The Nvidia compilers do not support the assumed rank F2018 feature 
that we use to minimize the code in the `client` and `dataset`. Using
a macro that detects whether the Nvidia compiler is being used,
the declaration is instead assumed-size (`dimension(*)`). The macro
is required as both gfortran and ifort do not see this use of
assumed-size as valid. All tests where library and testers are compiled
with Nvidia 22.3.0 have confirmed to pass. Note: support for this 
should be considered experimental until we add this compiler chain
to our nightly builds.

[ committed by @ashao ]
[ reviewed by @billschereriii ]
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.

None yet

2 participants