Are listability and being parallelized the same? In other words, Does parallelizing a listable function which has already a list as of its argument make the computation faster?
In the documentation it is written that a listable function threads over the elements of a list which seems is equal to parallelization if all those threading are calculated simultaneously. If it is not the case. what is the point of making a function listable while we can achieve that by parallelizing a function over a list.
Listable
functions in the kernel can utilize all available threads. Besides, there are two different levels of Listability, the one which is low-level (used in kernel functions), and which allows to push all work into the kernel and avoid top-level threading, and the top-level, which is more a convenience to avoid explicit use ofMap
, than a speed booster. Check out this answer of mine, where I tried ... $\endgroup$ – Leonid Shifrin Dec 22 '14 at 15:39LibraryFunction
as per here. This produces something much more similar to the low-level parallelism and (especially if one uses OpenMP 3) can be extremely versatile. But, you must write the underlying code in C, Fortran, &c., rather than Mathematica. $\endgroup$ – Oleksandr R. Dec 22 '14 at 17:14