Skip to content

Commit

Permalink
Adds attribution to images
Browse files Browse the repository at this point in the history
  • Loading branch information
ilumsden committed Apr 10, 2024
1 parent 223861e commit 72d56e4
Showing 1 changed file with 41 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@
"\n",
"In traditional batch scheduling (e.g., what Slurm provides), users send requests for resources and jobs to a centralized service (i.e., the scheduler), which stores the requests in a queue and fulfills them as possible.\n",
"\n",
"![img/single-submit.png](img/single-submit.png)\n",
"<figure>\n",
"<img src=\"img/single-submit.png\">\n",
"<figcaption>\n",
"<i>Image created by Vanessa Sochat for Flux Framework Components documentation</i></figcaption>\n",
"</figure>\n",
"\n",
"To allow for this type of scheduling, schedulers like Slurm provide 3 main operations:\n",
"1. Submitting jobs\n",
Expand Down Expand Up @@ -376,15 +380,27 @@
"\n",
"With traditional batch schedulers (e.g., Slurm), all job requests from all users are submitted to one centralized service. Note that our maximum job throughput is one job per second.\n",
"\n",
"![img/single-submit.png](img/single-submit.png)\n",
"<figure>\n",
"<img src=\"img/single-submit.png\">\n",
"<figcaption>\n",
"<i>Image created by Vanessa Sochat for Flux Framework Components documentation</i></figcaption>\n",
"</figure>\n",
"\n",
"The throughput of this approach is limited by the scheduler's ability to process a single job. To improve throughput, Flux introduces the ability to launch multiple Flux instances within an existing Flux instance. This creates a hierarchy of Flux instances across which job requests can be distributed. For example, let's say we create a Flux instance that has control of some number of nodes. We then create 3 child instances (each with its own scheduler and queue). By scheduling across this hierarchy of instances, we get a throughput of 1x3, or 3 jobs per second.\n",
"\n",
"![img/instance-submit.png](img/instance-submit.png)\n",
"<figure>\n",
"<img src=\"img/instance-submit.png\">\n",
"<figcaption>\n",
"<i>Image created by Vanessa Sochat for Flux Framework Components documentation</i></figcaption>\n",
"</figure>\n",
"\n",
"By leveraging a hierarchy of Flux instances to achieve a divide-and-conquer approach to scheduling, we can exponentially increase throughput. The figure below (from our [learning guide](https://flux-framework.readthedocs.io/en/latest/guides/learning_guide.html#fully-hierarchical-resource-management-techniques)) shows this exponential increase in an actual experiment. We were able to submit 500 jobs/second using only a three-level hierarchy, whereas a centralized scheduler (1-Level in the figure) was only able to achieve one 1 job/second.\n",
"\n",
"![img/scaled-submit.png](img/scaled-submit.png)\n",
"<figure>\n",
"<img src=\"img/scaled-submit.png\">\n",
"<figcaption>\n",
"<i>Image from <a href=\"https://flux-framework.readthedocs.io/en/latest/guides/learning_guide.html#fully-hierarchical-resource-management-techniques\">Flux learning guide</a></i></figcaption>\n",
"</figure>\n",
"\n",
"There are several ways to create hierarchies of Flux instances. In this tutorial, we will focus on 2 of them:\n",
"1. Through nested invocations of `flux batch`\n",
Expand Down Expand Up @@ -490,7 +506,11 @@
"\n",
"With these flags, `flux tree` creates the hierarchy shown in the image below, with each leaf-level instance scheduling the `hostname` program.\n",
"\n",
"![img/flux-tree.png](img/flux-tree.png)\n",
"<figure>\n",
"<img src=\"img/flux-tree.png\">\n",
"<figcaption>\n",
"<i>Image created by Ian Lumsden based on images by Vanessa Sochat</i></figcaption>\n",
"</figure>\n",
"\n",
"For this tutorial, we show `flux tree` with a relatively simple job (i.e., `hostname`). However, since this command accepts any valid jobspec that can be recognized by `flux submit`, it can be used to rapidly deploy much more complex scenarios, including scenarios where different programs are run on each leaf-level instance."
]
Expand All @@ -510,10 +530,24 @@
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python"
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
"nbformat_minor": 4
}

0 comments on commit 72d56e4

Please sign in to comment.