Код занимает много времени в распределенных машинах - PullRequest
0 голосов
/ 25 октября 2019

У меня есть массивы (изображения) и я выполняю некоторые операции фильтрации. Работа на локальном компьютере работает быстрее, чем в распределенной среде из 2 компьютеров.

На локальном компьютере с 4 ядрами это занимает 32 секунды, в то время как в распределенном с 4 ядрами на рабочем месте это занимает 400 секунд.

ray.init('192.168.0.115:6379')

num_cpus=4

@ray.remote
class Counter(object):
        - def f(self,image, random_filter):
        # Do some image processing
        - return scipy.signal.convolve2d(image, random_filter)[::5, ::5]

filters = [np.random.normal(size=(4, 4)) for _ in range(num_cpus)]

counters = [Counter.remote() for _ in range(num_cpus)]
print('counters',counters)


 for _ in range(15):
    - image = np.zeros((3000, 3000))
    - image_id = ray.put(image)
    - results=ray.get([c.f.remote(image_id, filters[i]) for i,c in enumerate(counters)])

    print('result',results)

Я хочу распараллелить его на двух машинах, чтобы сократить время вычислений.

...