Я использую модуль многопроцессорности python для запуска одиночного процесса на нескольких ядрах, но я хочу параллельно запустить пару независимых процессов. Для ex - Process one анализирует большой файл, обрабатывает два шаблона поиска в разных файлах, а процесс 3 выполняет некоторые вычисления; могут ли выполняться параллельно все три разных обработанных файла с разными параметрами?Выполнять отдельные процессы параллельно - Python
def Process1(largefile):
Parse large file
runtime 2hrs
return parsed_file
def Process2(bigfile)
Find pattern in big file
runtime 2.5 hrs
return pattern
def Process3(integer)
Do astronomical calculation
Run time 2.25 hrs
return calculation_results
def FinalProcess(parsed,pattern,calc_results):
Do analysis
Runtime 10 min
return final_results
def main():
parsed = Process1(largefile)
pattern = Process2(bigfile)
calc_res = Process3(integer)
Final = FinalProcess(parsed,pattern,calc_res)
if __name__ == __main__:
main()
sys.exit()
В приведенном выше коде псевды Process1, Process2 и одиночный процессе 3 основной процесс они не то есть могут работать на нескольких процессорах. Эти процессы запускаются последовательно и принимают 2 + 2,5 + 2,25 часа = 6,75 часа. Можно ли параллельно запускать эти три процесса? Чтобы они работали одновременно на разных процессорах/ядрах, и когда большая часть времени (Process2) заканчивается, мы переходим к Final Process.
Я был бы очень признателен за вашу помощь.
AK
Я не понимаю. Пожалуйста, объясни. – Veedrac
Вы посмотрели на модуль 'subprocess'? –
Возможно, вы захотите создать либо [поток] (http://docs.python.org/2/library/threading.html), либо [дочерний процесс] (http://docs.python.org/2/ library /subprocess.html) для обработки данных. –