Skip to content

Latest commit

 

History

144 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

How to compile and run:

1- Download and install the energy interface used by Slurm Simulator: https://www.deep-projects.eu/images/materials/library.pdf.

2- Install BSC Slurm Simulator using install_slurm_sim.sh script from the main folder.

3- Use run_simulation.sh script to run the simulation using given example of slurm.conf, energy models and workloads.

4- Personalize the script, models and configuration files to change parameters in the simulations.

Regarding point 4, different parameters can be changed for the simulations:

  • install/slurm_conf/slurm.conf.template: template used by launch script for generating slurm.conf, it manages general Slurm scheduler parameters and plugins, plus the simulated system architecture, i.e. number of clusters, their size and nodes list, the nodes configurations, and the computing resources and memories.
  • energy_conf/machine.conf: configuration file for clusters, frequencies ranges for processors, and reference to all the energy models.
  • energy_conf/apps: the app database, for each entry the following parameters are listed: app id, machine id and the app trace.
  • run_simulation.sh: the script launching the simulation, it sets tokens such as number of nodes, partition, users, and it generates slurm.conf from the slurm.conf.template file. It sets path to the machine file and the appDB.

For any question, please contact the the authors.

This is a version of SLURM simulator's code improved at Barcelona Supercomputing Center by Ana Jokanovic and Marco D'Amico. The reference paper on the simulator's validation is "Evaluating SLURM simulator with real-machine SLURM and vice versa" published at PMBS18 (https://ieeexplore.ieee.org/document/8641556). The starting point for the improvements was the simulator's version by Gonzalo Rodrigo from Umea University & Berkley Lab reported in the paper https://link.springer.com/chapter/10.1007/978-3-319-77398-8\_9.

COMPILATION: The code is tested on MareNostrum4 machine after being compiled with gcc 7.2.0 compiler. Install and compile the code using installi_slurm_sim.sh script, it calls compile_and_install_slurm.sh.

Simulator's source code is under slurm directory. SLURM daemons' binaries will be installed in install/slurm_programs/sbin. SLURM and SLURM simulator's binaries will be installed in install/slurm_programs/bin.

CONFIGURATION: Before you start the simulation make sure you change in the all the files bsc33882 to your account name; the account name should appear only in install/slurm_conf/slurm.conf.template and install/slurm_conf/users.sim. Configuration file template is under install/slurm_conf/slurm.conf.template; here you should set your configuration. Also, in slurm_conf/user.sim file make sure all the users are set to correct ids (check: id -u username).

LAUNCHING SIMULATOR ON MARENOSTRUM: submit_serial_simulation.sh is a script to submit the simulator for execution within a job on MareNostrum4 machine with SLURM job scheduler (adapt it for your machine). The simulation is started by:

sbatch submit_serial_simulation.sh 0 ../trace_name

#preferably always use full path on Marenostrum e.g. batch submit_serial_simulation.sh 0 /home/bsc18/bsc18997/SLURM_SIMULATOR-master/cirne.10n.maxjob8n.anl.200.sim

INPUTS: cirne.3456n.maxjob128n.anl.5k.1.1.sim is a big input trace example of 5000 jobs generated by CIRNE model for the system of 3456 nodes, max job size 128 nodes. cirne.10n.maxjob8n.anl.200.arrin10min.jobcomp.sim is a small input trace example of 200 jobs generated by CIRNE model for the system of 10 nodes, max job size 8 nodes.

OUTPUTS: Job completion log will be under simulation_$JOBID/TRACES/trace.test.$JOBID. SLURM daemons'logs, if enabled in slurm.conf, will be under slurm_varios/log/.

CONFIGURING SIMULATIONS TO RUN LOCALLY ON UBUNTU MACHINES (OR VMs): Repeat the COMPILATION and CONFIGURATION steps above plus the steps below.

REPLACE TOKENS WITH YOUR HOSTNAME: $>#hostname $>renan-Latitude-E7450 edit install/slurm_conf/slurm.conf.template ControlMachine=renan-Latitude-E7450 ControlAddr=renan-Latitude-E7450 FrontendName=renan-Latitude-E7450

EDIT PORTS: edit install/slurm_conf/slurm.conf.template SlurmctldPort=68256 SlurmdPort=68189

RUNNING SIMULATION LOCALLY IN UBUNTU MACHINES (OR VMs): run_local_simulation.sh is a script to launch a simulation locally in your laptop or VM running Ubuntu.

#e.g. run_local_simulation.sh 0 /home/renan/SLURM_SIMULATOR-master/cirne.10n.maxjob8n.anl.200.sim

About

Slurm Simulator implementing Eenergy-Aware Multi-Cluster job scheduling policy

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages