Управление и мониторинг задач в скрипте python через dask - PullRequest
0 голосов
/ 29 мая 2020

У меня есть папка проекта с множеством подпапок (скажем, 100). Сценарий python переходит к каждой из этих подпапок, вызывает исполняемый файл, записывает результаты в выходной файл и переходит к следующей подпапке.

Вот мой python скрипт

from dask_jobqueue import PBSCluster   
cluster = PBSCluster()
cluster.scale(jobs=3)  

from dask.distributed import Client
client = Client(cluster)
...

r_path='/path/to/project/folder'


def func():
    f = open('out', 'w')
   (subprocess.call(["/path/to/executable/file"], stdout=f))

for root, dirs, files in os.walk("."):
    for name in dirs:
        os.chdir(r_path+'/'+str(name))
        func()

В проекте

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

Может кто-нибудь дайте мне знать, можно ли использовать dask для этого?

1 Ответ

1 голос
/ 13 июня 2020

Да, для этого можно использовать Dask. Вероятно, вы захотите прочитать документацию по Dask delayed или Dask Futures.

https://docs.dask.org/en/latest/delayed.html

https://docs.dask.org/en/latest/futures.html

...