Параллельные задачи ноутбука Jupyter с concurrent.futures

Я пытаюсь выполнять параллельные задачи в блокноте Jupyter. Надеясь, что кто-то может сказать мне, что я должен делать или чему я должен научиться.

В моем блокноте Jupyter я перебирал аргумент от 1 до 10, который передавался другому скрипту py. Я хочу, чтобы мой компьютер выполнял каждый аргумент с помощью одной единственной задачи. Я считаю, что с этим я ускорил бы эффективность.

Вот что у меня есть в блокноте Jupyter:

import os
from time import time
start_1 = time()
# parameters
file = 'Tool_1.py' # the single py script which I would run in a single loop
file_1 = 'my_data.csv'
skiprows = 4
stop_loss_point_init = -50
stop_gain_point = 800
move_step = 100
move_far = 50 
# loop body
for window in range(1, 11): # I would loop window from 1 to 10
    start_2 = time()
    cmd = 'python %s %s %d %d %d %d %d %d' % (file,file_1,skiprows,window,stop_loss_point_init,stop_gain_point,move_step,move_far)
    print('Running '+str(cmd))
    os.system(cmd)
    output_file = 'output_file.csv'
    end_2 = time()
    print(output_file)
    print("Exported in {:.2f} minutes.".format((end_2 - start_2)/60))

end_1 = time()
print("Completed in {:.2f} minutes.".format((end_1 - start_1)/60))

person Chasen Li    schedule 16.11.2017    source источник


Ответы (1)


Я думаю, что самым простым решением является ipyparallel. Вы можете создавать механизмы внутри Jupyter-Notebook для выполнения параллельных вычислений.

os.system() всегда ожидает завершения дочернего процесса, поэтому его не следует использовать для параллельных вычислений. Лучшим решением было бы определить метод и использовать метод ipyparalles map(), как показано в этом примере< /а>.

person Schwub    schedule 16.11.2017