Skip to content

Commit f7666d8

Browse files
Deployed b5e999d with MkDocs version: 1.6.0
1 parent ceeee12 commit f7666d8

5 files changed

Lines changed: 166 additions & 162 deletions

File tree

objects.inv

9 Bytes
Binary file not shown.

reference/spotpython/utils/parallel/index.html

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5125,7 +5125,7 @@ <h2 id="spotpython.utils.parallel.evaluate_row" class="doc doc-heading">
51255125
<div class="highlight"><pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">spotpython.utils.parallel</span> <span class="kn">import</span> <span class="n">evaluate_row</span>
51265126
<span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
51275127
<span class="gp">&gt;&gt;&gt; </span><span class="k">def</span> <span class="nf">sample_objective</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">control</span><span class="p">):</span>
5128-
<span class="gp">... </span> <span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="n">row</span><span class="p">)</span> <span class="o">+</span> <span class="n">control</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;offset&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
5128+
<span class="gp">... </span> <span class="k">return</span> <span class="n">row</span> <span class="o">+</span> <span class="n">control</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">&#39;offset&#39;</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
51295129
<span class="gp">&gt;&gt;&gt; </span><span class="n">row</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
51305130
<span class="gp">&gt;&gt;&gt; </span><span class="n">fun_control</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;offset&#39;</span><span class="p">:</span> <span class="mi">10</span><span class="p">}</span>
51315131
<span class="gp">&gt;&gt;&gt; </span><span class="n">evaluate_row</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">sample_objective</span><span class="p">,</span> <span class="n">fun_control</span><span class="p">)</span>
@@ -5134,8 +5134,7 @@ <h2 id="spotpython.utils.parallel.evaluate_row" class="doc doc-heading">
51345134

