Mul
 a parallel implementation of mul

 Calling Sequence Mul( f,i = m..n ) Mul( f,i = x ) Mul( f,i in x ) Mul[ tasksize = s ]( ... )

Parameters

 f - (expression) i - (name) m, n - numeric value x - (expression) s - (optional, posint) maximum task size

Description

 • The Mul command is a parallel implementation of the mul command. For a complete description of the calling sequence of Mul, see the mul help page.
 • Mul is implemented using the Task programming model.
 • Mul attempts to determine how to divide the input into separate tasks to spread the work across all available cores.  However in some situations Mul may not choose the optimal size.  In particular a small number of long running tasks may not be spread evenly over all threads.  In this case, you can specify the maximum task size using the tasksize option. Mul will divide the input into tasks that compute at most tasksize elements within a single task.

Examples

 > $\mathrm{with}\left(\mathrm{Threads}\right):$
 > $\mathrm{Mul}\left(i,i=1..5\right)$
 ${120}$ (1)
 > $L≔\left[\mathrm{seq}\left(i,i=1..5\right)\right]$
 ${L}{:=}\left[{1}{,}{2}{,}{3}{,}{4}{,}{5}\right]$ (2)
 > $\mathrm{Mul}\left(x-i,i=L\right)$
 $\left({x}{-}{1}\right){}\left({x}{-}{2}\right){}\left({x}{-}{3}\right){}\left({x}{-}{4}\right){}\left({x}{-}{5}\right)$ (3)
 > $\mathrm{Mul}\left(i,i=0..-\mathrm{∞}\right)$
 ${1}$ (4)