MultiExponentiation takes as parameter a ecc.MultiExpConfig{NbTasks:...} .
The MultiExponentiation spawn up a number of go routines that depends on the number of chunks to process, which itself parameter choice (window size to partition the scalars).
If provided NbTasks is larger than what the algorithm would spawn, the strategy is to split the MultiExponentiation in 2, and sum the results.
Now, we don't handle the case where NbTasks is smaller -> could be easily fixed by adding a sync.WaitGroup in the inner msm and allow for more fine tuning in upper layers doing fine-grained resource allocations.
MultiExponentiationtakes as parameter aecc.MultiExpConfig{NbTasks:...}.The
MultiExponentiationspawn up a number of go routines that depends on the number of chunks to process, which itself parameter choice (window size to partition the scalars).If provided
NbTasksis larger than what the algorithm would spawn, the strategy is to split theMultiExponentiationin 2, and sum the results.Now, we don't handle the case where
NbTasksis smaller -> could be easily fixed by adding async.WaitGroupin the inner msm and allow for more fine tuning in upper layers doing fine-grained resource allocations.