{ "cells": [ { "cell_type": "markdown", "id": "7f1e1d69-4db6-4c20-91a2-1bfae5913262", "metadata": {}, "source": [ "# Ensemble propagations\n", "\n", "Starting with version 0.17.0, heyoka.py offers support for\n", "*ensemble propagations*. In ensemble mode, multiple distinct\n", "instances of the same ODE system are integrated in parallel,\n", "typically using different sets of initial conditions and/or\n", "[runtime parameters](<./Non-autonomous systems.ipynb>).\n", "Monte Carlo simulations and parameter\n", "searches are two typical examples of tasks in which ensemble mode\n", "is particularly useful.\n", "\n", "\n", "The ensemble mode API mirrors the time-limited propagation\n", "functions available in the\n", "[adaptive integrator class](<./The adaptive integrator.ipynb>). Specifically,\n", "three functions are available:\n", "\n", "* ``ensemble_propagate_until()``, for ensemble propagations\n", " up to a specified epoch,\n", "* ``ensemble_propagate_for()``, for ensemble propagations\n", " for a time interval,\n", "* ``ensemble_propagate_grid()``, for ensemble propagations\n", " over a time grid.\n", "\n", "In this tutorial, we will be focusing on the ``ensemble_propagate_until()``\n", "function, but adapting the code to the other two functions\n", "should be straightforward.\n", "\n", "At this time, ensemble propagations can use multiple threads of executions or multiple processes\n", "to achieve parallelisation. In the future, additional parallelisation\n", "modes (e.g., distributed) may be added.\n", "\n", "## A simple example\n", "\n", "As usual, for this illustrative tutorial we will be using the ODEs of the simple pendulum.\n", "Thus, let us begin with the definition of the symbolic variables and of an integrator object:" ] }, { "cell_type": "code", "execution_count": 1, "id": "2dda1582-49dd-48f7-b9d3-2c97da223be0", "metadata": {}, "outputs": [], "source": [ "import heyoka as hy\n", "\n", "x, v = hy.make_vars(\"x\", \"v\")\n", "\n", "# Create the integrator object.\n", "ta = hy.taylor_adaptive(\n", " # Definition of the ODE system:\n", " # x' = v\n", " # v' = -9.8 * sin(x)\n", " sys = [(x, v),\n", " (v, -9.8 * hy.sin(x))],\n", " # Initial conditions for x and v.\n", " state = [0. ,0.])" ] }, { "cell_type": "markdown", "id": "bbe55131-092e-4599-ba2d-574258d7be2c", "metadata": {}, "source": [ "Note how, differently from the other tutorials, here we have set the initial conditions\n", "to zeroes. This is because, in ensemble mode, we will never use directly the ``ta`` object to perform\n", "a numerical integration. Rather, ``ta`` acts as a *template* from which other integrator\n", "objects will be constructed, and thus its initial conditions are inconsequential.\n", "\n", "The ``ensemble_propagate_until()`` function takes in input at least 4 arguments:\n", "\n", "* the template integrator ``ta``,\n", "* the final epoch ``t`` for the propagations (this argument would be a time interval ``delta_t``\n", " for ``ensemble_propagate_for()`` and a time grid for ``ensemble_propagate_grid()``),\n", "* the number of iterations ``n_iter`` in the ensemble,\n", "* a function object ``gen``, known as the *generator*.\n", "\n", "The generator is a callable that takes two input arguments:\n", "\n", "* a *deep copy* of the template integrator ``ta``, and\n", "* an iteration index ``idx`` in the ``[0, n_iter)`` range.\n", "\n", "``gen`` is then expected to modify the copy of ``ta`` (e.g., by setting its initial conditions to specific\n", "values) and return it.\n", "\n", "The ``ensemble_propagate_until()`` function iterates over\n", "the ``[0, n_iter)`` range. At each iteration, the generator ``gen`` is invoked,\n", "with the template integrator as the first argument and the current iteration number\n", "as the second argument. The ``propagate_until()`` member\n", "function is then called on the integrator returned by ``gen``, and the result of the propagation\n", "is appended to a list of results which is finally returned by\n", "``ensemble_propagate_until()`` once all the propagations have finished.\n", "\n", "Let us see a concrete example of ``ensemble_propagate_until()`` in action. First, we\n", "begin by creating 10 sets of different initial conditions to be used in the ensemble\n", "propagations:" ] }, { "cell_type": "code", "execution_count": 2, "id": "9acf11a0-737c-4bf5-bb01-33c66b39a880", "metadata": {}, "outputs": [], "source": [ "# Create 10 sets of random initial conditions,\n", "# one for each element of the ensemble.\n", "import numpy as np\n", "\n", "ensemble_ics = np.array([0.05, 0.025]) + np.random.uniform(-1e-2, 1e-2, (10, 2))" ] }, { "cell_type": "markdown", "id": "032130bf-ad3c-48d3-9471-58f55448f44b", "metadata": {}, "source": [ "Next, we define a generator that will pick a set of initial conditions from ``ensemble_ics``,\n", "depending on the iteration index:" ] }, { "cell_type": "code", "execution_count": 3, "id": "1a4b6afb-bf40-4ec3-a212-018e5eed3778", "metadata": {}, "outputs": [], "source": [ "# The generator.\n", "def gen(ta_copy, idx):\n", " # Reset the time to zero.\n", " ta.time = 0.\n", " \n", " # Fetch initial conditions from ensemble_ics.\n", " ta_copy.state[:] = ensemble_ics[idx]\n", "\n", " return ta_copy" ] }, { "cell_type": "markdown", "id": "56099503-e598-4ee9-a3bd-dbd2d0b6e287", "metadata": {}, "source": [ "We are now ready to invoke the ``ensemble_propagate_until()`` function:" ] }, { "cell_type": "code", "execution_count": 4, "id": "17a0c401-0622-43a8-ab76-01c3d07beedc", "metadata": {}, "outputs": [], "source": [ "# Run the ensemble propagation up to t = 20.\n", "ret = hy.ensemble_propagate_until(ta, 20., 10, gen)" ] }, { "cell_type": "markdown", "id": "7b10f210-0e87-4a4a-8b5f-9d37bb4e29f0", "metadata": {}, "source": [ "The value returned by ``ensemble_propagate_until()`` is a list of tuples constructed by concatenating the integrator\n", "object used for each integration and the tuple returned by each ``propagate_until()`` invocation. This way, at the end\n", "of an ensemble propagation it is possible to inspect both the state of each integrator object and the output of\n", "each invocation of ``propagate_until()`` (including, e.g., the [continuous output](<./Dense output.ipynb>), if\n", "requested).\n", "\n", "For instance, let us take a look at the first value in ret:" ] }, { "cell_type": "code", "execution_count": 5, "id": "a472f195-2115-4f0e-938e-1272b359e09b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(Tolerance : 2.2204460492503131e-16\n", " High accuracy : false\n", " Compact mode : false\n", " Taylor order : 20\n", " Dimension : 2\n", " Time : 20.000000000000000\n", " State : [0.053129579044398502, 0.061908760550694837],\n", " ,\n", " 0.1973814707168774,\n", " 0.22082912150625117,\n", " 98,\n", " None)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ret[0]" ] }, { "cell_type": "markdown", "id": "5d8ca095-607f-45c7-80f6-1dce6ea519ef", "metadata": {}, "source": [ "The first element of the tuple is the integrator object that was used in the invocation of ``propagate_until()``. The remaining elements of the tuple are the output of the ``propagate_until()`` invocation (i.e., integration outcome, min/max timestep, etc., as detailed in the [adatpive integrator tutorial](<./The adaptive integrator.ipynb>)).\n", "\n", "The ``ensemble_propagate_until()`` function can be invoked with additional optional keyword arguments, beside the mandatory initial 4:\n", "\n", "* the ``algorithm`` keyword argument is a string that specifies the parallelisation algorithm that will be used by ``ensemble_propagate_until()``. The supported values are currently ``\"thread\"`` (the default) and ``\"process\"`` (see below for a discussion of the pros and cons of each method);\n", "* the ``max_workers`` keyword argument is an integer that specifies how many workers are spawned during parallelisation. Defaults to ``None``, see the [Python docs](https://docs.python.org/3/library/concurrent.futures.html) for a detailed explanation;\n", "* the ``chunksize`` keyword argument is an integer that specifies the size of the tasks that are submitted to the parallel workers. Defaults to 1, see the [Python docs](https://docs.python.org/3/library/concurrent.futures.html) for a detailed explanation.\n", " This keyword argument can be specified only when using the ``process`` parallelisation method.\n", "\n", "Any other keyword argument passed to ``ensemble_propagate_until()`` will be forwarded to the ``propagate_until()`` invocations.\n", "\n", "Let us see a comprehensive example with multiple keyword arguments:" ] }, { "cell_type": "code", "execution_count": 6, "id": "170a1ced-e5e4-4bac-9202-88afb8b45fe7", "metadata": {}, "outputs": [], "source": [ "ret = hy.ensemble_propagate_until(ta, 20., 10, gen,\n", " # Use no more than 8 worker threads.\n", " max_workers = 8,\n", " # Request continuous output.\n", " c_output = True\n", " )" ] }, { "cell_type": "markdown", "id": "21255ca0-8e6f-43b2-bc01-e81b5bb6557e", "metadata": {}, "source": [ "Let us now use the continuous output to plot the evolution of the $x$ coordinate over time for each element of the ensemble:" ] }, { "cell_type": "code", "execution_count": 7, "id": "60acef69-9e6b-487e-96c1-2cae45600770", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from matplotlib.pylab import plt\n", "\n", "fig = plt.figure(figsize=(10, 5))\n", "\n", "# Create a time range.\n", "t_rng = np.linspace(0, 10., 500)\n", "\n", "for tup in ret:\n", " # Fetch the continuous output function object.\n", " c_out = tup[5]\n", "\n", " plt.plot(t_rng, c_out(t_rng)[:,0])\n", "\n", "plt.xlabel(\"$t$\")\n", "plt.ylabel(\"$x$\")\n", "plt.tight_layout();" ] }, { "cell_type": "markdown", "id": "9be70417-5214-46ce-9759-539c51344da2", "metadata": {}, "source": [ "## Choosing between threads and processes\n", "\n", "Ensemble propagations default to using multiple threads of execution for parallelisation. Multithreading usually performs better than multiprocessing, however there are at least two big caveats to keep in mind when using multithreading:\n", "\n", "* first, it is the user's responsibility to ensure that the user-provided function objects such as the generator and\n", " the callbacks (if present) are safe for use in a multithreaded context. In particular, the following actions will be performed\n", " concurrently by separate threads of execution:\n", "\n", " * invocation of the generator's call operator and of the call operator\n", " of the callback that can (optionally) be passed to the ``propagate_*()``\n", " functions. In other words, both the generator and the ``propagate_*()``\n", " callback are shared among several threads of execution and used\n", " concurrently;\n", " * deep copy of the events callbacks and invocation of the\n", " call operator on the copies. That is, each thread of execution\n", " gets its own copy of the event callbacks thanks to the creation\n", " of a new integrator object via the generator.\n", " \n", " For instance, an event callback which performs write operations\n", " on a global variable without using some form of synchronisation\n", " will result in unpredictable behaviour when used in an ensemble propagation.\n", " Similarly, a ``propagate_*()`` callback that\n", " performs write operations into its own data member(s) without\n", " synchronisation will also result in a data race, because the\n", " ``propagate_*()`` callback is shared among several threads;\n", "\n", "* second, due to the [global interpreter lock (GIL)](https://docs.python.org/3/glossary.html#term-global-interpreter-lock), Python is typically not able to execute code concurrently from multiple threads.\n", " Thus, if a considerable portion of the integration time if spent executing user-defined callbacks, ensemble simulations will exhibit poor parallel speedup.\n", "\n", "As an alternative, it is possible to use multiple *processes* (instead of threads) when performing ensemble propagations by passing the keyword argument ``algorithm=\"process\"``. Processes have a higher initial creation overhead, but they also feature two important advantages:\n", "\n", "* there are no safety concerns regarding data sharing, as each process gets its own copy of all the data necessary to perform an integration;\n", "* the GIL performance issues are avoided because there are multiple Python interpreters running in parallel (rather than multiple threads sharing exclusive access to a single interpreter), and thus ensemble propagations with event detection may parallelise more efficiently when using multiprocessing.\n", "\n", "When employing multiprocessing, users should be aware that the ``chunksize`` keyword argument can have a big influence on performance. Please see the explanation in the [Python docs](https://docs.python.org/3/library/concurrent.futures.html) for more detailed information." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.12" } }, "nbformat": 4, "nbformat_minor": 5 }