Импорт большого объема памяти iGraph исчерпан - PullRequest
2 голосов
/ 15 сентября 2011

Я пытаюсь импортировать большой файл LGL (~ 2 ГБ) и пытаюсь импортировать его в igraph, используя

graph = Graph.Read_Lgl("Biggraph.lgl")

Выдается ошибка

Traceback (most recent call last):
  File "graph.py", line8, in <module>
    graph = Graph.Read_Lgl("Biggraph.lgl")
igraph.core.InternalError: Error at foreign.c:359: Parse error in LGL file, line 9997 (memory exhausted), Parse Error

Я не уверен, что именно здесь происходит.Ошибка исчерпания памяти заставляет меня думать, что память, выделенная для python (или лежащая в основе C), используется при попытке прочитать файл, но это почти происходит мгновенно , как будто это даже не пытаетсяделать много.Может быть, он смотрит на размер файла и говорит: «Ой, не могу этого сделать».

Серьезно, я понятия не имею, что происходит.Что я предполагал от iGraph, так это то, что он может обрабатывать очень большие графы, и я не думаю, что мой граф слишком велик для него.

Я сам сгенерировал файл lgl, но я уверен, что синтаксис правильный.На самом деле эта ошибка не выглядит так, как будто есть проблема с моим lgl-файлом, но я могу ошибаться («Parse error» меня пугает).

Я просто решил, что попробую здесь и посмотрю,Любой, кто более заинтересован в том, как работает iGraph, знает, как быстро решить эту проблему (или расширить память).Спасибо.

1 Ответ

3 голосов
/ 16 сентября 2011

Кстати, постер обнаружил ошибку в библиотеке igraph, и сейчас мы работаем над ее исправлением. Проблема вызвана праворекурсивным правилом в спецификации синтаксического анализатора bison для формата LGL. Как только у нас будет официальный патч для него в стволе проекта, я опубликую здесь URL патча, если другие столкнутся с такой же проблемой.


Обновление : URL-адреса патчей:

...