From Beocat
Jump to: navigation, search
Line 64: Line 64:
 
If you need to change the range of a parameter in the sweep, the process should be simple.
 
If you need to change the range of a parameter in the sweep, the process should be simple.
 
# Go to the <code>Define parameter sweep ranges</code> section of <code>Parameter_Sweep_P.py</code>, some of which is shown below.  
 
# Go to the <code>Define parameter sweep ranges</code> section of <code>Parameter_Sweep_P.py</code>, some of which is shown below.  
[[File:Param sweep ranges.png|824 × 238px|frameless]]
+
[[File:Param sweep ranges.png|824×238px|]]
  
 
# Edit the range of the parameter you want in the file and save it. For example, if I want FC to range from 5500 to 7500 instead of 6000 to 10000, I would change it to be <code>FC_RANGE = [5500, 6000, 65000, 7000, 7500]</code>
 
# Edit the range of the parameter you want in the file and save it. For example, if I want FC to range from 5500 to 7500 instead of 6000 to 10000, I would change it to be <code>FC_RANGE = [5500, 6000, 65000, 7000, 7500]</code>
 
# Copy the file to Beocat (if you edited it locally).
 
# Copy the file to Beocat (if you edited it locally).
 
# Run the parameter sweep, the updated range will be used to generate files.
 
# Run the parameter sweep, the updated range will be used to generate files.

Revision as of 16:58, 27 April 2020

Setting up Beocat to run a parameter sweep

  1. First, you need to copy the project with all of its files into Beocat.
  2. This can be done several ways, but make sure that you have them in the same folder, which needs to be named proj.
  3. If you want to name it differently, you need to update run.sh to have the path to the new folder on line 15, where it has the command python ~/proj/Main_P.py
  4. The project folders should be structured correctly if you kept them as given, but make sure that the project is structured as follows: proj folder containing: all python and .sh files, a references folder containing ASTMA1096.txt, wireproperties.txt, and a geo_points folder containing all geometric point files
  5. Make all .sh files in your proj folder executable, using the command chmod +x *.sh in your proj folder. This should make .sh files appear in green now, as shown below (note that not all files are shown) Cropped executable sh file.png
  6. Set up Beocat to run the Python files.
  7. You can run the set_up_beocat.sh file to do this automatically. Run it by going to the folder that the file is in and entering the command ./set_up_beocat.sh
  8. If set_up_beocat.sh doesn’t work, what you need to do is create a ‘virtual environment’ for running python. You can look at [help page] to see a different guide for doing so, but you can also look at the commands in set_up_beocat.sh to see an example of setting up the virtual environment.

Running a parameter sweep on Beocat

There are two ways to schedule the parameter sweep: directly or through the manager application.

Option 1: run directly

  1. Log into Beocat and navigate to your proj folder
  2. Run the following command to run the parameter sweep script by itself: ./sched_run.sh
  3. If you’d like to run a whole parameter sweep: enter yes when prompted
  4. Otherwise, enter no and then the number of jobs you do want to run
  5. Wait for the program to finish, it will create all the input files and schedule as many jobs at once as it can.
  6. Note: Do not delete the file remaining_jobs.csv unless you want to stop your current parameter sweep! It is used for keeping track of which chunks we have already submitted.
  7. Follow the Run the next batch of jobs section below

Option 2: run through the manager application

  1. Log into Beocat and navigate to your proj folder
  2. Run the following command to run the manager program by itself: ./manager.sh
  3. Enter s when prompted by the program
  4. If you’d like to run a whole parameter sweep: enter yes when prompted
  5. Otherwise, enter no and then the number of jobs you do want to run
  6. Wait for the program to finish, it will create all the input files and schedule as many jobs at once as it can.
  7. Complete any other operations you want to do and then exit the program.
  8. Note: Do not delete the file remaining_jobs.csv unless you want to stop your current parameter sweep! It is used for keeping track of which chunks we have already submitted.
  9. Follow the Run the next batch of jobs section below

Run the next batch of jobs/Resubmit failed jobs

Due to the limit on the number of jobs that can be submitted to Beocat, you will need to schedule the jobs in batches. There are two ways to handle doing this, as shown below. Please be sure that you wait for the majority of each batch to finish before scheduling the next batch

Option 1: run directly

  1. Log into Beocat and navigate to your proj folder
  2. Run the following command to run the script to submit the next jobs directly: ./manage_jobs.sh
  3. Repeat this process every couple of days until you see the message No jobs remaining to be run!

Option 2: run through the manager application

  1. Log into Beocat and navigate to your proj folder
  2. Run the following command to run the manager program: ./manage_jobs.sh
  3. Enter m when prompted by the program
  4. Repeat this process every couple of days until you see the message No jobs remaining to be run!

Running a single job with a specific file number

By default, if you just run the simulation by itself, it will use the input file with number 1. If you’d like to run a specific file number, please follow the instructions below.

If you just want to run the sim in your terminal

  1. Log into Beocat and navigate to your proj folder
  2. Run the following command to run the sim in your terminal: ./run.sh <file number you’d like to run>. For example, to run file number 3,521 you’d do: ./run.sh 3521
  3. Wait for it to finish, the results will be written in the output folder with the number you used.

If you'd like to schedule it on Beocat

  1. Log into Beocat and navigate to your proj folder
  2. Enter the following command to schedule the job: sbatch ./run.sh <file number you’d like to run>. For example, to run file number 3,521 you’d do: sbatch ./run.sh 3521
  3. Beocat will run the job once it has an opening and will write the results to the output folder

Changing the range of a parameter in the sweep

If you need to change the range of a parameter in the sweep, the process should be simple.

  1. Go to the Define parameter sweep ranges section of Parameter_Sweep_P.py, some of which is shown below.

Param sweep ranges.png

  1. Edit the range of the parameter you want in the file and save it. For example, if I want FC to range from 5500 to 7500 instead of 6000 to 10000, I would change it to be FC_RANGE = [5500, 6000, 65000, 7000, 7500]
  2. Copy the file to Beocat (if you edited it locally).
  3. Run the parameter sweep, the updated range will be used to generate files.