1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
# Here we provide a job script example to run the built in FLASH benchmark on Cori at NERSC
# The first step is to request burst buffer access from the scheduler
# Add #DW jobdw argument to request burst buffer space.
# We request a private mode burst buffer access with capacity of 1289 GiB from the sm_pool
# The second step is to set up the hint for burst buffer driver. We use following hints:
# Enable the burst buffer driver
# nc_burst_buf=enable;
# burst buffer will recycle the space after job execution. We don't need to delete the log files.
# nc_burst_buf_del_on_close=disable;
# We are using private mode, BB_JOB_PRIVATE will be set to the path of burst buffer
# nc_burst_buf_dirname=${BB_JOB_PRIVATE}
# We can set the optional nc_burst_buf_flush_buffer_size hint to limit the memory space PnetCDF can use on flushing the log.
# There is no need to do so since the built in FLASH benchmark by default only generate around 75 MiB of data per process
# The burst buffer driver is designed to be as transparent as possible.
# In most cases, we can run the job as usual after previous 2 steps.
# We don't need to modify FLASH benchmark in this case.
==================================================================================================================
#!/bin/bash
#SBATCH -p debug
#SBATCH -N 1
#SBATCH -C haswell
#SBATCH -t 00:01:00
#SBATCH -o burst buffer_FLASH_example.txt
#SBATCH -L scratch
#DW jobdw capacity=1289GiB access_mode=private type=scratch pool=sm_pool
NNodes=${SLURM_NNODES}
NProc=NNodes*32
export PNETCDF_HINTS="nc_burst_buf=enable;nc_burst_buf_del_on_close=disable;nc_burst_buf_dirname=${BB_JOB_PRIVATE}"
srun -n ${NProc} ./flash_benchmark_io ${SCRATCH}/flash_
|