Giter VIP home page Giter VIP logo

slurm_reports's Introduction

SLURM Reports generator

This utility is useful to analyze the usage of a SLURM computing cluster and to create reports allowing to track the cluster usage. It uses the accounting data provided by 'sacct' to create the reports. It's not useful for billing but is used for capacity planning and to tailor an adequate Scheduling Policy.

Requirements

It's a Python program. It's been developed using Python 2.7.6 and uses Python's Standard libraries plus:

  • numpy (for histogram creation)

Installation

This project uses the standard Python packaging system. Therefore, just run:

    python setup.py install

It will also automatically install any dependencies needed.

This setup does not create an appropriate config file. If you need one to customize the tool's behaviour, read the following section. By default config files are looked for in the current directory.

Configuration file

The configuration file uses INI file's syntax. The options available are:

[general]
report_title=Report for  my cluster
avail_cpu_number=20
sacct_path=/bin/sacct
  • sacct_path: Path to the sacct command. This is the option most likely to need configuration (default: /bin/sacct)
  • report_title: Provides the title for the Report generated (default: Report)
  • avail_cpu_number: Number of CPUs available to compute the usage on the period (default: None)

Usage

Show help:

    ./report_colas.py --help

Show standard report (using defaults):

    ./report_colas.py --start 2016-05-30 --end 2016-06-01

slurm_reports's People

Contributors

miguelbernadi avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

slurm_reports's Issues

Not running

Hola Miguel,

I am not able to run your code after installing it:

Traceback (most recent call last):
  File "./slurm_reports", line 9, in <module>
    load_entry_point('slurm-reports==0.1.0', 'console_scripts', 'slurm_reports')()
  File "build/bdist.linux-x86_64/egg/slurm_reports/slurm_reports.py", line 14, in cli
  File "build/bdist.linux-x86_64/egg/slurm_reports/slurm_reports.py", line 337, in main
  File "/apps/monch/python/2.7.6/gcc/4.8.1/lib/python2.7/subprocess.py", line 566, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
  File "/apps/monch/python/2.7.6/gcc/4.8.1/lib/python2.7/subprocess.py", line 709, in __init__
    errread, errwrite)
  File "/apps/monch/python/2.7.6/gcc/4.8.1/lib/python2.7/subprocess.py", line 1326, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Maybe it's because of the python installation that I have available (it's not managed by me)... but looking into your code, it seems like everything is confined to a single file.
Is there a way that I can run your code from the command line, without having to install it? I tried to add 'cli()' or 'Slurm_Reports().main()' at the end of your code, but without success. (btw I am not a Python expert)

Thanks!

Enhance interface to access time values

The time values array of tuples' layout in Data is used by CLI code to adequately select the values of the histograms to be presented. A proper method interface should be provided to abstract that knowledge from presentation layer and decouple the presentation and data storage.

Proposal:

Data.get_elapsed_values()
Data.get_timelimit_values()
Data.get_accuracy_values()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.