Skip to content

Commit

Permalink
add manager comparison table
Browse files Browse the repository at this point in the history
Signed-off-by: vsoch <[email protected]>
  • Loading branch information
vsoch committed Jan 30, 2023
1 parent 688d772 commit 727350a
Show file tree
Hide file tree
Showing 4 changed files with 360 additions and 0 deletions.
6 changes: 6 additions & 0 deletions faqs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ you can easily demo Flux in a container, or even used in Kubernetes with the
`Flux Operator <https://flux-framework.org/flux-operator>`_. We have a vision for Flux to
allow for converged computing, or making it easy to move between traditional HPC and cloud.

How does Flux compare to other managers?
========================================

Flux has similarities to many other resource managers, but we do a variety of things quite differently.
Check out this comparison table here (:ref:`comparison-table`) for a detailed list!"
Do you want to add or correct a feature? Please `let us know <https://github.com/flux-framework/flux-docs/issues>`_

*****************
General Questions
Expand Down
51 changes: 51 additions & 0 deletions includes/comparison-table.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<style>
.comparison-table {
width: 100% !important;
}
</style>
</style>
<script src="https://code.jquery.com/jquery-3.6.3.slim.min.js" integrity="sha256-ZwqZIVdD3iXNyGHbSYdsmWP//UBokj2FHAxKuSBKDSo=" crossorigin="anonymous"></script>
<script>
$(function() {
var tables = document.getElementsByClassName('comparison-table')
for (var t=0, len=tables.length; t<len; t++){
var table = tables[t]
if (!table){
continue
}
var cells = table.getElementsByTagName('td');
for (var i=0, len=cells.length; i<len; i++){
cell = cells[i]
if (!cell){
continue
}
var text = cells[i].outerText
console.log(text)
if (text.includes("no")){
cells[i].style.backgroundColor = '#ff8c8c';
}
if (text.includes("yes")){
cells[i].style.backgroundColor = "#96f096";
}
if (text.includes("outdated")){
cells[i].style.backgroundColor = "#FFFFEE";
}
if (text.includes("n/a")){
cells[i].style.backgroundColor = "#F0F0F0";
}
if (text.includes("only")){
cells[i].style.backgroundColor = "#FFFFEE";
}
if (text.includes("limited")){
cells[i].style.backgroundColor = "#FFFFEE";
}
if (text.includes("some")){
cells[i].style.backgroundColor = "#FFFFEE";
}
// Always dark
cells[i].style.color = "#333";

}
}
});
</script>
293 changes: 293 additions & 0 deletions includes/comparison-table.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,293 @@
.. raw:: html
:file: ./comparison-table.html

.. list-table:: Flux Compared to Other Resource Managers
:widths: 46 6 6 6 6 6 6 6 6 6
:header-rows: 1
:stub-columns: 1
:class: comparison-table

* - Features
- Flux
- SLURM
- PBSPro (OpenPBS)
- LSF
- MOAB
- RadicalPilot
- Balsam
- Parsl
- Nitro
* -
-
-
-
-
-
-
-
-
-
* - Open Source
- yes
- yes
- yes
- no
- no
- yes
- yes
- yes
- no

.. list-table:: Multi-User Mode
:widths: 46 6 6 6 6 6 6 6 6 6
:header-rows: 1
:stub-columns: 1
:class: comparison-table

* - Features
- Flux
- SLURM
- PBSPro (OpenPBS)
- LSF
- MOAB
- RadicalPilot
- Balsam
- Parsl
- Nitro
* - Multi-user workload management
- yes
- yes
- yes
- yes
- yes
- no
- yes
- no
- no
* - Full hierarchical resource management
- yes
- no
- no
- no
- no
- n/a
- n/a
- n/a
- n/a
* - Graph-based advanced resource management
- yes
- no
- no
- no
- no
- n/a
- n/a
- n/a
- n/a
* - Scheduling specialization
- yes
- no
- no
- no
- no
- n/a
- n/a
- n/a
- n/a
* - Security: only a small isolated layer running in privileged mode for tighter security
- yes
- no
- no
- no
- no
- n/a
- n/a
- n/a
- n/a
* - Modern command-line interface (cli) design
- yes
- outdated
- outdated
- outdated
- outdated
- n/a
- n/a
- n/a
- n/a
* - Application programming interface (APIs) for job management, job monitoring, resource monitoring, low-level messaging
- yes (4/4)
- some (3/4)
- some (2/4)
- some (2/4)
- some (3/4)
- n/a
- n/a
- n/a
- n/a
* - Language bindings
- yes (C, C++, Python, Lua, Rust, Julia, REST)
- some (C, REST)
- some (C, Python)
- some (C, Python)
- some (C)
- n/a
- n/a
- n/a
- n/a
* - Bulk job submission
- yes
- only uniform jobs
- only uniform jobs
- only uniform jobs
- only uniform jobs
- n/a
- n/a
- n/a
- n/a
* - High-speed streaming job submission
- yes
- no
- no
- no
- no
- n/a
- n/a
- n/a
- n/a

.. list-table:: Single-User Mode
:widths: 46 6 6 6 6 6 6 6 6 6
:header-rows: 1
:stub-columns: 1
:class: comparison-table

* - Features
- Flux
- SLURM
- PBSPro (OpenPBS)
- LSF
- MOAB
- RadicalPilot
- Balsam
- Parsl
- Nitro
* - User-level workload management intstance
- yes
- no
- no
- no
- no
- yes
- yes
- yes
- yes
* - Support for nesting within foreign resource manager
- yes (slurm, lsf, ...)
- n/a
- n/a
- n/a
- n/a
- yes
- yes
- yes
- yes
* - Fully hierarchical management of instances
- yes
- n/a
- n/a
- n/a
- n/a
- no (two level)
- no
- no (two level)
- no (two level)
* - Scheduler specialization for user level
- yes
- n/a
- n/a
- n/a
- n/a
- yes
- no
- yes (executors)
- no
* - Graph-based advanced scheduling for user level
- yes
- n/a
- n/a
- n/a
- n/a
- no
- no
- no
- no
* - Built-in facilities for inter-job communication and coordination
- yes
- n/a
- n/a
- n/a
- n/a
- no
- no
- no
- no
* - Modern command-line interface (cli) design
- yes
- n/a
- n/a
- n/a
- n/a
- no cli
- yes
- no cli
- outdated
* - Application programming interfaces (APIs) for job management, job monitoring, resource monitoring, low-level messaging
- yes (4/4)
- n/a
- n/a
- n/a
- n/a
- yes (4/4)
- some (2/4)
- some (2/4)
- no
* - Language bindings
- yes (C, C++, Python, Lua, Rust, Julia, REST)
- n/a
- n/a
- n/a
- n/a
- some (Python)
- some (Python)
- some (Python)
- no
* - Bulk job submission
- yes
- n/a
- n/a
- n/a
- n/a
- limited support
- no
- limited support
- only single core jobs
* - High-speed streaming job submission
- yes
- n/a
- n/a
- n/a
- n/a
- yes
- no
- yes
- no
* - Support to launch message passing interface (MPI) jobs
- yes
- n/a
- n/a
- n/a
- n/a
- yes
- yes
- limited support
- no
10 changes: 10 additions & 0 deletions tables/comparison-table.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
:hide-navigation:

.. _comparison-table:

Flux Compared to Other Resource Managers
----------------------------------------

.. include:: ../includes/comparison-table.rst

Do you want to add or correct a feature? Please `let us know <https://github.com/flux-framework/flux-docs/issues>`_

0 comments on commit 727350a

Please sign in to comment.