Точное количество потоков не будет таким ограничивающим фактором, но иногда для этих вопросов стоит перегружать, скажем, использовать 2 потока на физическое ядро.
Но настоящим узким местом будет ввод-вывод, запись данных в ОЗУ. Вы должны позаботиться о том, чтобы данные, которые должны быть заменены, никогда не читались до того, как вы их сотрете. Затем вы должны убедиться, что записи в память появляются большими порциями и (если возможно) как «сквозные», в монпроцессорном ЦП есть инструкции для более поздних версий.
Обычно что-то вроде memcpy
с буфером фиксированного размера (некоторые страницы), который содержит шаблон, который вы хотите увидеть, должно быть достаточно хорошо оптимизировано.