Metadata-Version: 2.1
Name: Xsinfo
Version: 1.2
Summary: Xsinfo is a command line tool summarizing the nodes and cores availability on a scheduler using SLURM.
Home-page: https://github.com/FranckLejzerowicz/Xsinfo
Author: Franck Lejzerowicz
Author-email: franck.lejzerowicz@gmail.com
Maintainer: Franck Lejzerowicz
Maintainer-email: franck.lejzerowicz@gmail.com
License: BSD
Description: # Xsinfo
        
        Collect info about the current nodes and cores usage so that it can help one
        choose which and how much resource can be allocated for a job on SLURM.
             
         # Install
        
        ```
        git clone https://github.com/FranckLejzerowicz/Xsinfo.git
        cd Xsinfo
        pip install -e .
        ```
        *_Note that python should be python3_
        
        ## Outputs
        
        Two outputs:
        
        ### **Table**
        
        In a file located in `~/.xsinfo/YYYY-MM-DD.tsv` containing the table returned
        by the following Slurm's sinfo command and expanded with cpu_load, memory_load
        (both in % of available CPUs and memory per node), as well as the number of
        allocated and idle CPUs per node:
        
        ```
        sinfo --Node -h -O NodeList:10,Partition:10,StateLong:10,CPUsLoad:10,CPUsState:12,Sockets:4,Cores:4,Threads:4,Memory:12,FreeMem:12
        ```
        Note: if Xsinfo is re-run the same day twice, it will not re-run this  sinfo
        command. Instead, it will read the expanded `~/.xsinfo/YYYY-MM-DD.tsv` file.
        If you need to re-run Xsinfo the same day if node usage changes that quick,
        please use the `--refresh` option (in `~/.xsinfo/` is only kept the latest
        table).
        
        This table can be used by [Xpbs](https://github.com/FranckLejzerowicz/Xpbs) - 
        optionally - to allocate CPUs from idle nodes that have the right amount of
        memory available.   
        
        ### **Stdout**
        
        Summaries are printed in stdout, including:
        - "**nodes per % of cpu load**": nodes are binned per quartile of cpu load.
        - "**nodes per % of mem load**": nodes are binned per quartile of memory load.
          
        For the nodes binned in these two different ways are of shown:
        - Their total number of CPUs (`cpus`) 
        - Their total available memory in GiB (`mem(gb)`) 
        - Their average and standard deviation of available memory (`av` and `±`) 
        - Their number (of nodes) (`nodes`) 
        - Their names (of nodes) (`names`)
        
        ## Usage
        
        Just run:
        ```
        Xsinfo [OPTIONS]
        ```
        
        * `--torque`: Use if your scheduler is Torque (and not Slurm), as the native
        qstats summary is a bit different and thus Xsinfo has to know that in order to
        properly parse out the node usage information [**OPTION NOT YET WORKING!**]
        * `--refresh`: Force rewriting of the expanded node info collected today. 
        * `--show`: Will print the full cpu and memory info per nodes. 
        
        ### Options
        
        ```
        Usage: Xsinfo [OPTIONS]
        
        Options:
          --torque / --no-torque        Switch from Slurm to Torque  [default: no-
                                        torque]
          --refresh, --no-refresh TEXT  Whether to update any sinfo snapshot file
                                        written today in ~/.slurm.
          --version                     Show the version and exit.
          --help                        Show this message and exit.
        ```
        
        ### Bug Reports
        
        contact `franck.lejzerowicz@gmail.com`
Platform: UNKNOWN
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: MacOS :: MacOS X
Requires-Python: >=3.6
Description-Content-Type: text/markdown
