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

New long compile times for grid_tools.cc? #15919

Closed
bangerth opened this issue Aug 23, 2023 · 2 comments
Closed

New long compile times for grid_tools.cc? #15919

bangerth opened this issue Aug 23, 2023 · 2 comments

Comments

@bangerth
Copy link
Member

I suspect that this is new and must have happened over the past 3 or so weeks while I was mostly off work -- though I'm not sure it's actually new and/or unexpected. Anyway, now that I'm back, I'm seeing that grid_tools.cc takes quite a long time to compile, and I see that the .s (assembler) file has 262 MB and the .o` file has 78 MB:

1/build> ps aux | grep 25150
bangerth  25150  100  0.4 1394340 1277472 pts/4 R    19:56   4:17 as -I /home/fac/g/bangerth/p/deal.II/1/build/source/grid -I /home/fac/g/bangerth/p/deal.II/1/dealii/source/grid -I /home/fac/g/bangerth/p/deal.II/1/build/include -I /home/fac/g/bangerth/p/deal.II/1/dealii/include --64 --compress-debug-sections -o source/grid/CMakeFiles/object_grid_debug.dir/grid_tools.cc.o /tmp/cc9lEB7V.s
bangerth  25254  0.0  0.0 112816   976 pts/4    S+   20:01   0:00 grep --colour=auto 25150
1/build> ll /tmp/cc9lEB7V.s
-rw------- 1 bangerth fac 261269881 Aug 22 19:56 /tmp/cc9lEB7V.s
ll source/grid/CMakeFiles/object_grid_debug.dir/grid_tools.cc.o
-rw-r--r-- 1 bangerth fac 78254432 Aug 22 20:01 source/grid/CMakeFiles/object_grid_debug.dir/grid_tools.cc.o

I took the assembler ~4 minutes to work through this.

This isn't the only large file, though:

1/build> ls -lS `find source/ -name *.cc.o` | head -30
-rw-r--r-- 1 bangerth fac 78254432 Aug 22 20:01 source/grid/CMakeFiles/object_grid_debug.dir/grid_tools.cc.o
-rw-r--r-- 1 bangerth fac 72860152 Aug 22 19:57 source/numerics/CMakeFiles/object_numerics_debug.dir/matrix_creator_inst3.cc.o
-rw-r--r-- 1 bangerth fac 72130456 Mar 30 20:11 source/numerics/CMakeFiles/obj_numerics_debug.dir/matrix_creator_inst3.cc.o
-rw-r--r-- 1 bangerth fac 63118000 Mar 30 20:13 source/fe/CMakeFiles/obj_fe_debug.dir/fe_tools_extrapolate.cc.o
-rw-r--r-- 1 bangerth fac 58652312 Mar 30 20:12 source/grid/CMakeFiles/obj_grid_debug.dir/grid_tools.cc.o
-rw-r--r-- 1 bangerth fac 58163680 Aug 22 19:58 source/multigrid/CMakeFiles/object_multigrid_debug.dir/mg_transfer_global_coarsening.cc.o
-rw-r--r-- 1 bangerth fac 54446768 Aug 22 19:57 source/fe/CMakeFiles/object_fe_debug.dir/fe_tools_extrapolate.cc.o
-rw-r--r-- 1 bangerth fac 53013144 Aug 22 19:56 source/fe/CMakeFiles/object_fe_debug.dir/fe_values_views.cc.o
-rw-r--r-- 1 bangerth fac 49933976 Aug 22 19:56 source/numerics/CMakeFiles/object_numerics_debug.dir/matrix_creator_inst2.cc.o
-rw-r--r-- 1 bangerth fac 49429128 Mar 30 20:09 source/numerics/CMakeFiles/obj_numerics_debug.dir/matrix_creator_inst2.cc.o
-rw-r--r-- 1 bangerth fac 40566224 Aug 22 19:57 source/grid/CMakeFiles/object_grid_debug.dir/tria.cc.o
-rw-r--r-- 1 bangerth fac 38648568 Mar 30 20:11 source/matrix_free/CMakeFiles/obj_matrix_free_debug.dir/matrix_free.cc.o
-rw-r--r-- 1 bangerth fac 38557416 Aug 22 19:56 source/matrix_free/CMakeFiles/object_matrix_free_debug.dir/matrix_free.cc.o
-rw-r--r-- 1 bangerth fac 37968928 Mar 30 20:09 source/numerics/CMakeFiles/obj_numerics_debug.dir/derivative_approximation.cc.o
-rw-r--r-- 1 bangerth fac 35582504 Jun 28 09:57 source/fe/CMakeFiles/object_fe_debug.dir/fe_values_inst3.cc.o
-rw-r--r-- 1 bangerth fac 35283192 Mar 30 20:09 source/fe/CMakeFiles/obj_fe_debug.dir/fe_values_inst3.cc.o
-rw-r--r-- 1 bangerth fac 35268376 Mar 30 20:08 source/numerics/CMakeFiles/obj_numerics_debug.dir/error_estimator.cc.o
-rw-r--r-- 1 bangerth fac 34632256 Aug 22 19:56 source/numerics/CMakeFiles/object_numerics_debug.dir/vector_tools_project.cc.o
-rw-r--r-- 1 bangerth fac 34526368 Mar 30 20:08 source/numerics/CMakeFiles/obj_numerics_debug.dir/error_estimator_inst2.cc.o
-rw-r--r-- 1 bangerth fac 34356096 Aug 22 19:56 source/numerics/CMakeFiles/object_numerics_debug.dir/derivative_approximation.cc.o
-rw-r--r-- 1 bangerth fac 34068792 Mar 30 20:11 source/grid/CMakeFiles/obj_grid_debug.dir/tria.cc.o
-rw-r--r-- 1 bangerth fac 33845664 Mar 30 20:09 source/numerics/CMakeFiles/obj_numerics_debug.dir/vector_tools_project.cc.o
-rw-r--r-- 1 bangerth fac 33289328 Jun 28 09:57 source/fe/CMakeFiles/object_fe_debug.dir/fe_values_inst6.cc.o
-rw-r--r-- 1 bangerth fac 32994872 Mar 30 20:09 source/fe/CMakeFiles/obj_fe_debug.dir/fe_values_inst6.cc.o
-rw-r--r-- 1 bangerth fac 32463880 Mar 30 20:09 source/fe/CMakeFiles/obj_fe_debug.dir/mapping_fe_field.cc.o
-rw-r--r-- 1 bangerth fac 31425744 Mar 30 20:08 source/fe/CMakeFiles/obj_fe_debug.dir/mapping_fe_field_inst2.cc.o
-rw-r--r-- 1 bangerth fac 29104184 Aug 22 19:56 source/fe/CMakeFiles/object_fe_debug.dir/mapping_fe_field.cc.o
-rw-r--r-- 1 bangerth fac 28444576 Mar 30 20:09 source/dofs/CMakeFiles/obj_dofs_debug.dir/dof_accessor_set.cc.o
-rw-r--r-- 1 bangerth fac 28068760 Aug 22 19:56 source/fe/CMakeFiles/object_fe_debug.dir/mapping_fe_field_inst2.cc.o
-rw-r--r-- 1 bangerth fac 27590128 Aug 22 19:56 source/matrix_free/CMakeFiles/object_matrix_free_debug.dir/evaluation_template_factory_inst5.cc.o

Is this all expected?

@bangerth bangerth changed the title New long compile times for grid_tools.cc. New long compile times for grid_tools.cc? Aug 23, 2023
@drwells
Copy link
Member

drwells commented Aug 23, 2023

I didn't check the sizes of the object files but grid tools takes about 4 minutes for me to compile in release mode both on master and v9.5.1. I've known for a while that this is one of the more expensive files - see also #13949 (comment). In particular we should split up GridTools the same way we split up VectorTools.

@bangerth
Copy link
Member Author

OK, let's close this then if this isn't something that's new.

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

No branches or pull requests

2 participants