So, clang's modules are quite similar to clangs precompiled headers, especially the "chained" pchs. With PCH you have to wait on the serial PCH compilation step before you can get any parallelism, with modules you can compile each part of the "PCH" in parallel and anything using some subset of your dependencies can get started without waiting on things it doesn't use.
Header units are basically chained PCHs. Sadly they are hard to build correctly at the moment.
Header units are basically chained PCHs. Sadly they are hard to build correctly at the moment.