NUMA-friendly initialization of numpy.ndarray
I'd initialize the array with np.empty and then pass the buffer to the C function. That should allow each core to grab whatever pages from the array it needs during the initialization.
Is it possible to initialize a numpy.ndarray in a parallel fashion such that the corresponding pages will be distributed among the NUMA-nodes on the system?
The ndarray will later be passed to a multi-threaded C function which yields much better performance if the passed data is allocated in parallel (adhering to the first-touch policy)