diff --git a/includes/comparison-table.html b/includes/comparison-table.html
index a966112..e453a94 100755
--- a/includes/comparison-table.html
+++ b/includes/comparison-table.html
@@ -24,6 +24,9 @@
if (text.includes("no")){
cells[i].style.backgroundColor = '#ff8c8c';
}
+ if (text.includes("viral")){
+ cells[i].style.backgroundColor = '#ffc58c';
+ }
if (text.includes("yes")){
cells[i].style.backgroundColor = "#96f096";
}
@@ -39,6 +42,15 @@
if (text.includes("limited")){
cells[i].style.backgroundColor = "#FFFFEE";
}
+ if (text.includes("community")){
+ cells[i].style.backgroundColor = "#FFFFEE";
+ }
+ if (text.includes("design")){
+ cells[i].style.backgroundColor = "#FFFFEE";
+ }
+ if (text.includes("progress")){
+ cells[i].style.backgroundColor = "#FFFFEE";
+ }
if (text.includes("some")){
cells[i].style.backgroundColor = "#FFFFEE";
}
@@ -48,4 +60,4 @@
}
}
});
-
\ No newline at end of file
+
diff --git a/includes/comparison-table.rst b/includes/comparison-table.rst
index d63a7a4..19720cf 100644
--- a/includes/comparison-table.rst
+++ b/includes/comparison-table.rst
@@ -1,8 +1,8 @@
.. 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
+.. list-table:: Resource Managers
+ :widths: 45 11 11 11 11 11
:header-rows: 1
:stub-columns: 1
:class: comparison-table
@@ -13,281 +13,165 @@
- 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
+ * - License
+ - LGPL-3.0
+ - GPL-2.1
+ - AGPL
+ - proprietary
+ - proprietary
* - Multi-user workload management
- yes
- yes
- yes
- yes
- yes
- - no
- - yes
- - no
- - no
- * - Full hierarchical resource management
+ * - Designed to run in user-space without elevated privilege
- yes
- no
- no
- no
- no
- - n/a
- - n/a
- - n/a
- - n/a
- * - Graph-based advanced resource management
+ * - Minimal privileged code contained in separate package and only required for multi-user instances
- yes
- no
- no
- no
- no
- - n/a
- - n/a
- - n/a
- - n/a
- * - Scheduling specialization
+ * - Multiple, customizable scheduling policies and backfill
+ - yes (with `flux-sched `_)
+ - yes
+ - yes
+ - yes
- yes
+ * - User and project node-hour tracking / accounting
+ - yes (with `flux-accounting `_)
+ - yes
+ - yes
+ - yes
+ - yes
+ * - Full hierarchical resource management
+ - yes [1]_
+ - no
- 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
+ * - Model for scheduling arbitrary resource types
- 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
+ - no
+ - no
+ * - Full scheduling happening in each allocation
+ - yes
+ - no
+ - no
+ - no
+ - no
+ * - Full user control of environment, scheduling policy, resource definitions (and more) in allocations
- 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
+ * - Unified CLI namespace (``flux batch``, ``flux resource``, etc.)
- yes
- no
- no
- no
- no
+ * - Batch script submission directives
+ - yes
- yes
- yes
- yes
- yes
- * - Support for nesting within foreign resource manager
- - yes (Slurm, lsf, ...)
- - n/a
- - n/a
- - n/a
- - n/a
+ * - C language bindings
- yes
+ - viral (see license)
+ - viral (see license)
+ - yes
+ - yes
+ * - Python language bindings
- yes
+ - community supported
- yes
- yes
- * - Fully hierarchical management of instances
+ - no
+ * - REST binding for job submission and monitoring
+ - in progress
- yes
- - n/a
- - n/a
- - n/a
- - n/a
- - no (two level)
- no
- - no (two level)
- - no (two level)
- * - Scheduler specialization for user level
+ - no
+ - no
+ * - Bulk job submission
- yes
- - n/a
- - n/a
- - n/a
- - n/a
+ - only uniform jobs
+ - only uniform jobs
+ - only uniform jobs
+ - only uniform jobs
+ * - Supported binary packages for major Linux distributions
+ - in progress for Fedora/RHEL [2]_
- 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
+ - yes
+ * - Officially supported containers on DockerHub
+ - yes
- no
+ - community supported
- no
- no
- - no
- * - Modern command-line interface (cli) design
+ * - Interoperability with Kubernetes
- 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
+ * - Support for batch job elasticity (grow and shrink on demand)
+ - in progress [3]_
- yes
- no
- yes
- no
- * - Support to launch message passing interface (MPI) jobs
+ * - Automatic failover/restart capabilities (resiliency)
+ - in progress [4]_
+ - yes
+ - yes
+ - yes
+ - yes
+ * - Support for advanced reservations / deferred job start time
+ - in progress [5]_
+ - yes
- yes
- - n/a
- - n/a
- - n/a
- - n/a
- yes
- yes
- - limited support
- - no
\ No newline at end of file
+ * - Multi-cluster shared accounting database
+ - more design needed
+ - yes
+ - yes
+ - yes
+ - yes
+
+Footnotes
+---------
+
+.. [1] `Flux Learning Guide: Fully Hierarchical Resource Management
+ `_
+
+.. [2] `flux-core Issue #7211: Request: Official Packaging for Fedora and EPEL
+ `_
+
+.. [3] `flux-core Issue #2791: discussion: grow support
+ `_
+
+.. [4] `flux-core Issue #3801: enable system instance to be restarted without affecting running jobs
+ `_
+
+.. [5] `flux-core Issue #5201: feature tracking: Advanced Reservations (DATs)
+ `_