user19338: 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?

user15415: 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 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.


19338: <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>
 15415: <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>
