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) + `_