]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Split fe_values.cc into more instantiation files.
authorDavid Wells <wellsd2@rpi.edu>
Mon, 29 Jan 2018 03:59:04 +0000 (22:59 -0500)
committerDavid Wells <wellsd2@rpi.edu>
Sat, 3 Feb 2018 18:22:43 +0000 (13:22 -0500)
This is currently the most expensive file to compile: with GCC 7.2 and all
libraries but adol-c installed, this file requires 4.5 GB and 170s to (just for
one of two instantiation files). This commit adds four additional instantiation
files to lower the memory requirements below 3 GB per translation unit.

Here is some profiling information:

debug, master:
165s, 4 GB
170s, 4.5 GB
(335 s total)

release, master:
182s, 3.6 GB
194s, 3.9 GB
(376s total)

debug, feature:
37s, 1.7 GB
63s, 2.6 GB
31s, 1.5 GB
87s, 2.7 GB
58s, 2.6 GB
79s, 2.7 GB
(355s total)

release, feature:
 37s, 1.5 GB
 71s, 2.4 GB
 32s, 1.5 GB
103s, 2.6 GB
 69s, 2.3 GB
 96s, 2.6 GB
(408s total)

source/fe/CMakeLists.txt
source/fe/fe_values.cc
source/fe/fe_values_inst3.cc [new file with mode: 0644]
source/fe/fe_values_inst4.cc [new file with mode: 0644]
source/fe/fe_values_inst5.cc [new file with mode: 0644]
source/fe/fe_values_inst6.cc [new file with mode: 0644]

index 5aba7b40a07b4f7ea70d7f231773113dbc9c74d9..b77b0257e406579c59ee7595ae48e6fbc493aed8 100644 (file)
@@ -63,6 +63,10 @@ SET(_unity_include_src
 SET(_separate_src
   fe_values.cc
   fe_values_inst2.cc
+  fe_values_inst3.cc
+  fe_values_inst4.cc
+  fe_values_inst5.cc
+  fe_values_inst6.cc
   mapping_fe_field.cc
   mapping_fe_field_inst2.cc
   fe_tools_interpolate.cc
index 686d6c35c98999aa8f745addd5bf550bef664292..197967bb2ab3fd5b69aeed3f1fbeb617d5e94615 100644 (file)
@@ -4579,7 +4579,7 @@ void FESubfaceValues<dim,spacedim>::do_reinit (const unsigned int face_no,
 
 
 /*------------------------------- Explicit Instantiations -------------*/
-#define SPLIT_INSTANTIATIONS_COUNT 2
+#define SPLIT_INSTANTIATIONS_COUNT 6
 #ifndef SPLIT_INSTANTIATIONS_INDEX
 #define SPLIT_INSTANTIATIONS_INDEX 0
 #endif
diff --git a/source/fe/fe_values_inst3.cc b/source/fe/fe_values_inst3.cc
new file mode 100644 (file)
index 0000000..fa934d3
--- /dev/null
@@ -0,0 +1,17 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2018 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+#define SPLIT_INSTANTIATIONS_INDEX 2
+#include "fe_values.cc"
diff --git a/source/fe/fe_values_inst4.cc b/source/fe/fe_values_inst4.cc
new file mode 100644 (file)
index 0000000..27dac84
--- /dev/null
@@ -0,0 +1,17 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2018 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+#define SPLIT_INSTANTIATIONS_INDEX 3
+#include "fe_values.cc"
diff --git a/source/fe/fe_values_inst5.cc b/source/fe/fe_values_inst5.cc
new file mode 100644 (file)
index 0000000..a6f595b
--- /dev/null
@@ -0,0 +1,17 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2018 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+#define SPLIT_INSTANTIATIONS_INDEX 4
+#include "fe_values.cc"
diff --git a/source/fe/fe_values_inst6.cc b/source/fe/fe_values_inst6.cc
new file mode 100644 (file)
index 0000000..f6158ff
--- /dev/null
@@ -0,0 +1,17 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2018 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+#define SPLIT_INSTANTIATIONS_INDEX 5
+#include "fe_values.cc"

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.