I need to feed to an external program a number of points (in Complex128
format) generated from the numerical evaluation of some function, e.g. $e^{i \vec{k}\cdot\vec{x}}$. The function is evaluated at points of some evenly spaced grid. I currently generate the values with Table
(possibly multidimensional, and then Flatten
'd) and send it to a file with BinaryWrite
. However, this is rather slow, because I use a number of points in the order of $2^{24}$ or more. I tried with ParallelTable
, but I inspected with perf
and it appears that when transferring the data to the main kernel there's a lot of UTF string encoding going on for whatever reason, which defeats the speedup in the parallelization.
Is there any smarter way to accomplish what I need?