51355135
<details class="quote">
51365136
<summary>Source code in <code>spotpython/utils/parallel.py</code></summary>
5137-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 7</span>
5138-
<span class="normal"> 8</span>
5137+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 8</span>
51395138
<span class="normal"> 9</span>
51405139
<span class="normal">10</span>
51415140
<span class="normal">11</span>
@@ -5157,7 +5156,12 @@ <h2 id="spotpython.utils.parallel.evaluate_row" class="doc doc-heading">
51575156
<span class="normal">27</span>
51585157
<span class="normal">28</span>
51595158
<span class="normal">29</span>
5160-
<span class="normal">30</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">evaluate_row</span><span class="p">(</span><span class="n">row</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">,</span> <span class="nb">list</span><span class="p">],</span> <span class="n">objective_function</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[</span><span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">,</span> <span class="n">Any</span><span class="p">],</span> <span class="n">Any</span><span class="p">],</span> <span class="n">fun_control</span><span class="p">:</span> <span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Any</span><span class="p">:</span>
5159+
<span class="normal">30</span>
5160+
<span class="normal">31</span>
5161+
<span class="normal">32</span>
5162+
<span class="normal">33</span>
5163+
<span class="normal">34</span>
5164+
<span class="normal">35</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">evaluate_row</span><span class="p">(</span><span class="n">row</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">,</span> <span class="nb">list</span><span class="p">],</span> <span class="n">objective_function</span><span class="p">:</span> <span class="n">Callable</span><span class="p">[[</span><span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">,</span> <span class="n">Any</span><span class="p">],</span> <span class="n">Any</span><span class="p">],</span> <span class="n">fun_control</span><span class="p">:</span> <span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Any</span><span class="p">:</span>
51615165
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
51625166
<span class="sd"> Evaluates a single row using the provided objective function.</span>
51635167

@@ -5174,12 +5178,16 @@ <h2 id="spotpython.utils.parallel.evaluate_row" class="doc doc-heading">
51745178
<span class="sd"> &gt;&gt;&gt; from spotpython.utils.parallel import evaluate_row</span>
51755179
<span class="sd"> &gt;&gt;&gt; import numpy as np</span>
51765180
<span class="sd"> &gt;&gt;&gt; def sample_objective(row, control):</span>
5177-
<span class="sd"> ... return sum(row) + control.get(&#39;offset&#39;, 0)</span>
5181+
<span class="sd"> ... return row + control.get(&#39;offset&#39;, 0)</span>
51785182
<span class="sd"> &gt;&gt;&gt; row = [1, 2, 3]</span>
51795183
<span class="sd"> &gt;&gt;&gt; fun_control = {&#39;offset&#39;: 10}</span>
51805184
<span class="sd"> &gt;&gt;&gt; evaluate_row(row, sample_objective, fun_control)</span>
51815185
<span class="sd"> array([11, 12, 13])</span>
51825186
<span class="sd"> &quot;&quot;&quot;</span>
5187+
<span class="k">if</span> <span class="n">fun_control</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
5188+
<span class="k">if</span> <span class="s2">&quot;seed&quot;</span> <span class="ow">in</span> <span class="n">fun_control</span><span class="p">:</span>
5189+
<span class="n">seed</span> <span class="o">=</span> <span class="n">fun_control</span><span class="p">[</span><span class="s2">&quot;seed&quot;</span><span class="p">]</span>
5190+
<span class="n">set_all_seeds</span><span class="p">(</span><span class="n">seed</span><span class="p">)</span>
51835191
<span class="k">return</span> <span class="n">objective_function</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="n">row</span><span class="p">]),</span> <span class="n">fun_control</span><span class="p">)</span>
51845192
</code></pre></div></td></tr></table></div>
51855193
</details>
@@ -5307,10 +5315,7 @@ <h2 id="spotpython.utils.parallel.make_parallel" class="doc doc-heading">
53075315

53085316
<details class="quote">
53095317
<summary>Source code in <code>spotpython/utils/parallel.py</code></summary>
5310-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 75</span>
5311-
<span class="normal"> 76</span>
5312-
<span class="normal"> 77</span>
5313-
<span class="normal"> 78</span>
5318+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 78</span>
53145319
<span class="normal"> 79</span>
53155320
<span class="normal"> 80</span>
53165321
<span class="normal"> 81</span>
@@ -5338,7 +5343,10 @@ <h2 id="spotpython.utils.parallel.make_parallel" class="doc doc-heading">
53385343
<span class="normal">103</span>
53395344
<span class="normal">104</span>
53405345
<span class="normal">105</span>
5341-
<span class="normal">106</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">make_parallel</span><span class="p">(</span><span class="n">obj_func</span><span class="p">,</span> <span class="n">num_cores</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s2">&quot;mp&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Callable</span><span class="p">:</span>
5346+
<span class="normal">106</span>
5347+
<span class="normal">107</span>
5348+
<span class="normal">108</span>
5349+
<span class="normal">109</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">make_parallel</span><span class="p">(</span><span class="n">obj_func</span><span class="p">,</span> <span class="n">num_cores</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s2">&quot;mp&quot;</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Callable</span><span class="p">:</span>
53425350
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
53435351
<span class="sd"> Creates a parallelized wrapper function for the given objective function.</span>
53445352

@@ -5538,12 +5546,7 @@ <h2 id="spotpython.utils.parallel.parallel_objective_function" class="doc doc-he
55385546

55395547
<details class="quote">
55405548
<summary>Source code in <code>spotpython/utils/parallel.py</code></summary>
5541-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">33</span>
5542-
<span class="normal">34</span>
5543-
<span class="normal">35</span>
5544-
<span class="normal">36</span>
5545-
<span class="normal">37</span>
5546-
<span class="normal">38</span>
5549+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">38</span>
55475550
<span class="normal">39</span>
55485551
<span class="normal">40</span>
55495552
<span class="normal">41</span>
@@ -5577,7 +5580,10 @@ <h2 id="spotpython.utils.parallel.parallel_objective_function" class="doc doc-he
55775580
<span class="normal">69</span>
55785581
<span class="normal">70</span>
55795582
<span class="normal">71</span>
5580-
<span class="normal">72</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">parallel_objective_function</span><span class="p">(</span><span class="n">objective_function</span><span class="p">,</span> <span class="n">X</span><span class="p">,</span> <span class="n">num_cores</span><span class="p">,</span> <span class="n">fun_control</span><span class="p">,</span> <span class="n">method</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">:</span>
5583+
<span class="normal">72</span>
5584+
<span class="normal">73</span>
5585+
<span class="normal">74</span>
5586+
<span class="normal">75</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">parallel_objective_function</span><span class="p">(</span><span class="n">objective_function</span><span class="p">,</span> <span class="n">X</span><span class="p">,</span> <span class="n">num_cores</span><span class="p">,</span> <span class="n">fun_control</span><span class="p">,</span> <span class="n">method</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">np</span><span class="o">.</span><span class="n">ndarray</span><span class="p">:</span>
55815587
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
55825588
<span class="sd"> Executes an objective function in parallel using either multiprocessing or joblib.</span>
55835589

@@ -5608,13 +5614,11 @@ <h2 id="spotpython.utils.parallel.parallel_objective_function" class="doc doc-he
56085614
<span class="sd"> &gt;&gt;&gt; parallel_objective_function(sample_objective, X, num_cores=2, fun_control=fun_control, method=&#39;joblib&#39;)</span>
56095615
<span class="sd"> array([16, 25, 34])</span>
56105616
<span class="sd"> &quot;&quot;&quot;</span>
5611-
<span class="k">with</span> <span class="n">Manager</span><span class="p">()</span> <span class="k">as</span> <span class="n">manager</span><span class="p">:</span>
5612-
<span class="n">shared_control</span> <span class="o">=</span> <span class="n">manager</span><span class="o">.</span><span class="n">dict</span><span class="p">(</span><span class="n">fun_control</span><span class="p">)</span>
5613-
<span class="k">if</span> <span class="n">method</span> <span class="o">==</span> <span class="s2">&quot;mp&quot;</span><span class="p">:</span>
5614-
<span class="k">with</span> <span class="n">Pool</span><span class="p">(</span><span class="n">processes</span><span class="o">=</span><span class="n">num_cores</span><span class="p">)</span> <span class="k">as</span> <span class="n">pool</span><span class="p">:</span>
5615-
<span class="n">results</span> <span class="o">=</span> <span class="n">pool</span><span class="o">.</span><span class="n">starmap</span><span class="p">(</span><span class="n">evaluate_row</span><span class="p">,</span> <span class="p">[(</span><span class="n">row</span><span class="p">,</span> <span class="n">objective_function</span><span class="p">,</span> <span class="n">shared_control</span><span class="p">)</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">X</span><span class="p">])</span>
5616-
<span class="k">elif</span> <span class="n">method</span> <span class="o">==</span> <span class="s2">&quot;joblib&quot;</span><span class="p">:</span>
5617-
<span class="n">results</span> <span class="o">=</span> <span class="n">Parallel</span><span class="p">(</span><span class="n">n_jobs</span><span class="o">=</span><span class="n">num_cores</span><span class="p">)(</span><span class="n">delayed</span><span class="p">(</span><span class="n">evaluate_row</span><span class="p">)(</span><span class="n">row</span><span class="p">,</span> <span class="n">objective_function</span><span class="p">,</span> <span class="n">shared_control</span><span class="p">)</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">X</span><span class="p">)</span>
5617+
<span class="k">if</span> <span class="n">method</span> <span class="o">==</span> <span class="s2">&quot;mp&quot;</span><span class="p">:</span>
5618+
<span class="k">with</span> <span class="n">Pool</span><span class="p">(</span><span class="n">processes</span><span class="o">=</span><span class="n">num_cores</span><span class="p">)</span> <span class="k">as</span> <span class="n">pool</span><span class="p">:</span>
5619+
<span class="n">results</span> <span class="o">=</span> <span class="n">pool</span><span class="o">.</span><span class="n">starmap</span><span class="p">(</span><span class="n">evaluate_row</span><span class="p">,</span> <span class="p">[(</span><span class="n">row</span><span class="p">,</span> <span class="n">objective_function</span><span class="p">,</span> <span class="n">fun_control</span><span class="p">)</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">X</span><span class="p">])</span>
5620+
<span class="k">elif</span> <span class="n">method</span> <span class="o">==</span> <span class="s2">&quot;joblib&quot;</span><span class="p">:</span>
5621+
<span class="n">results</span> <span class="o">=</span> <span class="n">Parallel</span><span class="p">(</span><span class="n">n_jobs</span><span class="o">=</span><span class="n">num_cores</span><span class="p">)(</span><span class="n">delayed</span><span class="p">(</span><span class="n">evaluate_row</span><span class="p">)(</span><span class="n">row</span><span class="p">,</span> <span class="n">objective_function</span><span class="p">,</span> <span class="n">fun_control</span><span class="p">)</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">X</span><span class="p">)</span>
56185622

56195623
<span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">results</span><span class="p">)</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
56205624
</code></pre></div></td></tr></table></div>

search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)