The meaning of 'Pool' in Computer Science
A pool is basically some grouping.  It's kinda vague.
In that figure, the &quot;data pool&quot; is just some set of data while the &quot;instruction pool&quot; is just some set of instructions.  The figure means to show that a single instruction and multiple data go into the vector unit at a time, and then that single instruction is applied to each of the multiple data independently.

On the &quot;pooling&quot; design strategy
I clicked the link to &quot;Pool (computer science)&quot;, Wikipedia.  That article's worded a bit confusingly because it's talking about a design strategy called &quot;pooling&quot; rather than discussing the term &quot;pool&quot; itself.
Pooling is when a resource is collected up into a pool for some reason.  Because it's such a vague term, it can apply in a lot of different situations, so it's hard to give a more specific description without overstating it.
But to give a common example, there's thread pooling in which a bunch of threads are kept alive-and-waiting to do jobs.  This pattern's often useful when you might have a bunch of little jobs that you want to run on different CPU cores.  Then, whenever you want to run a job, you pick an available thread from the thread pool and have it run the job.
In principle, you don't actually need a thread pool; you could instead create a new thread each time you want to run a new job.  The problem's that threads can be expensive to create and dismiss, so if you're running a bunch of little jobs, it's often highly inefficient to keep creating/releasing threads.
That said, &quot;pooling&quot; is unrelated to what the SIMD diagram was referring to as a &quot;data pool&quot; and &quot;instruction pool&quot;.  In that diagram, they just meant that they had a bunch of things data and instructions to use on them, which they vaguely referred to as existing in pools.