[prev in list] [next in list] [prev in thread] [next in thread] 

List:       graphviz-interest
Subject:    [graphviz-interest] Estimating Graph Time/Optimizing
From:       erg () research ! att ! com (Emden R !  Gansner)
Date:       2006-01-23 14:51:54
Message-ID: 43D533D7.1070107 () research ! att ! com
[Download RAW message or body]

Moe Aboulkheir wrote:
> 
> 2) i know nothing about graph theory, and so am ignorant about what 
> neato is spending it's time on, whether rendering or laying things out 
> in memory or whatever.  so far it's been running for about a day, but 
> hasn't yet written any output.  i'm not surprised - i expect it will 
> take several days (maybe weeks?) to generate this graph, but i'm 
> wondering if there is some way i can obtain an estimate of how long it 
> will take for a given graph, (other than cutting the dot file down to an 
> nth of it's size and multiplying to time it takes to render by n)
> 

The time is all being spent laying out the graph. neato is quadratic in the
number of nodes so a 300K node graph is going to take quite a while. It
continues until a certain tolerance is reached or for so many iterations,
so you can get a rough upper bound by seeing how long one interation takes (run neato -v) and
multiply that by the number of iterations, which is 200 by default.

> 2.5) are there any techniques i can employ to make it generate the 
> output faster, e.g. dividing the graph into subgraphs or something.  
> again, i am ignorant.
> 

The maxiter and epsilon attributes control the number of iterations and the tolerance.
Setting these lower and higher will produce output faster, with a corresponding loss in
layout quality, but for big graphs this often isn't a problem.

For graphs this size, there is really nothing you can do. There has been some good work
recently creating new layout techniques which can layout millions of nodes in a few seconds,
but these typically produce good output only on certain special types of graphs.


     Emden


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic