Use uma fila de trabalhos. Provavelmente, o que você fará é configurar uma fila de tarefas com um thread por núcleo. Isso permite que todos os seus trabalhos façam fila em uma operação + se um trabalho levar mais tempo do que outros, os outros estarão em execução em outros tópicos.
Existem muitas maneiras de conseguir isso.
Aqui estão algumas pesquisas que podem ajudar você.