Scheduling Hundreds of Workloads
Overview
Prerequisites
Script Configuration
#!/bin/bash
BUCKET_NAME="your-bucket-name"
PREFIX="gromacs_test/"
WORKLOAD_CONFIG="./workload.yml"
TEMP_WORKLOAD_CONFIG="./tmp-workload.yml"
# Sanitize job names for Kubernetes
sanitize_job_name() {
local name="md-simul-${1//_/-}" # Replace _ with -
name=$(echo "$name" | tr '[:upper:]' '[:lower:]') # Convert to lowercase
name=$(echo "$name" | sed 's/--*/-/g' | sed 's/-$//') # Remove double hyphens & trailing hyphen
echo "$name"
}
# Get folders from S3
FOLDERS=$(aws s3 ls "s3://$BUCKET_NAME/$PREFIX" --recursive | awk '{print $NF}' | awk -F'/' 'NF>2 {print $2}' | sort -u)
for folder in $FOLDERS; do
echo "Processing folder: $folder"
JOB_NAME=$(sanitize_job_name "$folder")
# Create a temporary workload with right complex.pdb file by replacing placeholders
sed -e "s|WORKING_DIR|$folder|g" -e "s|JOB_NAME|$JOB_NAME|g" "$WORKLOAD_CONFIG" > "$TEMP_WORKLOAD_CONFIG"
# Submit job
cedana-cli create workload --payload "$TEMP_WORKLOAD_CONFIG" --contentType yaml
rm -f "$TEMP_WORKLOAD_CONFIG"
doneExecution Process
Deleting Workloads
Troubleshooting
Additional Notes
Last updated
Was this helpful?