Define the execution locus of the UDTF
The system invokes UDTFs either on the host, one SPU, or all the SPUs, at the discretion of the optimizer. When you create or alter the UDTF, you can specify the preferred execution locus of the UDTF to the optimizer.
If you register the UDTF as PARALLEL ALLOWED, the table function can be invoked on either the host or a SPU. The optimizer chooses the locus based on its calculations for optimal performance. In general, if you specify PARALLEL ALLOWED and use non-literal arguments, the UDTF typically executes on the SPU. If you register the function as PARALLEL NOT ALLOWED (or, --noparallel for the nzudxcompile command), the system invokes the UDTF on the host or a single SPU, but not on all the SPUs. The default behavior is PARALLEL ALLOWED.
An uncorrelated table function (one with all literal arguments) always executes on the host because the query can have inconsistent behavior otherwise. The output would vary based on the number of dataslices.