Skip to content

SeanJBennett/Solar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 

Repository files navigation

Project logo

Solar

GitHub Issues GitHub Pull Requests


Automating Job Submission and Analysis to a Supercomputer in Python using Slurm

Table of Contents

About

Solar is a program written in Python that automates the submission of jobs to Slurm, a Supercomputer queueing system, and compiles the results in an easily readable format. Solar has the unique ability of automatically generating additonal Python code, ontop of Solar itself, from a simple configuration text file. This makes Solar very useful to those who need to submit many jobs to a Supercomputer and those with limited coding experience. Additionally, Solar also takes away the hassle of manually having to change each jobs parameters before submission to a Supercomputer. Solar makes use of Slurm for job submissions to our Supercomputer but can be easily adapted to your choice of queueing system.

Getting Started

Prerequisites

  • Numpy
  • Slurm - or your choice of queueing system

Installing

pip install numpy
https://www.schedmd.com/downloads.php

Usage

Solar, as stated above, automatically generates code and automatically sends jobs to a Supercomputer. Additionally, Solar creates and curates log files, results files and raw data that is taken right from the Supercomputer (see Solar Examples).

  • Step 1 and 2

Screenshot from 2019-07-18 13-15-40

  • Step 2 in progress

Screenshot from 2019-07-18 13-12-01

  • Step 3 in progress

Screenshot from 2019-07-18 13-13-07

Deployment

The configuration file ultimately dictates what Solar does. The picture below showcases a couple lines from the config file that show a comment line, #, that is ignored by Solar followed by a line of three comma separated numbers.

Screenshot from 2019-07-18 16-03-46

Solar interprets this as a parameter we want to loop and sets up a for loop for it. In this case a for loop starting at 0, ending at 120, in steps of 40 (in the second picture the end is set to 160 (end + step size), this is how range needs to be set up to work properly). If there are multiple lines like this in the config file, Solar will automatically start nesting them.

Screenshot from 2019-07-18 16-03-53

Run Solar with the example config file to be able to see this in action.

Built Using

  • Slurm - Communicating with the Supercomputer
  • Python - Coding Language

Authors

Acknowledgements

About

Automating Job Submission and Analysis to a Supercomputer in Python using Slurm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published