Parallel Generation of Automorphism keys


I was running the bootstrapping examples for CKKS and looking through the code that generates the required keys. I came across the following code in openfhe-development/src/pke/lib/schemebase/base-leveledshe.cpp:

In the method
std::shared_ptr<std::map<usint, EvalKey<Element>>> LeveledSHEBase<Element>::EvalAutomorphismKeyGen( const PrivateKey<Element> privateKey, const std::vector<usint>& indexList) const the for loop that does most of the work is run sequentially and tagged with comment
// TODO pragma omp currently gives concurrent error // #pragma omp parallel for if (indicesToGenerate.size() >= 4).

I couldn’t reproduce the issue. Is there some code that reproduces the issue?

I don’t see what could cause a concurrent error here. We will look into this and re-enable the loop parallelization unless we run into an issue.