-
Notifications
You must be signed in to change notification settings - Fork 136
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
coupler mixed precision #1353
Merged
Merged
coupler mixed precision #1353
Changes from 22 commits
Commits
Show all changes
42 commits
Select commit
Hold shift + click to select a range
46d8e44
Update mixedmode_base branch to main (#1144)
mlee03 dde0b88
update the mixedmode_base branch to main (#1154)
mlee03 bc9e4d9
Merge branch 'mixedmode' into mixedmode_base
rem1776 2977578
rm accidental empty line
b3374f6
chore: bring mixedmode_base up to date with main (#1173)
mlee03 cca0c7d
chore: update mixedmode_base to main (#1234)
mlee03 712330b
chore: merge main updates into mixedmode_base(#1267)
mlee03 8c72630
mixed-precision: update mixedmode base (#1289)
mlee03 19ee83f
readd file
1a309f4
working compile with type changes
2c0b45c
finish up ifs for association
7d23cb8
update existing tests for r4 precision, fix missed bc_types
baf95ca
add in test changes from other branch
f693a46
add in mikyung's test
f6503d7
more tests
9517433
mixed precision merge main into mixedmode_base (#1342)
mlee03 e27ec4a
remove added test for pr
49b3693
Merge remote-tracking branch 'origin/mixedmode_base' into coupler_mp_…
8c9eabf
update mikyungs ocean fluxes test for both kinds
9c543de
missed r4 argument + macros for aof test
24933d7
Add in checks for only one kind associated
5d8e7ff
Merge branch 'mixedmode' into coupler_mp_notest
rem1776 1d24387
Review comments + any lingering conversion warnings
f25e261
Merge branch 'coupler_mp_notest' of github.com:rem1776/FMS into coupl…
3813ce3
many linter fixes :(
22a41dc
Merge remote-tracking branch 'origin/mixedmode' into coupler_mp_notest
346c225
Add in class(*) for aof_set_coupler_flux optional reals
039e34d
fix issues with checks for only one kind associated
c41238b
only check association if bc count is >0
d509e0d
fix the checks again
d6ae048
cmake build
fea9409
remove added prints
60d5bc5
add bc count > 0 to error checking
298f70b
Merge remote-tracking branch 'origin/mixedmode' into coupler_mp_notest
67ad65e
Merge remote-tracking branch 'upstream/mixedmode' into coupler_mp_notest
47ae5f7
remove some other changes that slid in
27c6e87
take out set check in spawn routines
b6b1d02
build fixes
41a5bd7
fix build for real
c6fc1b4
typo
0b501bd
another typo
6b91325
one last thing hoepfully
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
#*********************************************************************** | ||
#* GNU Lesser General Public License | ||
#* | ||
#* This file is part of the GFDL Flexible Modeling System (FMS). | ||
#* | ||
#* FMS is free software: you can redistribute it and/or modify it under | ||
#* the terms of the GNU Lesser General Public License as published by | ||
#* the Free Software Foundation, either version 3 of the License, or (at | ||
#* your option) any later version. | ||
#* | ||
#* FMS is distributed in the hope that it will be useful, but WITHOUT | ||
#* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
#* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
#* for more details. | ||
#* | ||
#* You should have received a copy of the GNU Lesser General Public | ||
#* License along with FMS. If not, see <http://www.gnu.org/licenses/>. | ||
#*********************************************************************** | ||
# FMS CI image recipefile for GNU | ||
# Runs on centos stream (builder has same base from redhat registry) | ||
# | ||
# arguments to specify versions to build can be given to docker or changed here (--build-arg name=val) | ||
FROM spack/rockylinux9:latest as builder | ||
|
||
ARG gcc_version=12.3.0 | ||
ARG netcdfc_version=4.9.0 | ||
ARG netcdff_version=4.6.0 | ||
ARG libyaml_version=0.2.5 | ||
ARG mpich_version=4.0.2 | ||
|
||
COPY spack.env /opt/deps/spack.env | ||
|
||
# perl's download kept timing out | ||
RUN sed -i 's/connect_timeout: 10/connect_timeout: 600/' /opt/spack/etc/spack/defaults/config.yaml && \ | ||
spack install gcc@${gcc_version} && \ | ||
source /opt/spack/share/spack/setup-env.sh && \ | ||
spack load gcc@${gcc_version} && \ | ||
spack compiler find && \ | ||
sed "s/COMPILER/gcc@$gcc_version/" /opt/deps/spack.env > spack.yaml && \ | ||
sed -i "s/NETCDF_C_VERSION/$netcdfc_version/" spack.yaml && \ | ||
sed -i "s/NETCDF_F_VERSION/$netcdff_version/" spack.yaml && \ | ||
sed -i "s/LIBYAML_VERSION/$libyaml_version/" spack.yaml && \ | ||
sed -i "s/MPI_LIB/mpich@$mpich_version/" spack.yaml && \ | ||
spack env activate -d . && \ | ||
spack -e . concretize -f > /opt/deps/deps.log && \ | ||
spack install --fail-fast | ||
|
||
# copy built software to base from first image | ||
FROM rockylinux:9 | ||
|
||
COPY --from=builder /opt/view/ /opt/view/ | ||
COPY --from=builder /opt/deps/ /opt/deps/ | ||
|
||
# input files used with --enable-input-tests | ||
# need to be on the dev boxes if building | ||
COPY ./fms_test_input /home/unit_tests_input | ||
|
||
RUN dnf install -y autoconf make automake m4 libtool pkg-config zip | ||
|
||
ENV FC="mpifort" | ||
ENV CC="mpicc" | ||
ENV MPICH_FC="/opt/view/bin/gfortran" | ||
ENV MPICH_CC="/opt/view/bin/gcc" | ||
ENV FCFLAGS="-I/opt/view/include" | ||
ENV CFLAGS="-I/opt/view/include" | ||
ENV LDFLAGS="-L/opt/view/lib" | ||
ENV LD_LIBRARY_PATH="/opt/view/lib:/opt/view/lib64:/usr/local/lib:/usr/local/lib64" | ||
ENV PATH="/opt/view/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# 'main' required ci, does a distcheck (builds, tests, check install) | ||
# image created off dockerfile in repo, compile/link flags are set there | ||
name: Build libFMS test with autotools | ||
|
||
on: [push, pull_request] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
conf-flag: [ --disable-openmp, --enable-mixed-mode, --disable-setting-flags, --with-mpi=no] | ||
input-flag: [--with-yaml, --enable-test-input=/home/unit_tests_input] | ||
exclude: | ||
- conf-flag: --with-mpi=no | ||
input-flag: --enable-test-input=/home/unit_tests_input | ||
container: | ||
image: noaagfdl/fms-ci-rocky-gnu:12.3.0 | ||
env: | ||
TEST_VERBOSE: 1 | ||
DISTCHECK_CONFIGURE_FLAGS: "${{ matrix.conf-flag }} ${{ matrix.input-flag }} ${{ matrix.io-flag }}" | ||
SKIP_TESTS: "test_yaml_parser.5" # temporary till fixes are in | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
- name: Prepare GNU autoconf for build | ||
run: autoreconf -if | ||
- name: Configure the build | ||
if: ${{ matrix.conf-flag != '--disable-setting-flags' }} | ||
run: ./configure ${DISTCHECK_CONFIGURE_FLAGS} || cat config.log | ||
- name: Configure the build with compiler flags | ||
if: ${{ matrix.conf-flag == '--disable-setting-flags' }} | ||
run: ./configure ${DISTCHECK_CONFIGURE_FLAGS} FCFLAGS="-fdefault-real-8 -fdefault-double-8 -fcray-pointer -ffree-line-length-none -I/usr/include $FCFLAGS" || cat config.log | ||
- name: Build the library | ||
run: make distcheck | ||
if: ${{ matrix.conf-flag != '--with-mpi=no' }} | ||
- name: Build the library (without test suite for serial build) | ||
run: make | ||
if: ${{ matrix.conf-flag == '--with-mpi=no' }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# template for spack environment yaml | ||
# uppercase words get replaced before activating | ||
spack: | ||
specs: | ||
- COMPILER | ||
- MPI_LIB | ||
- netcdf-c@NETCDF_C_VERSION ^MPI_LIB | ||
- netcdf-fortran@NETCDF_F_VERSION | ||
- libyaml@LIBYAML_VERSION | ||
concretizer: | ||
unify: true | ||
packages: | ||
all: | ||
compiler: [ COMPILER ] | ||
config: | ||
install_tree: /opt/deps | ||
view: /opt/view |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -92,3 +92,4 @@ settings.json | |
*.code-workspace | ||
# Local History for Visual Studio Code | ||
.history/ | ||
*.i90 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,7 +25,7 @@ AC_PREREQ([2.69]) | |
|
||
# Initialize with name, version, and support email address. | ||
AC_INIT([GFDL FMS Library], | ||
[2023.01.00-dev], | ||
[2023.02.00-dev], | ||
[[email protected]], | ||
[FMS], | ||
[https://www.github.com/NOAA-GFDL/FMS]) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, does this need to be merged with the current mixedmode branch?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be updated, i left that one line deletion in axis utils cause that extra line will mess with the documentation parser.