Skip to content

Commit 443ad2e

Browse files
committed
deploy: da2da95
1 parent 1a80d4f commit 443ad2e

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

_modules/lzero/worker/muzero_evaluator.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,16 @@ <h1>Source code for lzero.worker.muzero_evaluator</h1><div class="highlight"><pr
374374
<span class="n">ready_env_id</span> <span class="o">=</span> <span class="n">ready_env_id</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">new_available_env_id</span><span class="p">)[:</span><span class="n">remain_episode</span><span class="p">]))</span>
375375
<span class="n">remain_episode</span> <span class="o">-=</span> <span class="nb">min</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">new_available_env_id</span><span class="p">),</span> <span class="n">remain_episode</span><span class="p">)</span>
376376

377+
<span class="c1"># In a parallel evaluation setting, it&#39;s possible for all active environments to finish their</span>
378+
<span class="c1"># episodes simultaneously. This can leave `ready_env_id` temporarily empty while the environments</span>
379+
<span class="c1"># are being reset by the manager.</span>
380+
<span class="c1"># To prevent processing an empty batch, which would cause an IndexError or other errors downstream,</span>
381+
<span class="c1"># we check if `ready_env_id` is empty. If so, we sleep briefly to prevent a busy-wait,</span>
382+
<span class="c1"># and `continue` to the next loop iteration to wait for newly reset environments to become available.</span>
383+
<span class="k">if</span> <span class="ow">not</span> <span class="n">ready_env_id</span><span class="p">:</span>
384+
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mf">0.01</span><span class="p">)</span>
385+
<span class="k">continue</span>
386+
377387
<span class="n">stack_obs</span> <span class="o">=</span> <span class="p">{</span><span class="n">env_id</span><span class="p">:</span> <span class="n">game_segments</span><span class="p">[</span><span class="n">env_id</span><span class="p">]</span><span class="o">.</span><span class="n">get_obs</span><span class="p">()</span> <span class="k">for</span> <span class="n">env_id</span> <span class="ow">in</span> <span class="n">ready_env_id</span><span class="p">}</span>
378388
<span class="n">stack_obs</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">stack_obs</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
379389

0 commit comments

Comments
 (0)