Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kick-off script #147

Open
joshfactorial opened this issue Mar 31, 2025 · 0 comments
Open

Kick-off script #147

joshfactorial opened this issue Mar 31, 2025 · 0 comments

Comments

@joshfactorial
Copy link
Collaborator

Give a folder that was output by the splitting script, this script will parse the folder for run files and execute each run file in parallel (multi-threading). As an option, it could just output the command to execute for each run. For example, if the user wanted to submit multiple jobs to a supercomputing cluster, then the script could issue the submission script for each command (with custom header text).

Example 1:

Input header:

#!/bin/bash
#SBATCH --job-name="my_neat_runs_{}"
#SBATCH --output="my_neat_runs_%j.out"
#SBATCH --partition=gpu
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=4
#SBATCH --cpus-per-task=40
#SBATCH --cores-per-socket=20
#SBATCH --threads-per-core=4
#SBATCH --sockets-per-node=2
#SBATCH --mem-per-cpu=1200
#SBATCH --export=ALL
#SBATCH --gres=gpu:v100:4
#SBATCH --time=4:00:00

The program will replace the empty curly braces with a number and generate a run script for each file:

#!/bin/bash
#SBATCH --job-name="my_neat_runs_1"
#SBATCH --output="my_neat_runs_%j.out"
#SBATCH --partition=gpu
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=4
#SBATCH --cpus-per-task=40
#SBATCH --cores-per-socket=20
#SBATCH --threads-per-core=4
#SBATCH --sockets-per-node=2
#SBATCH --mem-per-cpu=1200
#SBATCH --export=ALL
#SBATCH --gres=gpu:v100:4
#SBATCH --time=4:00:00

neat read-simulator -c file1_cfg.yml -o my_specified_output

For input we'll need the original folder, the header template (if generating batch scripts). Optionally, it can just launch the runs in a multi-threaded instance, which will take longer. It should be tied into NEAT's logging features. It would need a list of command line commands to use in the output script.

This may even be two separate scripts: batch script generator, multi-threaded kickoff. But there will be a lot of overlap.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant