Это проблемы программирования на низком уровне
Если бы всё было так просто
Пусть у нас есть крутой проц с 80-ю ядрами. На нем стоит вебсервер, БД и форум. На каждый запрос к формуму поражается новый поток апача который его обслуживает. Вроде бы всё хорошо.
Но вот запись в БД принципиально однополчанина. В результате все 80 - апачей будут стоять в очереди к одной БД. Так что 80 ядер или 40 - разницы никакой.
Или, например, пишите на Питоне некий параллельный софт, а тут бац, и
Global Interpreter Lock. В результате вроде и параллельно, но не очень.
Так что уровень самый что ни на есть высокий.
PS: А 3Д графика (OpenGL\Direct3D) принципиально не паралелится потоками. Путём танцев с бубном можно рендрить в несколько контектсов и их объединять, но нужно быть сильным шаманом.