Message Boards Message Boards

Apply functions to a nested list in parallel?


Hi. I have a function that generates a nested list containing coordinates, now i want to apply a function to those coordinates.

  'CoordinatesGeneration =   Function[ {m, n, a, b}, Table[Table[{a /2 (i + j), a (j - i), b /2 (k + h),  b (k - h)}, {i, -(1/2) (m - 1), (m - 1)/
          2}, {j, -(1/2) (m - 1), (m - 1)/2}], {h, -(1/2) (n - 1), (n - 1)/2}, {k, -(1/2) (n - 1), (n - 1)/2}]];'

What i tried is to flatten the list and then use partition to group the list each 4 elements and then use apply.

Apply[f ,Partition[Flatten[PositionGeneration[10, 10, a, b]], 4], {1}]]]

It worked, but now i want to do the evaluation in parallel. I try to use ParallelMap with Apply inside and ParallelCombine but it only work if the list was less than 4 groups in 5 groups it doesnt do what i wanted.

ParallelCombine[ f @@@ # &, Partition[Flatten[PositionGeneration[3, 3, a, b]], 4], Plus]

I want to parallelize it because when i have big numbers in counters m,n the evalution can take several seconds, so maybe using parallel functions can speed up a bit.

Thank you.

POSTED BY: Jaime moreno zuleta
1 month ago

Map can operate at low levels in a list

In[2]:= Map[f, {{a, b}, {c, d, e}}, {2}]

Out[2]= {{f[a], f[b]}, {f[c], f[d], f[e]}}
POSTED BY: Frank Kampas
1 month ago

Group Abstract Group Abstract