You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This function is a huge bottleneck in the resolver when there are multiple products to compute. A good amount of time is used to compute products. This can be avoided if we enable the cache-multiplication feature, but this is only feasible for finite-dimensional algebras. One possible way to improve this is to use a fixed-size cache for infinite dimensional algebras to cache the multiplications that happen the most often.
Even if cache-multiplication is enabled, this function is still pretty slow. I haven't profiled this properly to figure out the bottleneck.
ext-websocket
compute_edges
The compute_edges function computes the structlines that we have to display on every page. Mathematically, what it does is that it expresses the matrix for the product in terms of the E_r page basis for each r. This function is the main bottleneck in ext-websocket.
It is not entirely clear to me why this function is so slow. One possibility is just that there are many products to compute. Another possibility is that grouping the products by product type instead of the bidegree makes it slow if we want to compute the products with a fixed bidegree.
The text was updated successfully, but these errors were encountered:
dalcde
changed the title
Speed issues
Speed issues megathread
Sep 5, 2019
Also, using unsafe functions to access elements of arrays without checking array bounds in the performance critical functions and in general skip whatever automatic checking Rust does would probably be a good idea. If we do this, we might also add more unit tests to reduce the probability of weird edge case errors.
rust_ext
extend_maps_to_unit
This function is a huge bottleneck in the resolver when there are multiple products to compute. A good amount of time is used to compute products. This can be avoided if we enable the
cache-multiplication
feature, but this is only feasible for finite-dimensional algebras. One possible way to improve this is to use a fixed-size cache for infinite dimensional algebras to cache the multiplications that happen the most often.Even if
cache-multiplication
is enabled, this function is still pretty slow. I haven't profiled this properly to figure out the bottleneck.ext-websocket
compute_edges
The
compute_edges
function computes the structlines that we have to display on every page. Mathematically, what it does is that it expresses the matrix for the product in terms of the E_r page basis for each r. This function is the main bottleneck inext-websocket
.It is not entirely clear to me why this function is so slow. One possibility is just that there are many products to compute. Another possibility is that grouping the products by product type instead of the bidegree makes it slow if we want to compute the products with a fixed bidegree.
The text was updated successfully, but these errors were encountered: