OpenMP startup code for benchmarking? -
i'm attempting benchmark speedup openmp aware code. i'm using crypto++ library, , rabin-williams signature class. class implements bernstein's tweaked roots, , has following code:
modulararithmetic modp(m_p), modq(m_q); #pragma omp parallel sections { #pragma omp section m_pre_2_9p = modp.exponentiate(2, (9 * m_p - 11)/8); #pragma omp section m_pre_2_3q = modq.exponentiate(2, (3 * m_q - 5)/8); #pragma omp section m_pre_q_p = modp.exponentiate(m_q, m_p - 2); }
from crypto++'s perspective, need following:
rwss<p1363_emsa2, sha256>::signer signer(...); signer.precompute(); // ready sign
after perform precompute()
, crypto++ ready go. can sign away.
i understand openmp has startup, , has things dynamic teams. tried reference previous benchmarking papers, performance evaluation of openmp benchmarks on intel's quad core processors, don't call out did. grepped sources epcc openmp micro-benchmark suite, not call omp_set_dynamic
remove associated overhead.
what steps should perform openmp clean room-like state i'm measuring speedup of big integer/signing operations, , not spending time in openmp startup or shutdown code; or spending time growing or shrinking team? do openmp?
Comments
Post a Comment