Самый быстрый способ запуска сценариев parallalel python - PullRequest
0 голосов
/ 02 апреля 2020

Какой самый быстрый способ запуска нескольких сценариев python одновременно?

Я нашел два метода, но как они будут сравниваться (преимущества и недостатки)? и есть ли более быстрый способ?

метод 1) с использованием bash сценариев:

python pre_process.py --with_some_different_option &
python pre_process.py --with_some_different_option &
... n times

метод 2) с использованием python:

from multiprocessing import Pool
pool = Pool(n) # or whatever number of cores
df_list = [df1, df2, df3, df4, df5]
_= pool.map(pre_process_func, df_list)

В качестве примечания я пытаюсь предварительно обработать некоторые pandas фреймы данных (загрузить, обработать, записать)

1 Ответ

0 голосов
/ 02 апреля 2020

Когда дело касается вопросов производительности, это всегда реальное сравнение с фактической реализацией и наборами данных, которые наиболее важны.

В этой ситуации это не имеет значения с точки зрения производительности. И параллельные задания, и multiprocessing используют системные вызовы, такие как fork(2) и execve(2) за занавесом. Вы можете игнорировать накладные расходы в случае python lib. Реальный вопрос в том, где вы найдете логику распараллеливания c, подходящую для ваших нужд - на уровне управления заданиями в вашей оболочке или, скорее, на стороне приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...