Skip to main content

A Labtasker plugin that decomposes bash script into submit and job scripts..

Project description

labtasker-plugin-script-generate

[!WARNING] This plugin does not cover all possible scenarios and does not guarantee the correctness of the generated scripts. It is strongly advised to double-check and manually adjust the generated scripts to your need.

This is a plugin for Labtasker that helps you to automatically split your bash script into submit script and job script.

Install

pip install labtasker-plugin-script-generate

Example

You can find the code in the demo directory.

Imagine you have a bash wrapper script for your machine learning experiment. To divide the script into a submit script and a job script, simply add a few special comments (e.g., #@submit, #@task, #@end).

#!/bin/bash

export CUDA_HOME=/usr/local/cuda-12.1

+#@submit
for dataset in imagenet cifar10 mnist; do
  for model in resnet50 vit transformer; do
    LOG_DIR=/path/to/logs/$dataset/$model

+    #@task
    python train.py --dataset $dataset \
      --model $model \
      --cuda-home $CUDA_HOME \
      --log-dir $LOG_DIR
+    #@end

  done
done
+#@end

echo "done"

Run:

labtasker generate original.sh

You will see original_submit.sh and original_run.sh generated at the same directory, with the following content:

original_submit.sh:

#!/bin/bash
# This script is generated by Labtasker from original.sh

export CUDA_HOME=/usr/local/cuda-12.1

for dataset in imagenet cifar10 mnist; do
  for model in resnet50 vit transformer; do
    LOG_DIR=/path/to/logs/$dataset/$model

    labtasker task submit -- --CUDA_HOME "$CUDA_HOME" --LOG_DIR "$LOG_DIR" --dataset "$dataset" --model "$model"

  done
done

echo "done"

original_run.sh:

#!/bin/bash
# This script is generated by Labtasker from original.sh

export CUDA_HOME=/usr/local/cuda-12.1

LABTASKER_TASK_SCRIPT=$(mktemp)
cat <<'LABTASKER_LOOP_EOF' > "$LABTASKER_TASK_SCRIPT"
CUDA_HOME=%(CUDA_HOME)
LOG_DIR=%(LOG_DIR)
dataset=%(dataset)
model=%(model)
    python train.py --dataset $dataset \
      --model $model \
      --cuda-home $CUDA_HOME \
      --log-dir $LOG_DIR
LABTASKER_LOOP_EOF
labtasker loop --executable /bin/bash --script-path $LABTASKER_TASK_SCRIPT

echo "done"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

labtasker_plugin_script_generate-0.1.3.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file labtasker_plugin_script_generate-0.1.3.tar.gz.

File metadata

File hashes

Hashes for labtasker_plugin_script_generate-0.1.3.tar.gz
Algorithm Hash digest
SHA256 fa74041ffab5fcffa6e3929fe5bae880547eaf17eaf2014169a280849666e49b
MD5 69d17c1d91c3a9781db535514c810afb
BLAKE2b-256 1a1f84bd0c9a0060f38d3700c4bcf0e166443d44ae555debb6306fb7bb85d5bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for labtasker_plugin_script_generate-0.1.3.tar.gz:

Publisher: release.yml on luocfprime/labtasker-plugin-script-generate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file labtasker_plugin_script_generate-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for labtasker_plugin_script_generate-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 44522dbec492e0afc8bc4cf058630d351e1c47431e574f7c57053964ebe27e71
MD5 92d08381b90c9512f6201cbbb1b61597
BLAKE2b-256 a17938ce84ca45b05770a70d2edda986381c5caa0ced082d1bbb82a6d54bbfb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for labtasker_plugin_script_generate-0.1.3-py3-none-any.whl:

Publisher: release.yml on luocfprime/labtasker-plugin-script-generate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page