Re: p.s., Re: VisAD 3D surface graph performance

Hi Bill,

Thanks so much for your reply. I should preface my response by indicating my hope that you saw the second addendum message that I sent out. The number in my initial mail (380) referred to a single "group" of Depth parameters. There were 20 such groups in my data set, so the true number of points was 7600. But even that number is small compared to the 42000 that you mentioned in your first reply! I think that you nailed my problem, though, in your p.s. I am using the TextAdapter to read in my data files, and I looked at TextAdapter.java to see what was going on. Sure enough, based on my defined math type, it is creating an Irregular set using the Delaunay algorithm. I did some brief research online and found out that performance of Delaunay can be as high as O(n^2), so that helped me to understand what was happening. I read one post where someone was plotting over 100,000 points using the algorithm, and had to wait for over 8 hours for the calculations to complete. I read about other algorithms out there, but Delaunay seems to be one that is prevalent. I feel better just having an explanation for what I am seeing. If I have time, I might do a little more research into the Delaunay algorithm. One post suggested that a way to reduce performance time is to pre-sort one of the vectors involved in the calculations (the vector that is associated with the most dramatic changes in data values). They indicated that such a step could result in a performance savings of 25%. But, like I said, this is just cursory research.

At any rate, I have been very pleased with VisAD, and this is really the only issue that I've run into (although I've had a few questions along the way, as my recent posts will attest ;). And it's not really an issue, in the long run. For large data sets I can always plot 3D line graphs, which are extremely quick.

Thanks again!
lzf

Bill Hibbard wrote:

Another possibility is that you are constructing an
IrregularSet in your data, which can be slow. But
Test29 constructs and displays a colored surface from
an Irregular2DSet of 1024 points in just a few seconds.

On Fri, 8 Apr 2005, Bill Hibbard wrote:

Hi Lezlie,

Something's wrong here. Lots of the test programs in the
visad/examples directory render surfaces with RGB mappings
that are much larger than 380 points, and much quicker than
a minute even on my old 500 MHz laptop with a bad old
graphics card. You might try running Test33, Test37 and
Test61 (its volume rendering is made of a series of flat
surfaces with a total of over 42000 points, and runs in a
few seconds on my laptop).

Bill

On Thu, 7 Apr 2005, Lezlie Fort wrote:

Hello,

I have a VisAD performance question.

I've written recently before - indicating that I am creating a number of
different graphs using ASCII space-separated input files.  One of the
graph types that I'm generating is a "4D" surface graph.  Yesterday, I
ran a case with the following math type:  (Time,Depth)->(Speed,col),
where "col" is a fourth dimension that I have mapped to Display.RGB.
The case that I ran had about 380 data points in  all four vectors, and
I found that on my Linux box (nVidia GeForce FX graphics card, 1.5GHz
processor, 512M RAM), it took about 1.5 minutes for the graph to
generate.  On my Windows XP box (2.27 GHz processor, 512M RAM, Intel
82845G video board - Open GL version of Java3D), it took about 3.5
minutes to generate.  I ran additional cases where I increased the data
size, and ended up killing the graph-generation process after 5 minutes
of intensive disk-chunking.  I know that 3D surface generation is very
computation-intensive (3D line graphs of the same data come up almost
instantly), but I was wondering if these performance numbers that I'm
seeing are typical.  I've tried to find information on other graphing
packages (eg:  MatLab) to determine what kind of performance one would
expect with them, but seem to have encountered varied information.  Any
ideas on whether what I'm seeing is typical, or is there perhaps
something that I am doing extremely incorrectly?

Thanks alot,
lzf