То, что вы на самом деле описываете, это очередь на кражу работы.Это началось с языка программирования Cilk (http://en.wikipedia.org/wiki/Cilk) и продолжается с Cilk ++, который является частью компилятора Intel. Вы можете получить бесплатную ознакомительную версию для Linux.
Intel TBB также имеет очередь для кражи работы иподдерживает автоматическое разделение задач, плюс дополнительный контроль, если вы хотите разделить их самостоятельно. OpenMP не имеет такого контроля, но я не думаю, что это невозможно сделать.
Есть также qthreads из Sandia (https://code.google.com/p/qthreads/) хороший пакет, который позволяет вам иметь планировщик M: N (потоки уровня пользователя M в потоках ОС N).