Вы уже можете разбить программу на Python на несколько процессов. ОС уже распределит ваши процессы по всем ядрам.
Сделай это.
python part1.py | python part2.py | python part3.py | ... etc.
ОС обеспечит, чтобы эта часть использовала как можно больше ресурсов. Вы можете легко передать информацию по этому конвейеру, используя cPickle
на sys.stdin
и sys.stdout
.
Без особого труда это часто может привести к резкому ускорению.
Да - для ненавистников - можно построить алгоритм, настолько замученный, что его можно не сильно ускорить. Однако это часто дает огромные преимущества при минимальной работе.
А.
Для этой цели реструктуризация будет точно соответствовать реструктуризации, необходимой для максимального параллелизма потоков. Так. Начните с параллелизма процессов без общего доступа, пока не сможете доказать, что совместное использование большего количества данных поможет, а затем перейдите к более сложному параллелизму потоков с общим доступом.