Comments (9)
Partially addressed in #176
from spectre.
Addressed again in #441
from spectre.
Link time is addressed in #475
The major known outstanding problem is the libstdc++ implementation of std::tuple
from spectre.
We use IWYU now to help with this
from spectre.
Still need to:
- optimize PCH
- not use std::tuple
- Split actions into tpp files that are compiled separately. For this we need to make sure we don't create
db::DataBox
because the construction of Deferred classes is (very surprisingly!) expensive. - Improve compilation time of
Deferred
anddb::create
. Most expensive part ofdb::create
is by far theDeferred
construction, second most is the splitting out of compute items and simple items from the list of all items. We should probably keep those separate and pass in two typelists as template parameters todb::DataBox
from spectre.
from spectre.
@macedo22 has done some profiling and it looks like option parsing is taking up a huge amount (50%) of compilation resources in executables
from spectre.
from spectre.
We recently found that src/NumericalAlgorithms/Spectral/Projection.cpp
compiles quite slowly. This is most likely because of how we've implement StaticCache
, which is recursive and does a lot of tensor products of different functions. We could:
- Store a
std::vector
of function pointers and have a function that maps the arguments tooperator()
into the vector. Each of the functions whose pointers are in thestd::vector
must handle thestatic
-ness to guarantee thread safety internally. Thestd::vector
is created in the constructor of theStaticCache
. - We might be able to move the template parameters from
StaticCache
onto the constructor in this case. - We could try use variadic
auto
to do this. Thecomputer
function is whose function pointers are stored in thestd::vector
. E.g.
template <auto... Args>
const T& computer() const {
static T blah = generator_(Args...);
return blah;
}
- brigand likely has some facilities of doing tensor products of lists that we could hook into and is likely much faster than what we are doing now.
discussed with @wthrowe and @kidder
from spectre.
Related Issues (20)
- Conform initial BBH inspiral excisions to initial apparent horizon shapes
- SolveXcts with debug symbols has high memory usage during compilation HOT 1
- Segfault in support.Pipelines.Bbh.Inspiral HOT 1
- Random failure of Unit.Utilities.FractionUtilities.ContinuedFraction
- Add test for paraview scripts that need fake bbh data.
- Scheduler requires mpi use on head node HOT 4
- Post-SXScon cleanup
- Schedule pure Python jobs
- Make horizon finder faster for GPUs HOT 1
- Spherical shell support
- Use different favicon for dark-mode
- Add clang build to CaltechHPC
- Run documentation notebooks on CI
- Remove inv_jacobian functions from maps
- Format CLI help with Rich
- Add action that does consistency/sanity checks on time stepper history
- Add interpolation observers without overhead of interpolation framework
- Better Error Message for BBH Headon ID HOT 1
- ICERM CCE Feedback HOT 1
- Random failure in Unit.Evolution.DG.ApplyBoundaryCorrections
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spectre.