Numba: разделение массива между процессами - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть пустой массив X. Я хочу поделиться им среди процессов. В каждом процессе я вызываю функцию foo (), которая читает X. Я хочу, чтобы foo () была присоединена, например ::

    X = np.zeros(1000)

    @jit(nopython=True)
    def foo(i):
        return np.max(X[:,i])

    pool = mp.Pool(processes=10)
    for i in range(10):
        pool.apply_async(foo, args=(i,))
    pool.close()
    pool.join()

У меня проблема с разделением X между процессами.

  1. Numba не любит глобальные переменные.
  2. Если я помещу все в класс, Нумба выдаст мне ошибку "cannot determine Numba type of <class '__main__.MyClass'>"

Как я могу разделить X между всеми процессами, чтобы каждый процесс не считывал его и / или не выбирал X?

...