Nicolas,
The GNU Radio scheduler hands your block a certain number of samples everytime the blocks work function is called. The work function gets called many times over the course of a running flowgraph. To be technically correct, the scheduler tells your block how much memory it has to store output (noutput_items) and makes sure you have enough input to produce an output, which it learned from the forecast() function. In your case, you're seeing the scheduler give 4096 samples to the block in a call to work. This doesn't mean you are stuck using only 4096 samples, it just means you have to write your code so that it collects what it needs over the course of several calls to work and then computes an output. I know this is hard to understand for beginners, but it's central to how GNU Radio works, so worth absorbing.
set_output_multiple() gives you a little more control on what noutput_items will be. For example, set_output_multiple(100000) tells the scheduler that it shouldn't call your work function unless it can provide 100,000 noutput_items or more. That means it could be 200,000, 300,000, N*100,000 where N is a positive integer. If you overuse this, you might hurt performance of your flowgraph, because you're placing additional constraints on the scheduler. I try to avoid it unless I find I really need it. I almost never need it.