<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>miner: A Tool for SLURM System Analysis with Process Mining</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Zahra Sadeghibogar</string-name>
          <email>sadeghi@pads.rwth-aachen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alessandro Berti</string-name>
          <email>a.berti@pads.rwth-aachen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Pegoraro</string-name>
          <email>pegoraro@pads.rwth-aachen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wil M.P. van der Aalst</string-name>
          <email>wvdaalst@pads.rwth-aachen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>SLURM</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Process Mining</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Chair of Process and Data Science, RWTH Aachen University</institution>
          ,
          <addr-line>Aachen</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>SLURMminer is a tool designed to analyze SLURM systems in High-Performance Computing (HPC) clusters. It utilizes process mining techniques to generate event logs, extract process models, and visualize critical business intelligence metrics. The tool's unique log extraction approach for SLURM clusters allows for a detailed analysis of jobs and workflows. By providing insights into workflow execution, workload patterns, system utilization, workload balancing, and anomaly detection, SLURMminer equips researchers and system administrators with essential data for performance assessment and user behavior analysis. This paper details installation procedures and describes the tool's functionalities, facilitating eficient management and optimization of HPC clusters with SLURMminer.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>∗Corresponding author.
http://mpegoraro.net/ (M. Pegoraro); https://vdaalst.com/ (W. M.P. v. d. Aalst)
© 2023 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
allocation and workload management. The use of process mining techniques uncovers patterns,
bottlenecks, and anomalies that were previously overlooked by conventional monitoring tools,
leading to improved system comprehension and resource utilization. On the other side,
SLURMminer can demonstrate how its capabilities can optimize processes, increase eficiency, and
uncover hidden opportunities for improvement within organizations that rely on SLURM-based
HPC clusters for their computational needs.</p>
      <p>
        SLURMminer was developed on the foundations laid by the author’s previous research [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ],
where two innovative methods were proposed to generate an event log from the extracted
SLURM logs. With this event log serving as a data source, process mining techniques are then
applied, giving rise to a richer, more detailed level of analysis for HPC cluster monitoring.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Implementation and Features</title>
      <p>SLURMminer, a Python-based tool built using the PM4Py library, facilitates advanced process
mining operations on SLURM event data.</p>
      <p>Constructed on the Flask framework1, it allows HTTP/HTTPS deployment and is compatible
with enterprise-grade servers. With Flask’s Cross-Origin Resource Sharing (CORS2) support,
SLURMminer ofers a smooth user experience by facilitating multi-origin requests.</p>
      <p>The user interface of SLURMminer, crafted using the Bootstrap framework 3, ensures
responsive design, accelerated development time, and browser compatibility. Bootstrap’s
customizability and integration with JavaScript libraries permit dynamic and interactive UI component
development.</p>
      <p>SLURMminer stands out for its ability to observe live event streams from the SLURM system,
a feature enabled by Flask and PM4Py. It processes and visualizes real-time SLURM events,
providing users with instantaneous insights into system behavior and performance.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Use Cases and Examples</title>
      <p>SLURMminer, an evolutionary tool built upon preceding research, enables thorough SLURM
system analysis by integrating system logging, process mining, and business intelligence
visualization. The following list proposes some use cases of the tool:
– System Logging: Users first engage with the system logging component, logging into the
HPC system via a dedicated form on the user interface (UI) (Fig.1, right). The
mechanism monitors the SLURM system’s ongoing jobs and records them using the “squeue”
command. Logging initiation and reset are controlled by “Start Logging” and “Restart
Logging” buttons, respectively, with the latter resetting the log located in the “slurm-log”
directory (Fig.1, left).
– Process mining: The SLURM log generated can be leveraged by process mining
technologies. An event log, structured for process mining, is generated by the “Generate</p>
      <sec id="sec-3-1">
        <title>1http://flask.pocoo.org/ 2https://flask.palletsprojects.com/ 3https://getbootstrap.com/docs/</title>
        <p>and Download Normal Log” button. This log underpins the creation of process models
visualizing SLURM system operations, extending knowledge about job executions and
possible ineficiencies (Fig. 2). The normal event log also elucidates the job execution
lifecycle, with stages like PENDING, CONFIGURING, RUNNING, and COMPLETING.
– Business Intelligence visualization: SLURMminer encapsulates performance analysis and
visualization, providing crucial metrics and graphical illustrations. These visuals cover
details such as job counts, job distribution, and the status of active or pending jobs
(Fig.3, right). An additional feature identifies batch activities, where numerous similar
computations are launched simultaneously. The tool flags potential batching instances
by monitoring job initiations within a defined time window and applies a threshold to
iflter out high-frequency accounts, resulting in a plot representing potential batch activity
periods (Fig.3,left).</p>
        <p>SLURMminer amalgamates system logging, process mining, and business intelligence
visualization, providing a robust analytical tool for efective HPC cluster management.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Tool Repository and Demonstration</title>
      <p>SLURMminer’s codebase is available on GitHub at https://github.com/zasab/SLURMminer. The
README.md file outlines the setup procedure.</p>
      <p>Prerequisites for installation include Node.js4 and NPM for frontend, and Python with p i p 5
for backend dependencies.</p>
      <sec id="sec-4-1">
        <title>4https://nodejs.org/ 5https://www.python.org/</title>
        <p>To start, clone the repository via g i t c l o n e , then install the required Python packages using
