celestiaorg / rsmt2d

Go implementation of two dimensional Reed-Solomon merkle tree data availability scheme.
Apache License 2.0
162 stars 80 forks source link

Benchmark computeRoots function for large square sizes #303

Closed staheri14 closed 8 months ago

staheri14 commented 8 months ago

In the context of the big blonk workstream, and based on the CPU profiling data, it has been hypothesized that the computeRoots function accounts for 30% of CPU usage. This was observed during an experiment conducted in testground, which involved block sizes ranging from 2 to 100 MB. To validate the duration this function takes, the computeRoots function must be benchmarked. If a benchmark already exists, it should be expanded to include larger data square sizes to accurately assess its performance.

staheri14 commented 8 months ago

Including more context: below is the flame graph associated with the cpu profiling data mentioned in the description of the issue:

Screenshot 2024-03-04 at 5 22 12 PM

Wondertan commented 8 months ago

Most of the time seem to be spend on https://github.com/celestiaorg/nmt/issues/216