← Back to team overview

kicad-developers team mailing list archive

Removing OpenMP

 

Hi All-

I've just finalized the process of removing OpenMP from our codebase.  See
https://lists.launchpad.net/kicad-developers/msg34520.html for some
discussion as to why this was needed.

TLDR; MacOS doesn't have OpenMP.  Rather than segment our codebase to use
different kinds of thread pooling, I've standardized the threading into
std::thread.  This includes connectivity, zone filling and 3d-viewer.

There are a few side benefits to those not on Mac as well.  Notably, OpenMP
was stalling during the ratsnest/connectivity routines as the different
threads waited for the pool to clear.  Moving to the std::threads speeds
this up enormously.

There was some concern about the overhead of multiple threads as opposed to
a thread pool.  While I don't see any problematic effects under Mac or
Linux, I'd like to hear people's experiences on MSW and whether there are
drawbacks/problems to this approach.

Best-
Seth

Follow ups