Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python | |
| import os | |
| import pipes | |
| import subprocess | |
| import sys | |
| from pathlib import Path | |
| exec_file = sys.argv[0].split("-")[0] | |
| command = exec_file + " " + " ".join([pipes.quote(s) for s in sys.argv[1:]]) | |
| def submit_command(command): | |
| subprocess.run(command.split(" "), check=True, capture_output=False) | |
| def python_submit(command, node="siena"): | |
| bash_file = open("./slurm.sh", "w") | |
| bash_file.write(f"#!/bin/bash\n{command}") | |
| bash_file.close() | |
| slurm_output_path = Path("./slurm/") | |
| slurm_output_path.mkdir(parents=True, exist_ok=True) | |
| try: | |
| if node is None: | |
| command = "sbatch --ntasks=1 --cpus-per-task=1 --output ./slurm/slurm-%j.out \ | |
| --mem-per-cpu=8G -p gpu --gpus 1 --time=1:00:00 slurm.sh" | |
| submit_command(command) | |
| print(f'Submitted the command --- "{command}" --- to slurm.') | |
| else: | |
| command = f"sbatch --ntasks=1 --cpus-per-task=1 --output ./slurm/slurm-%j.out \ | |
| --nodelist={node} --mem-per-cpu=8G -p gpu --gpus 1 --time=1:00:00 slurm.sh" | |
| submit_command(command) | |
| print(f'Submitted the command --- "{command}" --- to slurm.') | |
| except subprocess.CalledProcessError: | |
| if node == None: | |
| command = f"sbatch -c 8 --gres=gpu:1 --output ./slurm/slurm-%j.out --mem=128000 --time=100-00:00:00 slurm.sh " | |
| submit_command(command) | |
| print(f'Submitted the command --- "{command}" --- to slurm.') | |
| else: | |
| command = f"sbatch -c 8 --gres=gpu:1 --output ./slurm/slurm-%j.out --nodelist={node} --mem=128000 --time=100-00:00:00 slurm.sh" | |
| submit_command(command) | |
| print(f'Submitted the command --- "{command}" --- to slurm.') | |
| os.remove("./slurm.sh") | |
| python_submit(command) | |