Как исправить постоянно растущее использование памяти Ray? - PullRequest
1 голос
/ 18 апреля 2019

Я начал использовать ray для распределенного машинного обучения, и у меня уже есть некоторые проблемы. Использование памяти просто растет, пока не произойдет сбой программы. Хотя я постоянно очищаю список, память как-то подтекает. Есть идеи почему?

Мои характеристики: Платформа ОС и ее распространение: Ubuntu 16.04 Рэй установлен из: двоичный Луч версия: 0.6.5 Версия Python: 3.6.8

Я уже пытался использовать экспериментальную очередь вместо класса DataServer, но проблема все та же.

import numpy as np
import ray
import time
ray.init(redis_max_memory=100000000)


@ray.remote
class Runner():
    def __init__(self, dataList):
        self.run(dataList)

    def run(self,dataList):
        while True:
            dataList.put.remote(np.ones(10))

@ray.remote
class Optimizer():
    def __init__(self, dataList):
        self.optimize(dataList)

    def optimize(self,dataList):
        while True:
            dataList.pop.remote()

@ray.remote
class DataServer():
    def __init__(self):
        self.dataList= []

    def put(self,data):
        self.dataList.append(data)

    def pop(self):
        if len(self.dataList) !=0:
            return self.dataList.pop()
    def get_size(self):
        return len(self.dataList)


dataServer = DataServer.remote()
runner = Runner.remote(dataServer)
optimizer1 = Optimizer.remote(dataServer)
optimizer2 = Optimizer.remote(dataServer)

while True:
    time.sleep(1)
    print(ray.get(dataServer.get_size.remote()))

Через некоторое время после запуска появляется сообщение об ошибке:

...