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

Port to Izumi #356

Merged
merged 3 commits into from
Aug 30, 2019
Merged

Port to Izumi #356

merged 3 commits into from
Aug 30, 2019

Conversation

apcraig
Copy link
Contributor

@apcraig apcraig commented Aug 27, 2019

PR checklist

  • Short (1 sentence) summary of your PR:
    port to izumi intel, nag, gnu, pgi
  • Developer(s):
    apcraig, dabail10
  • Suggest PR reviewers from list in the column to the right.
  • Please copy the PR test results link or provide a summary of testing completed below.
    Ran new "nothread_suite" on izumi. Results are here, #daa1689e38 at https://github.com/CICE-Consortium/Test-Results/wiki/cice_by_hash_forks. Not perfect but probably acceptable as a starting point.
  • How much do the PR code changes differ from the unmodified code?
    • bit for bit
    • different at roundoff level
    • more substantial
  • Does this PR create or have dependencies on Icepack or any other models?
    • Yes
    • No
  • Does this PR add any new test cases?
    • Yes
    • No
  • Is the documentation being updated? ("Documentation" includes information on the wiki or in the .rst files from doc/source/, which are used to create the online technical docs at https://readthedocs.org/projects/cice-consortium-cice/.)
    • Yes
    • No, does the documentation need to be updated at a later time?
      • Yes
      • No
  • Please provide any additional information or relevant details below:

izumi does not work well with threading, so a new test suite (nothread_suite) was created that does not leverage threading. There are some tests with OpenMP on but that is invoked only with 1 thread per task. Testing on izumi should be done with the nothread_suite.

@mhrid, the nag compiler complained about some code in the OpenMP sections of ice_dyn_evp_1d where "8" was used a kind type. It said 8 was not valid/known or something like it. I changed 8 to dbl_kind. Could you review that for me and make sure it is reasonable. There are also some places where 4 is used as an int kind in the same area of code. The compiler didn't complain about that, but it did leave me wondering whether this is correct. My understanding is the real8 != kind(8) != selected_real_kind(8) and I assume the same is true with integer and "4". Could we just confirm that the of real(,8) and integer(*,4) in that section of code. I'm happy to update them as needed.

I updated the implementation of the ICE_MACHINE_MAX constraints and added one for ICE_MACHINE_MAXTHREADS and set it to 1 for izumi to help users avoid running on izumi with more than 1 thread.

I removed some hardwired decomp info in the boxrestore nml. This was creating some problems with some of the tests and don't think it needs to be set there. The scripts/tests will generate/impose reasonable decomp settings.

I chmod'ed a few files in machines to make them consistent. This should have no effect but is just cleanup.

Copy link
Contributor

@dabail10 dabail10 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. Again it will be nice to have more compilers on izumi.

@apcraig apcraig self-assigned this Aug 28, 2019
@apcraig
Copy link
Contributor Author

apcraig commented Aug 28, 2019

I had some email with @mhrib offline about the kinds in ice_dyn_evp_1d.F90 and I have modified them. I think they are reasonable now.

I have also run the nothreads suite a couple times on izumi. Some cases fail intermittently. Sometimes a case times out (maybe it's hanging), and larger cases (higher pe counts) seem to abort on MPI errors sometimes. This is not consistent and I think it has to do with machine contention (file system or interconnect or both?). It's something we might want to raise with the izumi systems folks. At this point, I think we can merge with this understanding.

I will wait a day or two to merge in case others want to weigh in about anything.

@apcraig
Copy link
Contributor Author

apcraig commented Aug 29, 2019

Hi @mhrib, I realized after I made some initial changes to the DBL_KIND capitalization that I shouldn't. I saw some of the documentation in the code. The latest change from yesterday reverted those changes again. If you look at the current code changes, those are no longer there.

Copy link
Contributor

@eclare108213 eclare108213 left a comment

Choose a reason for hiding this comment

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

Why remove distribution_type and processor_shape from the boxrestore option? The 'cartesian' distribution_type is the default, but the default processor_shape is 'slenderX2'. Terrific if the test works with the default, which is slightly more difficult.

I'm happy with these changes but would like @mhrib to confirm the mods to ice_dyn_evp_1d.F90.

@eclare108213
Copy link
Contributor

Addresses #342

@apcraig
Copy link
Contributor Author

apcraig commented Aug 30, 2019

@mhrib and I have had some discussions offline. He has blessed the changes in the kinds.

The decomposition info in the boxrestore option actually prevented the decomposition to work with many pe counts because slenderX1 is somewhat restrictive. By removing those, we add some flexibility plus the boxrestore option doesn't overwrite whatever pe/decomp settings we're trying to test if we explicitly set them with the -pes option.

I am going to merge.

@apcraig apcraig merged commit 8420dfd into CICE-Consortium:master Aug 30, 2019
Copy link
Contributor

@mhrib mhrib left a comment

Choose a reason for hiding this comment

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

Changes 8->dbl_kind seems ok.

Copy link
Contributor

@mhrib mhrib left a comment

Choose a reason for hiding this comment

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

Changes to ice_dyn_evp_1d.F90 seems ok ("8" -> dbl_kind)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants