Как распараллелить доступ к общему массиву в Python с помощью concurrent.futures?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как распараллелить доступ к общему массиву в Python с помощью concurrent.futures?

Сообщение Anonymous »

У меня есть следующий фрагмент кода, иллюстрирующий мою проблему:
Каждый поток вычисляет локальные значения, а затем обновляет массив результатов. Предположим, что это обновлять (result[locs] += mask[locs] ) — очень медленная операция, как ее распараллелить, чтобы можно было использовать многопоточность?
import numpy as np
import time
import concurrent.futures

MAX = 100
SIZE = 500
mask = np.random.randint(0, MAX, (SIZE, SIZE))

def process_image(i):
start = time.time()
locs = np.where(mask > i)
print(f" process_image({i}) took {round(time.time() - start, 2)} secs.")
return locs

if __name__ == '__main__':

result = np.zeros((SIZE, SIZE))

with concurrent.futures.ThreadPoolExecutor(max_workers=32) as executor:
results = [executor.submit(process_image, i) for i in range(MAX) ]
for f in concurrent.futures.as_completed(results):
locs = f.result()
# How do I parallelize this operation? Where the result of each thread updates a shared result array
result[locs] += mask[locs]

print(result)


Подробнее здесь: https://stackoverflow.com/questions/785 ... rent-futur
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблемы со сбором всех тиковых данных с помощью Concurrent.futures в Python
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Отмена всех задач в случае сбоя с помощью concurrent.futures в Python
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Отмена всех задач в случае сбоя с помощью concurrent.futures в Python
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Отмена всех задач в случае сбоя с помощью concurrent.futures в Python
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Pandas: объединить по общему столбцу, сохранив все остальные столбцы, и отсортировать по общему столбцу.
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»