Python (по крайней мере, стандартный CPython) является особым случаем, потому что он не будет запускать более одного потока за раз, поэтому, если вы выполняете обработку чисел на нескольких ядрах, тогда чистый Python не является лучший выбор.
В CPython при выполнении кода на Python выполняется только один поток. Он защищен глобальной блокировкой интерпретатора 1004 *. Если вы собираетесь IO, спите или ждете с другой стороны, тогда потоки Python имеют смысл.
Если вы работаете с числами, то, возможно, вы все равно захотите сделать это в C-расширении. В противном случае многопроцессорная библиотека позволяет чистому коду Python использовать преимущества нескольких ядер.
В общем случае, не на языке Python: на вопрос невозможно ответить, потому что он зависит от:
- Будут ли вообще быстрее выполняться задачи в новом потоке>
- Какова стоимость создания новой темы?
- Какую работу содержат задания? (Связанный с вводом-выводом, связанный с процессором, связанный с сетью, связанный с пользователем)
- Насколько эффективна ОС при планировании потоков?
- Сколько общих данных / блокировок нужно для выполнения задач?
- Какие существуют зависимости между задачами?
Если ваши задачи независимы и привязаны к процессору, то лучше всего использовать одно ядро на процессор - но в python вам понадобится несколько процессов, чтобы воспользоваться преимуществами.