It's 'complicated' as usual, but in general parallelising things like + and * is a waste of resources. Currently parallelised are +/ .* and a few of the 128!: ops.

On Sun, 22 Jan 2023, Raul Miller wrote:

On Sun, Jan 22, 2023 at 2:46 AM Elijah Stone <[email protected]> wrote:
And parallelisable primitives will
always be run by threads in pool 0 (for now); never by threads in the pool
where they were kicked off (unless that happens to be pool 0).

I see mention of this in nuvoc:

https://code.jsoftware.com/wiki/Vocabulary/tcapdot#Threadpools

But I do not understand which primitives are "parallelizable".

Intuitively, I imagine that this would be all primitive operations
(either monadic or dyadic) with a non-infinite rank and no required
side effects.

But expecting that all addition and multiplication happens in pool 0
for a task running in pool 1 baffles me, as a design decision. If my
interpretation was correct, what would be the current advantage for
using this approach? Or, if my interpretation is wrong, what does
"parallelizable primitive" mean?

Thanks,


--
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to