p i p i n s t a l l . Launch the Flask server by executing the “app.py” script, making it available
in your web browser. For frontend setup, navigate to the “DEV-front” directory and run n p m
i n s t a l l followed by n p m r u n d e v . Once the Node.js server is up, access the application via the
provided “Local” URL (e.g., http://localhost:5173/).</p>
        <p>Please check out my demo video of the tool paper at https://youtu.be/y0ujrvHY2kE for a
detailed demonstration.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>SLURMminer, bridging process mining with SLURM-based HPC cluster management, provides a
novel look at job behaviors and anomaly detection, forging a path toward improved performance
and refined optimization strategies. Its intuitive interface provides sophisticated analytical
abilities to administrators and users, improving resource management and job scheduling in
HPC contexts.</p>
      <p>Future iterations of SLURMminer envision a more feature-rich platform, with an expanded
array of metrics and a broader spectrum of process mining techniques. These enhancements
promise to augment SLURMminer’s impact, continuously steering the evolution of
SLURMbased HPC cluster management toward greater eficiency and productivity.</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgements</title>
      <p>The authors gratefully acknowledge the German Federal Ministry of Education and Research
(BMBF) and the Ministry of Education and Research of North-Rhine Westphalia for supporting
this work/project as part of the NHR funding. Also, we thank Alexander von Humboldt (AvH)
Stiftung for supporting our research.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A. B.</given-names>
            <surname>Yoo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Jette</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Grondona, SLURM: simple linux utility for resource management</article-title>
          ,
          <source>in: Job Scheduling Strategies for Parallel Processing, 9th International Workshop</source>
          , JSSPP 2003, Seattle, WA, USA, June 24,
          <year>2003</year>
          ,
          <string-name>
            <given-names>Revised</given-names>
            <surname>Papers</surname>
          </string-name>
          , volume
          <volume>2862</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2003</year>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>60</lpage>
          . URL: https://doi.org/10.1007/10968987_3. doi:
          <volume>1</volume>
          <fpage>0</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Dietrich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Winkler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Knüpfer</surname>
          </string-name>
          ,
          <string-name>
            <surname>W. E. Nagel,</surname>
          </string-name>
          <article-title>PIKA: center-wide and job-aware cluster monitoring</article-title>
          ,
          <source>in: IEEE International Conference on Cluster Computing, CLUSTER</source>
          <year>2020</year>
          , Kobe, Japan,
          <source>September 14-17</source>
          ,
          <year>2020</year>
          , IEEE,
          <year>2020</year>
          , pp.
          <fpage>424</fpage>
          -
          <lpage>432</lpage>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>0</volume>
          <fpage>9</fpage>
          <string-name>
            <surname>/ C L U S T E R</surname>
          </string-name>
          <article-title>4 9 0 1 2</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P.</given-names>
            <surname>Kunz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>HPC</given-names>
            <surname>Job-Monitoring with</surname>
          </string-name>
          <string-name>
            <given-names>SLURM</given-names>
            ,
            <surname>Prometheus</surname>
          </string-name>
          , and
          <string-name>
            <surname>Grafana</surname>
          </string-name>
          (
          <year>2022</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Pal</surname>
          </string-name>
          , P. Malakar,
          <article-title>MAP: A visual analytics system for job monitoring and analysis</article-title>
          ,
          <source>in: IEEE International Conference on Cluster Computing, CLUSTER</source>
          <year>2020</year>
          , Kobe, Japan,
          <source>September 14-17</source>
          ,
          <year>2020</year>
          , IEEE,
          <year>2020</year>
          , pp.
          <fpage>442</fpage>
          -
          <lpage>448</lpage>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>0</volume>
          <fpage>9</fpage>
          <string-name>
            <surname>/ C L U S T E R</surname>
          </string-name>
          4
          <volume>9 0 1 2 . 2 0 2 0 . 0 0 0 6 3 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>T.</given-names>
            <surname>Röhl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Eitzinger</surname>
          </string-name>
          , G. Hager,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Wellein, LIKWID monitoring stack: A flexible framework enabling job specific performance monitoring for the masses</article-title>
          ,
          <source>in: 2017 IEEE International Conference on Cluster Computing, CLUSTER</source>
          <year>2017</year>
          ,
          <article-title>Honolulu</article-title>
          ,
          <string-name>
            <surname>HI</surname>
          </string-name>
          , USA, September 5-
          <issue>8</issue>
          ,
          <year>2017</year>
          , IEEE Computer Society,
          <year>2017</year>
          , pp.
          <fpage>781</fpage>
          -
          <lpage>784</lpage>
          .
          <source>doi:1 0 . 1 1</source>
          <volume>0</volume>
          <fpage>9</fpage>
          <string-name>
            <surname>/ C L U S T E R .</surname>
          </string-name>
          <article-title>2 0 1 7 . 1 1 5</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Sadeghibogar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Berti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pegoraro</surname>
          </string-name>
          ,
          <string-name>
            <surname>W. M. P. van der Aalst</surname>
          </string-name>
          ,
          <article-title>Applying process mining on scientific workflows: a case study</article-title>
          ,
          <source>CoRR abs/2307</source>
          .02833 (
          <year>2023</year>
          ). URL: https://doi.org/10. 48550/arXiv.2307.02833.
          <article-title>doi:1 0 . 4 8 5 5 0 / a r X i v . 2 3 0 7 . 0 2 8 3 3 . a r X i v : 2 3 0 7 . 0 2 8 3 3</article-title>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>