Closed hugary1995 closed 4 months ago
This speeds up compilation by 20%. I guess with clang IWYU we could go futher.
63 tests ±0 39 :white_check_mark: ±0 2s :stopwatch: ±0s 1 suites ±0 24 :zzz: ±0 1 files ±0 0 :x: ±0
Results for commit 8f4030ad. ± Comparison against base commit 067f935a.
:recycle: This comment has been updated with latest results.
63 tests ±0 39 :white_check_mark: ±0 2s :stopwatch: -1s 1 suites ±0 24 :zzz: ±0 1 files ±0 0 :x: ±0
Results for commit 8f4030ad. ± Comparison against base commit 067f935a.
:recycle: This comment has been updated with latest results.
3 files ±0 3 suites ±0 52s :stopwatch: -1s 490 tests ±0 490 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0 3 065 runs ±0 3 065 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0
Results for commit 8f4030ad. ± Comparison against base commit 067f935a.
:recycle: This comment has been updated with latest results.
3 files ±0 3 suites ±0 1m 4s :stopwatch: -3s 490 tests ±0 490 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0 3 065 runs ±0 3 065 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0
Results for commit 8f4030ad. ± Comparison against base commit 067f935a.
:recycle: This comment has been updated with latest results.
3 files ±0 3 suites ±0 2m 5s :stopwatch: -2s 490 tests ±0 490 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0 3 067 runs ±0 3 067 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0
Results for commit 8f4030ad. ± Comparison against base commit 067f935a.
:recycle: This comment has been updated with latest results.
3 files ±0 3 suites ±0 2m 16s :stopwatch: ±0s 490 tests ±0 490 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0 3 067 runs ±0 3 067 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0
Results for commit 8f4030ad. ± Comparison against base commit 067f935a.
:recycle: This comment has been updated with latest results.
3 files ±0 3 suites ±0 50s :stopwatch: -1s 490 tests ±0 490 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0 3 065 runs ±0 3 065 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0
Results for commit 8f4030ad. ± Comparison against base commit 067f935a.
:recycle: This comment has been updated with latest results.
3 files ±0 3 suites ±0 3m 0s :stopwatch: +43s 490 tests ±0 490 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0 3 067 runs ±0 3 067 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0
Results for commit 8f4030ad. ± Comparison against base commit 067f935a.
:recycle: This comment has been updated with latest results.
3 files ±0 3 suites ±0 1m 5s :stopwatch: -22s 490 tests ±0 490 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0 3 065 runs ±0 3 065 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0
Results for commit 8f4030ad. ± Comparison against base commit 067f935a.
:recycle: This comment has been updated with latest results.
3 files ±0 3 suites ±0 1m 58s :stopwatch: -6s 490 tests ±0 490 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0 3 067 runs ±0 3 067 :white_check_mark: ±0 0 :zzz: ±0 0 :x: ±0
Results for commit 8f4030ad. ± Comparison against base commit 067f935a.
:recycle: This comment has been updated with latest results.
This is marked as draft as MOOSE is not ready for this change.
PR Preview Action v1.4.7
:---:
:rocket: Deployed preview to https://reverendbedford.github.io/neml2/pr-preview/pr-137/
on branch gh-pages
at 2024-06-22 15:14 UTC
No syntax error, good job! :purple_heart:
35% speed up with clang14 using 6 cores.
Coverage after merging iwyu into main will be
87.37% |
---|
File | Stmts | Branches | Funcs | Lines | Uncovered Lines |
---|---|---|---|---|---|
include/neml2/base | |||||
CrossRef.h | 34.21% | 100% | 31.37% | 58.33% | 105, 107–108, 72, 79 |
DependencyResolver.h | 86.13% | 100% | 88.24% | 85.83% | 219, 221–222, 226, 229–231, 264, 291, 303, 313–314, 344, 346–347, 349–350 |
Factory.h | 39.42% | 100% | 24.69% | 91.30% | 148, 156 |
NEML2Object.h | 45.45% | 100% | 20% | 66.67% | 49, 51, 62, 65 |
OptionCollection.h | 0% | 100% | 0% | 0% | 40, 49 |
OptionSet.h | 35.43% | 100% | 32.60% | 57.69% | 128, 134, 137, 143, 149, 214, 216–217, 379, 381–383, 385, 61, 66, 79, 81, 85, 89, 91, 93, 95 |
Registry.h | 80.04% | 100% | 79.81% | 100% | |
Storage.h | 56.10% | 100% | 39.13% | 77.78% | 147–148, 150, 177 |
include/neml2/drivers | |||||
Driver.h | 0% | 100% | 0% | 0% | 56 |
TransientDriver.h | 85.71% | 100% | 100% | 75% | 151 |
include/neml2/misc | |||||
error.h | 30.81% | 100% | 28.88% | 63.64% | 37–38, 40, 94, 96–99 |
math.h | 100% | 100% | 100% | 100% | |
parser_utils.h | 56.07% | 100% | 46.34% | 88% | 37–38, 40 |
utils.h | 56.40% | 100% | 47.30% | 77.78% | 173, 239, 241–246, 267, 302, 304–307 |
include/neml2/models | |||||
BufferStore.h | 34.43% | 100% | 18.92% | 58.33% | 113, 115, 117–121, 133, 147, 151 |
ComposedModel.h | 100% | 100% | 100% | 100% | |
Data.h | 100% | 100% | 100% | 100% | |
Interpolation.h | 69.81% | 100% | 55.56% | 100% | |
LinearInterpolation.h | 20% | 100% | 8.57% | 100% | |
Model.h | 85.19% | 100% | 75% | 89.47% | 116, 75 |
NonlinearParameter.h | 10.53% | 100% | 5.56% | 100% | |
ParameterStore.h | 21.43% | 100% | 5.41% | 52.63% | 132, 134, 136–140, 148, 152 |
VariableStore.h | 62.45% | 100% | 54.59% | 89.47% | 236, 238–239, 260, 91, 97 |
include/neml2/models/crystallography | |||||
CrystalGeometry.h | 0% | 100% | 0% | 0% | 90, 92 |
MillerIndex.h | 100% | 100% | 100% | 100% | |
crystallography.h | 100% | 100% | 100% | 100% | |
include/neml2/solvers | |||||
Newton.h | 100% | 100% | 100% | 100% | |
NonlinearSystem.h | 66.67% | 100% | 66.67% | 66.67% | 66 |
include/neml2/tensors | |||||
BatchTensorBase.h | 59.80% | 100% | 44.68% | 93.65% | 212, 214, 256, 258 |
FixedDimTensor.h | 26.44% | 100% | 19.32% | 65.63% | 152, 156, 168, 171, 176, 178, 183, 188, 66, 89, 91 |
LabeledAxis.h | 0% | 100% | 0% | 0% | 142, 67, 72, 74–75, 77 |
LabeledAxisAccessor.h | 72.50% | 100% | 65.38% | 85.71% | 46, 77 |
LabeledTensor.h | 56.04% | 100% | 46.88% | 77.78% | 108, 112, 127, 176, 178–179 |
Scalar.h | 44% | 100% | 34.55% | 70% | 82, 84–88 |
TensorValue.h | 14% | 100% | 10.87% | 50% | 39, 63, 65, 75 |
Transformable.h | 0% | 100% | 0% | 0% | 43 |
Variable.h | 40% | 100% | 31.06% | 82% | 101, 107, 43–47, 49, 51 |
VecBase.h | 80.95% | 100% | 50% | 100% | |
src/neml2/base | |||||
CrossRef.cxx | 83.87% | 100% | 75% | 100% | |
Factory.cxx | 100% | 100% | 100% | 100% | |
HITParser.cxx | 100% | 100% | 100% | 100% | |
NEML2Object.cxx | 91.67% | 100% | 100% | 90% | 35 |
OptionCollection.cxx | 100% | 100% | 100% | 100% | |
OptionSet.cxx | 97.67% | 100% | 100% | 96.88% | 35 |
Parser.cxx | 66.67% | 100% | 100% | 64.29% | 39–42, 54 |
Registry.cxx | 75% | 100% | 66.67% | 76.92% | 38, 40–41, 56, 58–59 |
src/neml2/drivers | |||||
Driver.cxx | 91.67% | 100% | 100% | 90% | 39 |
TransientDriver.cxx | 86.60% | 100% | 100% | 85.39% | 142, 239–240, 245–247, 250–251, 255–259, 261–266, 269, 274–278, 99 |
src/neml2/drivers/solid_mechanics | |||||
LargeDeformationIncrementalSolidMechanicsDriver.cxx | 32.39% | 100% | 25% | 32.84% | 100–102, 104–105, 109, 111, 113, 117, 119, 121, 125, 127–128, 130–131, 133–134, 137, 139–143, 63, 65–66, 68–74, 76, 78–79, 81, 83–84, 91–92, 94–95, 98 |
SolidMechanicsDriver.cxx | 73.58% | 100% | 100% | 72.55% | 104, 106–107, 117, 148, 150–151, 154, 156, 158, 161, 163, 168–169, 171–173, 175, 177–178, 180, 194–196, 200–202, 77 |
src/neml2/misc | |||||
error.cxx | 100% | 100% | 100% | 100% | |
math.cxx | 97.79% | 100% | 96.55% | 98.03% | 255, 334, 336 |
parser_utils.cxx | 98.46% | 100% | 100% | 98.18% | 73 |
types.cxx | 100% | 100% | 100% | 100% | |
utils.cxx | 89.47% | 100% | 100% | 86.67% | 44, 52 |
src/neml2/models | |||||
ArrheniusParameter.cxx | 97.14% | 100% | 100% | 96.88% | 53 |
BackwardEulerTimeIntegration.cxx | 94.12% | 100% | 77.78% | 97.62% | 56 |
BufferStore.cxx | 33.33% | 100% | 33.33% | 33.33% | 36, 38, 40, 44, 46, 48–50 |
ComposedModel.cxx | 95.31% | 100% | 100% | 94.96% | 149, 151, 195, 56, 86, 92 |
ConstantParameter.cxx | 52.11% | 100% | 40.74% | 88.24% | 41, 59 |
CopyVariable.cxx | 35.62% | 100% | 33.33% | 42.11% | 46, 49, 51–52, 54, 58, 60–61, 63–64, 70 |
Data.cxx | 90% | 100% | 100% | 87.50% | 35 |
ForceRate.cxx | 98% | 100% | 100% | 97.73% | 49 |
ForwardEulerTimeIntegration.cxx | 97.67% | 100% | 100% | 97.30% | 51 |
ImplicitUpdate.cxx | 98.39% | 100% | 100% | 98.28% | 47 |
LinearInterpolation.cxx | 61.18% | 100% | 40.74% | 96.77% | 42 |
Model.cxx | 91.25% | 100% | 94.44% | 90.80% | 142–145, 178–180, 287, 289–292, 298, 423, 425–427, 429–430, 52, 80–81, 89, 97 |
NonlinearParameter.cxx | 61.90% | 100% | 55.56% | 100% | |
ParameterStore.cxx | 48.08% | 100% | 22.73% | 66.67% | 101, 47, 49, 51–53, 66, 93, 95–96 |
RotationMatrix.cxx | 95.83% | 100% | 100% | 95.24% | 45 |
SR2Invariant.cxx | 97.14% | 100% | 100% | 97.01% | 131, 48 |
StateRate.cxx | 94% | 100% | 66.67% | 97.73% | 49 |
SumModel.cxx | 86.96% | 100% | 100% | 85% | 75–76, 79, 81–83 |
VariableStore.cxx | 94.25% | 100% | 91.67% | 94.67% | 165–166, 63, 65 |
WR2ExplicitExponentialTimeIntegration.cxx | 97.37% | 100% | 100% | 97.14% | 47 |
WR2ImplicitExponentialTimeIntegration.cxx | 97.56% | 100% | 100% | 97.37% | 54 |
src/neml2/models/crystallography | |||||
CrystalGeometry.cxx | 98.46% | 100% | 100% | 98.25% | 198, 61 |
CubicCrystal.cxx | 93.75% | 100% | 100% | 92.86% | 51 |
MillerIndex.cxx | 100% | 100% | 100% | 100% | |
crystallography.cxx | 98.28% | 100% | 100% | 98.08% | 142 |
src/neml2/models/crystallography/user_tensors | |||||
FillMillerIndex.cxx | 94.44% | 100% | 100% | 93.33% | 44 |
SymmetryFromOrbifold.cxx | 93.33% | 100% | 100% | 92.31% | 47 |
src/neml2/models/solid_mechanics | |||||
AssociativeIsotropicPlasticHardening.cxx | 96.97% | 100% | 100% | 96.67% | 51 |
AssociativeKinematicPlasticHardening.cxx | 97.06% | 100% | 100% | 96.77% | 53 |
AssociativePlasticFlow.cxx | 96.67% | 100% | 100% | 96.30% | 50 |
ChabochePlasticHardening.cxx | 97.83% | 100% | 100% | 97.67% | 65 |
Eigenstrain.cxx | 90.91% | 100% | 100% | 88.89% | 38 |
ElasticStrain.cxx | 97.14% | 100% | 100% | 96.88% | 53 |
Elasticity.cxx | 96% | 100% | 100% | 95.65% | 52 |
FlowRule.cxx | 92.31% | 100% | 100% | 90.91% | 40 |
The one-stop shop <torch/torch.h> is convenient but significantly slows down compilation. However, including exactly only what we need from torch is too much effort and too unstable (when torch internal API changes).
A better middle ground is to include torch headers on-demand by "modules". The "modules" are listed in <torch/all.h>.
This patch should speed up compilation by quite a lot.
ref #156