-
Notifications
You must be signed in to change notification settings - Fork 139
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
Add DMI Cray XC50 hpc (freya) to machines. Based on Banting #528
Conversation
configuration/scripts/cice.batch.csh
Outdated
@@ -185,7 +185,7 @@ cat >> ${jobfile} << EOFB | |||
#SBATCH --qos=standby | |||
EOFB | |||
|
|||
else if (${ICE_MACHINE} =~ daley* || ${ICE_MACHINE} =~ banting*) then |
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.
Hi Till! I don't really mind that you add your machine here to the same else if
statement as ours (the PBS directives should not change often), but if you (or I) want to change them in the future, maybe it makes more sense for you to have a separate entry for your machine ?
@@ -130,7 +130,7 @@ EOFR | |||
endif | |||
|
|||
#======= | |||
else if (${ICE_MACHINE} =~ daley* || ${ICE_MACHINE} =~ banting*) then |
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.
same comment here. in fact I'm realizing that this is wrong for the serial case, as if we don't use aprun
the model will run on the MOM node instead of the computes...
CXX := CC | ||
CPP := /usr/bin/cpp | ||
CPPFLAGS := -P -traditional # ALLOW fortran double backslash "\\" | ||
SCC := gcc |
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.
any reason you use gcc
instead of cc
for the serial case ?
|
||
# Additional flags | ||
|
||
ifeq ($(DITTO), yes) |
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.
the is probably obsolete.. greping either 'DITTO' and 'REPRODUCIBLE' does not return any result for me..
# CPPDEFS := $(CPPDEFS) -Dncdf | ||
#endif | ||
|
||
### if using parallel I/O, load all 3 libraries. PIO must be first! |
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.
this part should have been removed long ago from our Macro files, PIO is not installed on our machines... So I would suggest removing it also here, to not carry uneeded stuff.
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.
gcc: The short answer makdep fails if I use cc. It works when I use gcc. I think, but I am not sure, that the reason is that the XC50 computer at DMI consist of login nodes and compute nodes, which have different architectures. The cc command is used when compiling for compute nodes and gcc for login nodes.
I will separate the computers within the if statement and update.
I agree about the DITTO and REPRODUCIBLE but I left them in there to be sure.
There is an installation of parallel netcdf on the DMI computer but I am not sure if it works. I have never tried CICE or other model systems with pio.
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.
ah yes, makes sense to use gcc
if the login and computes have different architectures. I think you also could use the CFLAGS_HOST
macro for that : https://cice-consortium-cice.readthedocs.io/en/latest/user_guide/ug_running.html#cross-compiling
This would be a little "cleaner" I think, since this way the C code (ice_reprosum..) would still be compiled by cc
(I don't know if it would really make a difference though.)
I have now separated the two machines (Bainting and Freya) in cice.batch.csh and cice.launch.csh |
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.
Some effort was made to clean up the Macros a few months ago. They are now documented, https://cice-consortium-cice.readthedocs.io/en/master/user_guide/ug_case_settings.html#table-of-c-preprocessor-cpp-macros. I agree that DITTO and REPRODUCIBLE should be removed at this point, although it's not a big deal if they're not. I think they were removed from several other machine files at that time (although maybe not all).
In general, I think it's fine to share machine settings in the "if" tests for multiple machines. It's pretty easy to split them up later if needed. I agree with @phil-blain's comment that if multiple machine are sharing an "if" section, care must be taken if something needs to change for one machine.
@TillRasmussen, I'll give you a chance to make any additional revisions. Once you feel you're ready to merge (and maybe that's now), just add a comment to the PR or email me if you prefer. thanks! |
I added option for gnu as well for DMI Freya. I am done with my changes. These can be merged |
fa1d8c9
to
efd5e93
Compare
For detailed information about submitting Pull Requests (PRs) to the CICE-Consortium,
please refer to: https://github.com/CICE-Consortium/About-Us/wiki/Resource-Index#information-for-developers
PR checklist
This adds environment and Macros for DMI Cray XC50 computer to machines. Based on Banting XC50.
tar
@phil-blain @apcraig
Do not change the code itself
For DMI runs big endian flag should be removed.
Big endian flag only in Macro to use test examples from CICE consortium.
Only implemented for intel compiler