Answers.Body: <p>The only purpose of the "Ponder" UCI option in Stockfish is to inform the engine about that you will use pondering so that it can consider this fact in its time management, as can be seen in <a href="https://github.com/official-stockfish/Stockfish/blob/46ce245763705c89dba60dcfda549dc1f64eb48b/src/timeman.cpp#L131-L132" rel="nofollow noreferrer">https://github.com/official-stockfish/Stockfish/blob/46ce245763705c89dba60dcfda549dc1f64eb48b/src/timeman.cpp#L131-L132</a>:</p>
  
  <pre><code>  if (Options["Ponder"])
        optimumTime += optimumTime / 4;
  </code></pre>
  
  <p>Since the option is boolean, you should enable it by setting it to "true", i.e.: </p>
  
  <pre><code>setoption name Ponder value true
  </code></pre>
  
  <p>Stockfish will then use a more aggressive time management, since it knows that it will also be able to use the opponent's thinking time.</p>
  
  <p>This is consistent with how the <a href="http://wbec-ridderkerk.nl/html/UCIProtocol.html" rel="nofollow noreferrer">UCI protocol</a> defines the ponder option:</p>
  
  <pre><code>        *  = Ponder, type check
              this means that the engine is able to ponder.
              The GUI will send this whenever pondering is possible or not.
              Note: The engine should not start pondering on its own if this is enabled, this option is only
              needed because the engine might change its time management algorithm when pondering is allowed.
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-15T19:05:27.340Z
Answers.Text: I just noticed that when I do `go ponder` it seems that it starts calculate for the current position, not for the ponder move. Should I update the position first?
Answers.UserDisplayName: Jeanluca Scaljeri
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-15T19:21:03.103Z
Answers.Text: This should be answered by https://chess.stackexchange.com/questions/14216/im-confused-by-uci-pondering-and-time-control (the short answer is "yes").
Answers.UserDisplayName: Fabian Fichter
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-15T13:21:21.343Z
Answers.LastActivityDate: 2019-06-15T13:29:49.523Z
Answers.LastEditDate: 2019-06-15T13:29:49.523Z
Answers.UserDisplayName: Fabian Fichter
Body: <p>I'm trying to understand stockfish Ponder functionality. I'm very interested to let stockfish think when the opponent is thinking. From what I understand you can do it as follows</p>
  
  <pre><code>$&gt; uci
  $&gt; ucinewgame
  $&gt; position startpos moves e2e4
  $&gt; go wtime 599999 btime 600000
     ... // after 2 seconds
     bestmove d8a5 ponder a2a4
  $&gt; go ponder wtime 599999 btime 598000
  // wait for opponent --&gt; a2a4 (ponderhit)
  $&gt; ponderhit
     bestmove a7a5 ponder b2b4
  </code></pre>
  
  <p>But there is also a Ponder option</p>
  
  <pre><code>$&gt; setoption name Ponder value on
  </code></pre>
  
  <p>No matter what I set it too</p>
  
  <pre><code>$&gt; setoption name Ponder value 3
  </code></pre>
  
  <p>it doesn't complain and I'm not sure what it does. The behaviour is identical, I still have to manually do <code>go ponder...</code>. 
  How should I use this option and what exactly does it do?</p>
  
Tags: <stockfish><uci>
Title: How to use the Ponder option in stockfish / UCI
ThreadText: # How to use the Ponder option in stockfish / UCI
  
  (Asked by: username_0 on 2019-06-15)
  
  I'm trying to understand stockfish Ponder functionality. I'm very interested to let stockfish think when the opponent is thinking. From what I understand you can do it as follows
  
  ```
  $> uci
  $> ucinewgame
  $> position startpos moves e2e4
  $> go wtime 599999 btime 600000
     ... // after 2 seconds
     bestmove d8a5 ponder a2a4
  $> go ponder wtime 599999 btime 598000
  // wait for opponent --> a2a4 (ponderhit)
  $> ponderhit
     bestmove a7a5 ponder b2b4
  
  ```
  
  But there is also a Ponder option
  
  ```
  $> setoption name Ponder value on
  
  ```
  
  No matter what I set it too
  
  ```
  $> setoption name Ponder value 3
  
  ```
  
  it doesn't complain and I'm not sure what it does. The behaviour is identical, I still have to manually do `go ponder...`.
  How should I use this option and what exactly does it do?
  
  **Tags:** stockfish, uci
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2019-06-15. Score: 4 | Accepted answer
  
  The only purpose of the "Ponder" UCI option in Stockfish is to inform the engine about that you will use pondering so that it can consider this fact in its time management, as can be seen in <https://github.com/official-stockfish/Stockfish/blob/46ce245763705c89dba60dcfda549dc1f64eb48b/src/timeman.cpp#L131-L132>:
  
  ```
    if (Options["Ponder"])
        optimumTime += optimumTime / 4;
  
  ```
  
  Since the option is boolean, you should enable it by setting it to "true", i.e.:
  
  ```
  setoption name Ponder value true
  
  ```
  
  Stockfish will then use a more aggressive time management, since it knows that it will also be able to use the opponent's thinking time.
  
  This is consistent with how the [UCI protocol](http://wbec-ridderkerk.nl/html/UCIProtocol.html) defines the ponder option:
  
  ```
          *  = Ponder, type check
              this means that the engine is able to ponder.
              The GUI will send this whenever pondering is possible or not.
              Note: The engine should not start pondering on its own if this is enabled, this option is only
              needed because the engine might change its time management algorithm when pondering is allowed.
  
  ```
  
  > **Comments:**
  > **username_0**: I just noticed that when I do `go ponder` it seems that it starts calculate for the current position, not for the ponder move. Should I update the position first?  
  > **username_1**: This should be answered by https://chess.stackexchange.com/questions/14216/im-confused-by-uci-pondering-and-time-control (the short answer is "yes").  
  
  ---
  
  