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

AwS setup #14

Open
wants to merge 59 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
3350111
mpp_domain memory leak cleanup
marshallward May 6, 2021
db95d8c
Merge branch 'main' into domain_mem_leaks
marshallward May 6, 2021
b805148
Adds an action to run make check on main branch when alpha and beta t…
thomas-robinson Jul 23, 2021
49bc8d8
Merge pull request #745 from marshallward/domain_mem_leaks
rem1776 Jul 23, 2021
3535b07
Modified get/set_date_gregorian tests (#749)
mlee03 Jul 23, 2021
1477fb1
Removes the use_mpp_io code in interpolator and amip_interp :'( (#759)
uramirez8707 Jul 23, 2021
1ab4a91
Removes mpp_io from topography (#760)
rem1776 Jul 23, 2021
2c8c77c
Explict string length for buffer in axis_utils (#764)
marshallward Jul 23, 2021
2cb1812
Remove use_mpp_bug code from data_override(#767)
GFDL-Eric Jul 23, 2021
6e4ca7b
Merge pull request #786 from thomas-robinson/addPWintelBuild
rem1776 Jul 23, 2021
4a03262
More fms_io removal (#768)
uramirez8707 Jul 23, 2021
2f5a2c4
FMS2_io error messages + some clean up (#771)
uramirez8707 Jul 23, 2021
87d945d
Fixed num_lines in mpp_util.inc to have the proper number of lines (#…
GFDL-Eric Jul 23, 2021
d8efb44
Removed use_mpp_io from diag_manager and drops a fatal if it's set to…
thomas-robinson Jul 30, 2021
5a97ce1
Removed use_mpp_io from xgrid and drops a fatal if it's set to true
thomas-robinson Jul 30, 2021
bb31b6f
Fixes filename in CMakeLists.txt (#794)
mlee03 Aug 2, 2021
6708246
Adds documentation section and links to readme, updates line in docs …
rem1776 Aug 2, 2021
7177ddf
Test fixes for the testing tag (#791)
rem1776 Aug 2, 2021
675295e
Removes the hardcoded path for input.nml (#795)
GFDL-Eric Aug 2, 2021
9521208
Merge pull request #792 from thomas-robinson/mpp_io_remove_diag
rem1776 Aug 2, 2021
37eaedb
Domain nest fix (#789)
bensonr Aug 2, 2021
ce2f9ce
Merge pull request #793 from thomas-robinson/mpp_io_remove_xgrid
rem1776 Aug 2, 2021
6d6ff95
Adds grid_spec_exists tests to grid2.F90 functions (#776)
GFDL-Eric Aug 2, 2021
45559a4
Fixes for autotools build (#797)
rem1776 Aug 5, 2021
9d25a1e
Update changelog, version numbers for 2021.03 release (#801)
rem1776 Aug 16, 2021
628cf6e
Updates version number to next development version (#802)
rem1776 Aug 17, 2021
21921bd
Fix issue with diurnal output with fms2_io (#798)
uramirez8707 Aug 27, 2021
a7b4e6d
Intel CI (#803)
thomas-robinson Aug 27, 2021
8ebcf4f
Time_interp_external fixes for performance and 3D data override (#811)
GFDL-Eric Sep 7, 2021
bdb5edb
Update gcc 11.1.0 check in configure.ac (#808)
rem1776 Sep 7, 2021
8883101
Add Intel -real-size option (#818)
underwoo Sep 16, 2021
9ca7b19
mpp_type_free cleanup (#822)
marshallward Sep 21, 2021
212efb5
JCSDA development without the adjoint changes (#807)
danholdaway Sep 21, 2021
21f2649
Fix CI distcheck flags (#825)
rem1776 Sep 30, 2021
863c97b
fix: test_fms2_io.sh (#833)
thomas-robinson Oct 5, 2021
3876769
Fix harcoded etc_unit and lack of newunit calls (#816)
GFDL-Eric Oct 7, 2021
c057b75
Reintroduces the option to flush_nc_files with fms2_io (#826)
uramirez8707 Oct 7, 2021
39762d1
Intel PR CI updates (#824)
thomas-robinson Oct 7, 2021
042fff3
Remove array-based Gregorian calendar methods in time_manager (#834)
mlee03 Oct 7, 2021
13bf023
Routine to convert a C string to a Fortran string. (#830)
thomas-robinson Oct 7, 2021
5e622d0
Create parallelWorks_intel_pr.yml
nova0002 Oct 8, 2021
2720778
added to workflows
nova0002 Oct 11, 2021
e416b53
edited configure-aws-credentials
nova0002 Oct 12, 2021
adf6e9a
Update do-the-job.yml
nova0002 Oct 12, 2021
3681f8c
Update actions.yml
nova0002 Oct 12, 2021
1ba2ed8
Delete actions.yml
nova0002 Oct 12, 2021
078c8c1
Update do-the-job.yml
nova0002 Oct 12, 2021
37d0de4
Update do-the-job.yml
nova0002 Oct 12, 2021
8c287ce
Update do-the-job.yml
nova0002 Oct 12, 2021
09c1c10
Update do-the-job.yml
nova0002 Oct 12, 2021
90628f9
Update do-the-job.yml
nova0002 Oct 12, 2021
98e9fc7
Update do-the-job.yml
nova0002 Oct 12, 2021
a5b45e5
Update do-the-job.yml
nova0002 Oct 12, 2021
814cc42
Update do-the-job.yml
nova0002 Oct 12, 2021
f46f0ee
Update do-the-job.yml
nova0002 Oct 12, 2021
d2c0e04
Update do-the-job.yml
nova0002 Oct 12, 2021
3db4d37
Update do-the-job.yml
nova0002 Oct 12, 2021
d2c6403
Update do-the-job.yml
nova0002 Oct 12, 2021
8a57261
Added to do-the-job
nova0002 Oct 15, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/build_parallelWorks_intel_tag.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Tag CI libFMS and AM4 regression

on:
push:
tags:
- '*alpha*'
- '*beta*'
workflow_dispatch:
jobs:
parallelWorks:
runs-on: [self-hosted, pw-platform]
strategy:
fail-fast: false
max-parallel: 3
matrix:
include:
- runname: FMS with intel 18
runscript: python3 /home/Thomas.Robinson/pw/storage/pw_api_python/FMStestStartClusters.py azcluster_noaa
- runname: FMS with intel 2021 container
runscript: python3 /home/Thomas.Robinson/pw/storage/pw_api_python/FMSintel21StartClusters.py azcluster_noaa_two
- runname: AM4 regression
runscript: python3 /home/Thomas.Robinson/pw/storage/pw_api_python/AM4_intel21StartClusters.py azcluster_noaa

steps:
- name: FMS make check on paralellWorks
env:
RUNNAME: ${{ matrix.runname }}
RUNSCRIPT: ${{ matrix.runscript }}
run: $RUNSCRIPT
ShutDownCluster:
runs-on: [self-hosted, pw-platform]
if: always()
needs: [parallelWorks]
strategy:
matrix:
include:
- cluster: azcluster_noaa
- cluster: azcluster_noaa_two
steps:
- name: Turn off cluster
env:
CLUSTER: ${{ matrix.cluster }}
run: python3 /home/Thomas.Robinson/pw/storage/pw_api_python/stopClusters.py $CLUSTER
2 changes: 2 additions & 0 deletions .github/workflows/build_ubuntu_gnu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,5 @@ jobs:
DISTCHECK_CONFIGURE_FLAGS: "${{ matrix.distcheck-conf-flags }}"
- name: Build the library
run: make -j distcheck
env:
DISTCHECK_CONFIGURE_FLAGS: "${{ matrix.distcheck-conf-flags }}"
74 changes: 74 additions & 0 deletions .github/workflows/do-the-job.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: do-the-job
on: pull_request
jobs:
start-runner:
name: Start self-hosted EC2 runner
runs-on: ubuntu-latest
outputs:
label: ${{ steps.start-ec2-runner.outputs.label }}
ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }}
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Start EC2 runner
id: start-ec2-runner
uses: machulav/ec2-github-runner@v2
with:
mode: start
github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
#ec2-image-id: ami-092a9e946def5be32
ec2-image-id: ami-02e136e904f3da870
ec2-instance-type: m5.4xlarge
subnet-id: subnet-02829d7b8c3522644
security-group-id: sg-09f60dd1eeea6d55f
#subnet-id: subnet-003faaf9f1e386979
#security-group-id: sg-05735797b251348e2
## iam-role-name: arn:aws:iam::430073024411:user/fms_test
do-the-job:
name: Do the job on the runner
needs: start-runner # required to start the main job when the runner is ready
runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner
steps:
- name: Install epel
run: sudo amazon-linux-extras install epel -y
- name: config epel
run: sudo yum-config-manager --enable epel
- name: Install singularity
run: sudo yum install -y singularity git
- name: Clone from git
run: git clone https://github.com/thomas-robinson/build_fms_script.git
- name: Pull the container
run: singularity pull docker://thomasrobinson/model_environment:i2021.2
- name: Build FMS in the container
run: singularity exec model_environment_i2021.2.sif ./build_fms.sh
stop-runner:
name: Stop self-hosted EC2 runner
needs:
- start-runner # required to get output from the start-runner job
- do-the-job # required to wait when the main job is done
runs-on: ubuntu-latest
if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Stop EC2 runner
uses: machulav/ec2-github-runner@v2
with:
mode: stop
github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
label: ${{ needs.start-runner.outputs.label }}
ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }}
## optional, requires additional permissions
# aws-resource-tags: > # optional, requires additional permissions
# [
# {"Key": "Name", "Value": "ec2-github-runner"},
# {"Key": "GitHubRepository", "Value": "${{ github.repository }}"}
# ]
37 changes: 37 additions & 0 deletions .github/workflows/parallelWorks_intel_pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Pull Request CI libFMS with intel18 and intel21

on: pull_request
jobs:
parallelWorks:
runs-on: [self-hosted, pw-platform]
strategy:
fail-fast: false
max-parallel: 2
matrix:
include:
# Turn this back on when fixed
- runname: FMS with intel 18
runscript: python3 /home/Thomas.Robinson/pw/storage/pw_api_python/PRFMSintel18StartClusters.py $GITHUB_REF
# Runs on FMS_CONTAINER_CI cluster
- runname: FMS with intel 2021 container
runscript: python3 /home/Thomas.Robinson/pw/storage/pw_api_python/PRFMSintel21StartClusters.py $GITHUB_REF
steps:
- name: FMS make check on paralellWorks
env:
RUNNAME: ${{ matrix.runname }}
RUNSCRIPT: ${{ matrix.runscript }}
run: $RUNSCRIPT
ShutDownCluster:
runs-on: [self-hosted, pw-platform]
if: always()
needs: [parallelWorks]
strategy:
matrix:
include:
- cluster: FMS_CONTAINER_CI
- cluster: fms_intel18_ci
steps:
- name: Turn off cluster
env:
CLUSTER: ${{ matrix.cluster }}
run: python3 /home/Thomas.Robinson/pw/storage/pw_api_python/stopClusters.py $CLUSTER
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,28 @@ and this project uses `yyyy.rr[.pp]`, where `yyyy` is the year a patch is releas
`rr` is a sequential release number (starting from `01`), and an optional two-digit
sequential patch number (starting from `01`).

## [2021.03] - 2021-08-16
### Known Issues
- DIAG_MANAGER: 3D diurnal diagnostic variables are not supported in this version of FMS
### Added
- FMS2_IO: Documentation was added for FMS2_io to help users convert from fms_io/mpp_io
### Changed
- FMS2_IO: The error messages in FMS2_io were updated to give more useful information
- TEST_FMS: The unit tests in mosaic, axis_utils, and time_interp_external were updated to use the FMS2_io version of these routines and are no longer skipped
- DOCS: The doxygen generated documentation has been improved with more doxygen comments added and a more cohesive layout
- TEST_FMS: Unit tests for time_manager were updated to use the new get/set_date_gregorian routines
### Removed
- MPP_IO: The namelist variable use_mpp_io was removed from interpolator, amip_interp, diag_manager, topography, xgrid, and data_override
- MPP_IO: Any remaining fms_io/mpp_io calls from the source and test code were removed
- FMS: Removes the hardcoded path for input.nml, path now may be specified in the call to `fms_init`
### Fixed
- MPP: Fixes algorithm used with nested grid updates to properly coalesce x-dir and y-dir pelists for vector quantities
- CMAKE/AUTOTOOLS: Fixes for minor issues with filenames in both the CMake and autotools build systems
- MPP: Restored deleted pset functionality needed by GFDL SCM by reinstating mpp_pset.F90
- MPP: Fixed uninitialized variables for data domains in mpp domains broadcast routines
- MPP: Minor memory leaks from deallocating domains
- AXIS_UTILS: Fix PGI related error with string length sizes

## [2021.02] - 2021-05-20
### Added
- FMS2_IO: Added fms2_io support for boundary condition restarts. `register_restart_region_2d` and `register_restart_region_3d` were added to fms2_io’s `register_restart_field` interface and `read_restart_bc` and `write_restart_bc` subroutines were added to read and write boundary conditions restarts. See [test_fms/fms2_io/test_bc_restart.F90](https://github.com/NOAA-GFDL/FMS/blob/9d55115a331685e4c6e01f2dfb3b770a9f80fa37/test_fms/fms2_io/test_bc_restart.F90) for sample usage.
Expand Down
8 changes: 4 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@

# Copyright (c) GFDL, @underwoo

cmake_minimum_required(VERSION 3.7...3.15 FATAL_ERROR)
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)

# Define the CMake project
project(FMS
VERSION 2021.02.0
VERSION 2021.03.0
DESCRIPTION "GFDL FMS Library"
HOMEPAGE_URL "https://www.gfdl.noaa.gov/fms"
LANGUAGES C Fortran)
Expand Down Expand Up @@ -93,11 +93,11 @@ list(APPEND fms_fortran_src_files
block_control/block_control.F90
column_diagnostics/column_diagnostics.F90
constants/constants.F90
constants/fmsconstants.F90
coupler/atmos_ocean_fluxes.F90
coupler/coupler_types.F90
coupler/ensemble_manager.F90
data_override/get_grid_version_fms2io.F90
data_override/get_grid_version_mpp.F90
data_override/get_grid_version.F90
data_override/data_override.F90
diag_integral/diag_integral.F90
diag_manager/diag_axis.F90
Expand Down
1 change: 1 addition & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ SUBDIRS = \
tracer_manager \
sat_vapor_pres \
random_numbers \
. \
libFMS \
test_fms \
${DOCS}
Expand Down
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,15 @@ infrastructural changes to enable such developments are within the scope of FMS.
The collaborative software review process of contributed models is therefore an
essential facet of FMS.

## Documentation

Source code documentation for the FMS code base is available at http://noaa-gfdl.github.io/FMS.
The documentation is generated by doxygen and updated upon releases, and a copy of the site
can be obtained through the `gh-pages` branch or generated manually with
`./configure --enable-docs && make -C docs`. For more information on documentating the code
with doxygen please see the
[documentation style guide](http://noaa-gfdl.github.io/FMS/md_docs_doxygenGuide.html).

# Disclaimer

The United States Department of Commerce (DOC) GitHub project code is provided
Expand Down
Loading