AzureML ParallelRunStep 仅在一个节点上运行
AzureML ParallelRunStep runs only on one node
我有一个推理管道,其中包含一些 PythonScriptStep,中间有一个 ParallelRunStep。一切正常,除了在 ParallelRunStep 期间所有小批量都在一个节点上 运行,无论我在 node_count
配置参数中放置了多少个节点。
集群中的所有节点似乎都已启动并运行正在运行,根据日志,init()
函数已在它们上多次运行。深入研究我在 sys/error/10.0.0.* 中看到的日志,除了正在工作的那个以外,所有的工人都在说:
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/batch/tasks/shared/LS_root/jobs/virtualstage/azureml/c36eb050-adc9-4c34-8a33-5f6d42dcb19c/wd/tmp8_txakpm/bg.png'
bg.png 恰好是在我传递给 ParallelRunStep 的前一个 PythonScriptStep 中创建的辅助参数:
bg_file = PipelineData('bg', datastore=data_store)
bg_file_ds = bg_file.as_dataset()
bg_file_named = bg_file_ds.as_named_input("bg")
bg_file_dw = bg_file_named.as_download()
...
parallelrun_step = ParallelRunStep(
name='batch-inference',
parallel_run_config=parallel_run_config,
inputs=[frames_data_named.as_download()],
arguments=["--bg_folder", bg_file_dw],
side_inputs=[bg_file_dw],
output=inference_frames_ds,
allow_reuse=True
)
这里发生了什么?为什么旁论似乎只在一个工人身上可用,而在其他工人身上却失败了?
顺便说一句,我发现了 this 个类似但未解决的问题。
非常感谢任何帮助,谢谢!
显然您需要指定本地安装路径才能在多个节点中使用 side_inputs:
bg_file_named = bg_file_ds.as_named_input(f"bg")
bg_file_mnt = bg_file_named.as_mount(f"/tmp/{str(uuid.uuid4())}")
...
parallelrun_step = ParallelRunStep(
name='batch-inference',
parallel_run_config=parallel_run_config,
inputs=[frames_data_named.as_download()],
arguments=["--bg_folder", bg_file_mnt],
side_inputs=[bg_file_mnt],
output=inference_frames_ds,
allow_reuse=True
)
来源:
我有一个推理管道,其中包含一些 PythonScriptStep,中间有一个 ParallelRunStep。一切正常,除了在 ParallelRunStep 期间所有小批量都在一个节点上 运行,无论我在 node_count
配置参数中放置了多少个节点。
集群中的所有节点似乎都已启动并运行正在运行,根据日志,init()
函数已在它们上多次运行。深入研究我在 sys/error/10.0.0.* 中看到的日志,除了正在工作的那个以外,所有的工人都在说:
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/batch/tasks/shared/LS_root/jobs/virtualstage/azureml/c36eb050-adc9-4c34-8a33-5f6d42dcb19c/wd/tmp8_txakpm/bg.png'
bg.png 恰好是在我传递给 ParallelRunStep 的前一个 PythonScriptStep 中创建的辅助参数:
bg_file = PipelineData('bg', datastore=data_store)
bg_file_ds = bg_file.as_dataset()
bg_file_named = bg_file_ds.as_named_input("bg")
bg_file_dw = bg_file_named.as_download()
...
parallelrun_step = ParallelRunStep(
name='batch-inference',
parallel_run_config=parallel_run_config,
inputs=[frames_data_named.as_download()],
arguments=["--bg_folder", bg_file_dw],
side_inputs=[bg_file_dw],
output=inference_frames_ds,
allow_reuse=True
)
这里发生了什么?为什么旁论似乎只在一个工人身上可用,而在其他工人身上却失败了?
顺便说一句,我发现了 this 个类似但未解决的问题。
非常感谢任何帮助,谢谢!
显然您需要指定本地安装路径才能在多个节点中使用 side_inputs:
bg_file_named = bg_file_ds.as_named_input(f"bg")
bg_file_mnt = bg_file_named.as_mount(f"/tmp/{str(uuid.uuid4())}")
...
parallelrun_step = ParallelRunStep(
name='batch-inference',
parallel_run_config=parallel_run_config,
inputs=[frames_data_named.as_download()],
arguments=["--bg_folder", bg_file_mnt],
side_inputs=[bg_file_mnt],
output=inference_frames_ds,
allow_reuse=True
)
来源: