用于重复和分布式执行的album插件
项目描述
用于分布式调用的album插件
这是增强album以支持批处理和分布式处理的早期版本。
安装
- 安装Album
- 激活album环境
conda activate album
- 安装此插件
pip install https://gitlab.com/album-app/plugins/album-distributed/-/archive/main/album-distributed-main.zip
使用方法
首先,安装一个解决方案 - 将solution.py
替换为您的解决方案/解决方案文件夹的路径,或者替换为您的解决方案的group:name:version
坐标。
album install solution.py
现在您可以使用此插件
album run-distributed solution.py
此插件执行以下两项操作
- 它检查输入参数是否与多个任务匹配 - 在这种情况下,它生成不同的任务参数。
- 它运行所有匹配的任务,可以选择运行这些任务的模式。
由于匹配部分可能很复杂,请使用 --dry-run
参数首先打印出匹配的任务列表
album run-distributed solution.py --dry-run
在Windows上,请在本页的示例中将斜杠替换为反斜杠。
如果您遇到任何问题,请告诉我们。
匹配输入参数
要生成多个任务,可以在文件名参数中使用模式来匹配多个文件。
使用单个参数中的模式
当您在单个参数中使用它时,应该能够使用所有 glob
功能。以下是一些示例
在以下场景中,solution.py
有一个名为 input_data
的参数。
匹配当前文件夹中所有 .tif
文件
album run-distributed solution.py --input_data *.tif
匹配特定文件夹中所有以 input
开头的 .tif
文件
album run-distributed solution.py --input_data /data/input*.tif
递归匹配所有 .tif
文件,从当前文件夹开始
album run-distributed solution.py --input_data **/*.tif
在多个参数中使用模式
当在多个参数中使用模式时,此插件将尝试根据哪些模式与现有文件匹配来找出相应的参数值。这可能在许多情况下失败 - 请使用 --dry-run
参数来测试匹配的任务是否符合您的期望。
在以下场景中,solution.py
有两个名为 input_data
和 output_data
的参数。
使用当前文件夹中的所有 .tif
文件,并将 _out
追加到输出参数的文件名中。
album run-distributed solution.py --input_data *.tif --output_data *_out.tif
递归执行相同操作
album run-distributed solution.py --input_data **/*.tif --output_data **/*_out.tif
让输出参数值位于不同的文件夹中
album run-distributed solution.py --input_data *.tif --output_data output/*.tif
由于Album尚未区分输入和输出参数,请注意,如果这些场景中的 output_data
参数匹配现有文件,插件也会尝试生成相应的 input_file
值。我们将努力改进这一点。
模式
您可以通过使用 --mode
参数来设置模式
album run-distributed solution.py --mode queue
默认情况下,插件将使用 basic
模式。
基本
在此模式下,所有任务将一个接一个地执行。将打印出每个任务的控制台输出。
队列
在此模式下,将创建一组线程工作进程以并行处理任务。不会打印出每个任务的控制台输出。您可以使用 --threads
参数控制应创建多少个线程
album run-distributed solution.py --mode queue --threads 16
项目详情
album-distributed-0.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e70645d7d5d08ac60971bb11c2baf6b7127cd8221927054e7d9cb6c34f461010 |
|
MD5 | 5df1dfd4103c3c3638da6bba46ff0fb7 |
|
BLAKE2b-256 | 9f517c4a6b33e644eb133d08f8aefcac781ba335d8f220dee0e4b87e8609bbb6 |