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

Implement CMake performance tips to reduce configure times #18

Closed
lefebvre opened this issue Sep 18, 2014 · 4 comments
Closed

Implement CMake performance tips to reduce configure times #18

lefebvre opened this issue Sep 18, 2014 · 4 comments

Comments

@lefebvre
Copy link

This issue will address implementation of core cmake performance tips referenced at: http://www.cmake.org/Wiki/CMake_Performance_Tips
I have already implemented the include guards in lefebvre/TriBITS fork and seen a 10 second reduction in a 5 minute configuration of SCALE/Exnihilo/Trilinos(243 SE packages).

@bartlettroscoe
Copy link
Member

Jordan,

With the new design of TriBITS as documented here, there is no reason to add these include guards. You just remove all of you duplicate includes of:

INCLUDE(TribitsAddAdvnacedTest)
...

Specifically, the commits that removed the need to be constantly including these TriBITS modules are 081f8f9b24a838527523e4d64a322a48f0f69e34 and 00e417945fd444a5ed70d211860d0c23c41d106e.

For standard usage of TriBITS, your CMakeLists.txt files should not need to include anything. This is both a performance saving and avoid mistakes.

I don't have a problem with merging in the include guards in 3bdee81cf7140221ccfc3a4f2f5b41f36d1624db but after removing all of the necessary includes from the CMakeLists.txt files, I don't think it will improve configure runtimes at all. Also, include guards can change behavior if you are not careful.

@nschloe
Copy link
Contributor

nschloe commented Sep 18, 2014

FWIW, include guards could be useful in the export files. Right now, only the target configurations are guarded, but we should do so for the entire file. I'll add this to pull request #11.

@bartlettroscoe bartlettroscoe added this to the 1_backlog milestone Sep 25, 2014
@bartlettroscoe
Copy link
Member

@lefebvre, given that the newer versions of CMake configure very fast (i.e. patched CMake 3.3.2 and unpatched CMake 3.4.1 reconfigure VERA 6x faster than 2.8.11), do we need to do much more with configure performance? The real savings will happen when I get around to implementing #63.

@bartlettroscoe
Copy link
Member

I am going to close this. With newer versions of CMake (such as the patched CMake 3.3.2 installed with install-cmake.py), the configure speed is very fast. If this is not the case, please let me know but CASL VERA now reconfiugres and generates the coupled code package Tiamat in less than 30 seconds (which used to take about 3 minutes).

@bartlettroscoe bartlettroscoe removed this from the 1_backlog milestone Jan 24, 2016
bartlettroscoe added a commit to bartlettroscoe/seacas that referenced this issue Jul 11, 2016
A long time ago, TriBITS added all of the necessary includes in TriBITS.cmake
to avoid needing to have the project, repostory, and packages *.cmake and
CMakeLists.txt files from needing to include many of the TriBITS *.cmake
module files (see TriBITSPub/TriBITS#18).

This commit was created by running the script:

  TriBITS/refactoring/remove_std_tribits_includes_r.sh

Also, see trilinos/Trilinos#489.
gsjaardema pushed a commit to sandialabs/seacas that referenced this issue Jul 21, 2016
A long time ago, TriBITS added all of the necessary includes in TriBITS.cmake
to avoid needing to have the project, repostory, and packages *.cmake and
CMakeLists.txt files from needing to include many of the TriBITS *.cmake
module files (see TriBITSPub/TriBITS#18).

This commit was created by running the script:

  TriBITS/refactoring/remove_std_tribits_includes_r.sh

Also, see trilinos/Trilinos#489.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants