Skip to content

Commit 26b5ddc

Browse files
committed
deploy: 9286f4a
1 parent 099f4f9 commit 26b5ddc

15 files changed

Lines changed: 174 additions & 144 deletions

File tree

reference/arenas/battlecode/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2060,7 +2060,7 @@ <h3 id="codeclash.arenas.battlecode25.battlecode25.BattleCode25Arena.execute_rou
20602060
<span class="n">cmd</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">run_cmd_round</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="s1">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span>
20612061
<span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Running game: </span><span class="si">{</span><span class="n">cmd</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
20622062

2063-
<span class="k">with</span> <span class="n">ThreadPoolExecutor</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span> <span class="k">as</span> <span class="n">executor</span><span class="p">:</span>
2063+
<span class="k">with</span> <span class="n">ThreadPoolExecutor</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">game_config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;sim_concurrency&quot;</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span> <span class="k">as</span> <span class="n">executor</span><span class="p">:</span>
20642064
<span class="c1"># Submit all simulations to the thread pool</span>
20652065
<span class="n">futures</span> <span class="o">=</span> <span class="p">[</span>
20662066
<span class="n">executor</span><span class="o">.</span><span class="n">submit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_run_single_simulation</span><span class="p">,</span> <span class="n">agents</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="n">cmd</span><span class="p">)</span>

reference/arenas/battlesnake/index.html

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2181,7 +2181,12 @@ <h3 id="codeclash.arenas.battlesnake.battlesnake.BattleSnakeArena.execute_round"
21812181
<span class="normal">144</span>
21822182
<span class="normal">145</span>
21832183
<span class="normal">146</span>
2184-
<span class="normal">147</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">execute_round</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">agents</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="n">Player</span><span class="p">]):</span>
2184+
<span class="normal">147</span>
2185+
<span class="normal">148</span>
2186+
<span class="normal">149</span>
2187+
<span class="normal">150</span>
2188+
<span class="normal">151</span>
2189+
<span class="normal">152</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">execute_round</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">agents</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="n">Player</span><span class="p">]):</span>
21852190
<span class="bp">self</span><span class="o">.</span><span class="n">_failed_to_start_player</span> <span class="o">=</span> <span class="p">[]</span>
21862191
<span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">agents</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">&quot;Battlesnake requires at least two players&quot;</span>
21872192
<span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Starting game servers&quot;</span><span class="p">)</span>
@@ -2214,8 +2219,13 @@ <h3 id="codeclash.arenas.battlesnake.battlesnake.BattleSnakeArena.execute_round"
22142219
<span class="k">try</span><span class="p">:</span>
22152220
<span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Running game with players: </span><span class="si">{</span><span class="nb">list</span><span class="p">(</span><span class="n">player2port</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
22162221

2217-
<span class="c1"># Use ThreadPoolExecutor for parallel execution</span>
2218-
<span class="k">with</span> <span class="n">ThreadPoolExecutor</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span> <span class="k">as</span> <span class="n">executor</span><span class="p">:</span>
2222+
<span class="c1"># Use ThreadPoolExecutor for parallel execution. Concurrency is configurable</span>
2223+
<span class="c1"># (game.sim_concurrency): the single-threaded bot servers serialize move</span>
2224+
<span class="c1"># requests, so total concurrency across all parallel pairs must stay bounded or</span>
2225+
<span class="c1"># responses exceed the move timeout and games degenerate. When running many pairs</span>
2226+
<span class="c1"># concurrently (ladder --workers), lower this so workers*sim_concurrency stays ~20.</span>
2227+
<span class="n">max_sim_workers</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">game_config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;sim_concurrency&quot;</span><span class="p">,</span> <span class="mi">20</span><span class="p">)</span>
2228+
<span class="k">with</span> <span class="n">ThreadPoolExecutor</span><span class="p">(</span><span class="n">max_sim_workers</span><span class="p">)</span> <span class="k">as</span> <span class="n">executor</span><span class="p">:</span>
22192229
<span class="c1"># Submit all simulations to the thread pool</span>
22202230
<span class="n">futures</span> <span class="o">=</span> <span class="p">[</span>
22212231
<span class="n">executor</span><span class="o">.</span><span class="n">submit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_run_single_simulation</span><span class="p">,</span> <span class="n">player2port</span><span class="p">,</span> <span class="n">idx</span><span class="p">)</span>
@@ -2254,12 +2264,7 @@ <h3 id="codeclash.arenas.battlesnake.battlesnake.BattleSnakeArena.get_results" c
22542264

22552265
<details class="mkdocstrings-source">
22562266
<summary>Source code in <code>codeclash/arenas/battlesnake/battlesnake.py</code></summary>
2257-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">149</span>
2258-
<span class="normal">150</span>
2259-
<span class="normal">151</span>
2260-
<span class="normal">152</span>
2261-
<span class="normal">153</span>
2262-
<span class="normal">154</span>
2267+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">154</span>
22632268
<span class="normal">155</span>
22642269
<span class="normal">156</span>
22652270
<span class="normal">157</span>
@@ -2282,7 +2287,12 @@ <h3 id="codeclash.arenas.battlesnake.battlesnake.BattleSnakeArena.get_results" c
22822287
<span class="normal">174</span>
22832288
<span class="normal">175</span>
22842289
<span class="normal">176</span>
2285-
<span class="normal">177</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_results</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">agents</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="n">Player</span><span class="p">],</span> <span class="n">round_num</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">stats</span><span class="p">:</span> <span class="n">RoundStats</span><span class="p">):</span>
2290+
<span class="normal">177</span>
2291+
<span class="normal">178</span>
2292+
<span class="normal">179</span>
2293+
<span class="normal">180</span>
2294+
<span class="normal">181</span>
2295+
<span class="normal">182</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">get_results</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">agents</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="n">Player</span><span class="p">],</span> <span class="n">round_num</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="n">stats</span><span class="p">:</span> <span class="n">RoundStats</span><span class="p">):</span>
22862296
<span class="n">scores</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span>
22872297
<span class="n">available_players</span> <span class="o">=</span> <span class="p">[</span><span class="n">player</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">player</span> <span class="ow">in</span> <span class="n">agents</span> <span class="k">if</span> <span class="n">player</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_failed_to_start_player</span><span class="p">]</span>
22882298
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">available_players</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
@@ -2333,12 +2343,7 @@ <h3 id="codeclash.arenas.battlesnake.battlesnake.BattleSnakeArena.validate_code"
23332343

23342344
<details class="mkdocstrings-source">
23352345
<summary>Source code in <code>codeclash/arenas/battlesnake/battlesnake.py</code></summary>
2336-
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">179</span>
2337-
<span class="normal">180</span>
2338-
<span class="normal">181</span>
2339-
<span class="normal">182</span>
2340-
<span class="normal">183</span>
2341-
<span class="normal">184</span>
2346+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">184</span>
23422347
<span class="normal">185</span>
23432348
<span class="normal">186</span>
23442349
<span class="normal">187</span>
@@ -2355,7 +2360,12 @@ <h3 id="codeclash.arenas.battlesnake.battlesnake.BattleSnakeArena.validate_code"
23552360
<span class="normal">198</span>
23562361
<span class="normal">199</span>
23572362
<span class="normal">200</span>
2358-
<span class="normal">201</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">validate_code</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">agent</span><span class="p">:</span> <span class="n">Player</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">]:</span>
2363+
<span class="normal">201</span>
2364+
<span class="normal">202</span>
2365+
<span class="normal">203</span>
2366+
<span class="normal">204</span>
2367+
<span class="normal">205</span>
2368+
<span class="normal">206</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">validate_code</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">agent</span><span class="p">:</span> <span class="n">Player</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span><span class="p">]:</span>
23592369
<span class="n">listing</span> <span class="o">=</span> <span class="n">agent</span><span class="o">.</span><span class="n">environment</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s2">&quot;ls&quot;</span><span class="p">)[</span><span class="s2">&quot;output&quot;</span><span class="p">]</span>
23602370
<span class="c1"># Non-Python submissions declare how to launch their server via run.sh (any</span>
23612371
<span class="c1"># language). We trust the launch script here; a broken one is caught at runtime</span>

