The async mode will eventually be for both populate and workload.  I only have populate implemented at the moment.  Populate threads is still used and relevant.  For async, it still describes how many threads are feeding the data.  So we have M `populate_threads` enqueueing async ops for N `async_threads`.