Если вы не хотите, чтобы ваша программа использовала многопоточные библиотеки или методы, вы можете попытаться разбить свою работу на несколько независимых блоков.Затем запустите несколько копий вашей программы ... каждая из которых будет назначена отдельному чанку, указанному с помощью получения различных параметров командной строки.
Что касается просто общего улучшения производительности программы ... существуют инструменты профилирования, которые могут помочь вам ускорить или найти узкие места в использовании памяти, ввод / вывод, ЦП:
https://stackoverflow.com/questions/tagged/c%2b%2b%20profiling
Не поможет разделить вашу работу по ядрам, но если вы сможете получить ускорение в 8 раз в алгоритме, который может помочь больше, чем многопоточность на 8 ядрах.Просто что-то еще, чтобы рассмотреть.