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

Pull request for compiling shared objects. #47

Merged
merged 21 commits into from
Jun 19, 2019

Conversation

flampouris
Copy link

@flampouris flampouris commented Jun 11, 2019

This pull request is a response to #46 and continuation of #29. The compilation of shared objects becomes optional.

How to use:
./model/bin/w3_setup model -c intel_so -s NCEP_st4
cd [bin]
./w3_make libww3.so

See the code for details.

Several comparative tests showed that the average difference in compilation time for the master, with and without the options for shared objects is less than 0.2s. The original pull request had approximately the same delay (< 0.4s) in comparison with the master's compilation time.

The code has been tested with intel 17.1.

ajhenrique and others added 19 commits April 19, 2019 11:49
Merging Hotfixes branch HF_ounfpart into the WW3 master. 

* Bugfix in ww3_ounf.ftn: NBIPART check against NOSWLL was not accouting for zeroth wind partition. See Issue #2.
* Updating link.wcoss_phase2 for grib compile, removing !$ lines in ww3_uprstr that broke compilation of codes with OMPH OMPG switch flags, added new global wave model switch. Added option for writing to fixed netcdf gridded output file when using NCO switch (the issue will be fixed more adequately in v7 following Issue NOAA-EMC#8).
* DB1 depth-breaking_bugfix: added proper scaling coefficients for radian freq. [radHz]. See issue NOAA-EMC#7.

Merge will lead to v6.07.1, tag and release will be updated accordingly.
Stelios' develop to master
…p ${CMAKE_SOURCE_DIR}/WW3/model -c theia_so -s NCEP_st4" line was updated

model/bin/cmplr.env : "optc='-c -module $path_m -no-fma -fPIC -ip -p -g -i4 -real-size 32 -fp-model precise -assume byterecl -convert big_endian -fno-alias -fno-fnalias'" was updated, "-fPIC"

make_makefile.sh: libww3.so was added

w3_automake:  libww3.so was added

w3_make: libww3.so was added
Copy link
Collaborator

@mickaelaccensi mickaelaccensi left a comment

Choose a reason for hiding this comment

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

Hi all,
I would rather prefer to add it as a prefix so_intel to keep it consistent with options added in specific case or for specfic machine as it was done for zeus and datarmor.
It should be also done for the mpt and pgi compilers.

Mickael

Copy link
Collaborator

@JessicaMeixner-NOAA JessicaMeixner-NOAA left a comment

Choose a reason for hiding this comment

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

two minor typos.

model/bin/cmplr.env Outdated Show resolved Hide resolved
@@ -53,7 +53,7 @@ else
echo -e ' Not deleting tar file.'
fi

echo -e "\n\n Files were copied from the data_regtests to the regtets folder."
echo -e "\n\n Files were copied from the data_regtests to the regstets folder."
Copy link
Collaborator

Choose a reason for hiding this comment

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

regtests

Copy link
Author

Choose a reason for hiding this comment

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

@JessicaMeixner-NOAA at least I counted the number of letters 😄

@ajhenrique
Copy link
Collaborator

@flampouris thanks for the pull request. Could you address comments by @mickaelaccensi: Would you be able to change intel_so to so_intel, and to provide options for mpt and pgi compilers? Thanks!

@flampouris
Copy link
Author

flampouris commented Jun 11, 2019 via email

1. The _so extra suffix became an extension of the prefix
2. Typos at cmpl.env and ww3_ftp[...].sh
@flampouris
Copy link
Author

The code is updated according to the reviewers' suggestion.

The updates were tested with Intel 14.* and 17.1 on Theia and the NCEP_st4 switch.

@ajhenrique and @aliabdolali please let me know if there are any issues whiling testing.

@ajhenrique ajhenrique changed the base branch from develop to FB_libso June 19, 2019 17:11
@ajhenrique ajhenrique merged commit 27a7ed4 into NOAA-EMC:FB_libso Jun 19, 2019
@ajhenrique
Copy link
Collaborator

@flampouris please note that your pull request has been accepted into the branch FB_libso NOAA-EMC/WW3 for further testing before it is actually merged into the develop branch. We will let you know when that happens. Thanks!

@flampouris
Copy link
Author

flampouris commented Jun 27, 2019 via email

@ajhenrique
Copy link
Collaborator

Several comparative tests showed that the average difference in compilation time for the master, with and without the options for shared objects is less than 0.2s. The original pull request had approximately the same delay (< 0.4s) in comparison with the master's compilation time.

For completion of information justifying the rationale for asking this new pull request, please see comment #29 (comment), which provides results indicating a substantial increase in compile time when using the -fpic shared-object flag under the Intel compiler. This seems to be machine and/or compiler version dependent (so should be checked by developers that wish to run a large number of cases such as using a regtests matrix).

ajhenrique added a commit that referenced this pull request Jul 24, 2019
* Pull request for compiling shared objects. (#47)
* Fixed bug on ad3 when listing mod files.
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.

4 participants