Если вы готовы установить пакет с открытым исходным кодом, вам следует подумать о Ray , который из кластерных структур Python, вероятно, является вариантом, наиболее близким к однопоточному Python.Это позволяет вам распараллеливать как функции (как задачи), так и классы с состоянием (как акторы), и автоматически выполняет всю доставку и сериализацию данных, а также распространение сообщений об исключениях.Он также обеспечивает гибкость, аналогичную обычному Python (акторы могут передаваться, задачи могут вызывать другие задачи, могут быть произвольные зависимости данных и т. Д.).Подробнее об этом в документации .
В качестве примера, вот как вы бы сделали свой пример многопроцессорной карты в Ray:
import ray
ray.init()
@ray.remote
def mapping_function(input):
return input + 1
results = ray.get([mapping_function.remote(i) for i in range(100)])
API немногонемного отличается от многопроцессорного API Python, но должен быть проще в использовании.Существует пошаговое руководство по , в котором описывается обработка зависимостей от данных, акторов и т. Д.
Вы можете установить Ray с помощью "pip install ray", а затем выполнить приведенный выше код наотдельный узел, или также легко настроить кластер, см. Поддержка облаков и Поддержка кластеров
Отказ от ответственности: я один из разработчиков Ray.