reference/arenas/bridge/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2267,7 +2267,7 @@ <h3 id="codeclash.arenas.bridge.bridge.BridgeArena.execute_round" class="doc doc
22672267
<span class="n">cmd</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">run_cmd</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">shlex</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">agent_paths</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span>
22682268

22692269
<span class="c1"># Run simulations in parallel</span>
2270-
<span class="k">with</span> <span class="n">ThreadPoolExecutor</span><span class="p">(</span><span class="n">max_workers</span><span class="o">=</span><span class="mi">8</span><span class="p">)</span> <span class="k">as</span> <span class="n">executor</span><span class="p">:</span>
2270+
<span class="k">with</span> <span class="n">ThreadPoolExecutor</span><span class="p">(</span><span class="n">max_workers</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">game_config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;sim_concurrency&quot;</span><span class="p">,</span> <span class="mi">8</span><span class="p">))</span> <span class="k">as</span> <span class="n">executor</span><span class="p">:</span>
22712271
<span class="n">futures</span> <span class="o">=</span> <span class="p">[</span>
22722272
<span class="n">executor</span><span class="o">.</span><span class="n">submit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_run_single_simulation</span><span class="p">,</span> <span class="n">agents</span><span class="p">,</span> <span class="n">idx</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">cmd</span><span class="si">}</span><span class="s2"> --seed </span><span class="si">{</span><span class="n">idx</span><span class="si">}</span><span class="s2"> --dealer </span><span class="si">{</span><span class="n">idx</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">4</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
22732273
<span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">sims</span><span class="p">)</span>

reference/arenas/corewar/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2058,7 +2058,7 @@ <h3 id="codeclash.arenas.corewar.corewar.CoreWarArena.execute_round" class="doc
20582058
<span class="normal">44</span>
20592059
<span class="normal">45</span>
20602060
<span class="normal">46</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span><span class="w"> </span><span class="nf">execute_round</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">agents</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="n">Player</span><span class="p">]):</span>
2061-
<span class="k">with</span> <span class="n">ThreadPoolExecutor</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="k">as</span> <span class="n">executor</span><span class="p">:</span>
2061+
<span class="k">with</span> <span class="n">ThreadPoolExecutor</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">game_config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;sim_concurrency&quot;</span><span class="p">,</span> <span class="mi">4</span><span class="p">))</span> <span class="k">as</span> <span class="n">executor</span><span class="p">:</span>
20622062
<span class="n">futures</span> <span class="o">=</span> <span class="p">[</span><span class="n">executor</span><span class="o">.</span><span class="n">submit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_run_single_simulation</span><span class="p">,</span> <span class="n">agents</span><span class="p">,</span> <span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">agents</span><span class="p">))]</span>
20632063
<span class="k">for</span> <span class="n">future</span> <span class="ow">in</span> <span class="n">as_completed</span><span class="p">(</span><span class="n">futures</span><span class="p">):</span>
20642064
<span class="n">future</span><span class="o">.</span><span class="n">result</span><span class="p">()</span>

0 commit comments

Comments
 (0)