Comments on current (3/10/06) version of BASIN

From: Dave Goldberg <goldberg@drexel.edu>
Date: Mon Mar 13 2006 - 11:38:48 EST

All,

Anthony gave me a tutorial on the state of the BASIN art on Friday, and
I have a number of comments. I've already chatted with Enrico about
most of these, and you should interpret comments as questions rather
than instructions (for now) UNLESS a) I appoint you directly to solve
it, or b) it clearly falls under the header of your assignment as
discussed in last week's meeting.

So here goes:

I. Install problems, etc.

1) Authors of "sample" basin_local programs should make sure that all
necessary data files are in the basin/data directory. I've done a cvs
add (though not a commit) for test.speck

2) As of now, we do not have a cvs repository for current (modified)
versions of partiview. AJD has agreed to remedy this. Make sure you
give Jason all necessary info so that he may include build instructions
in the documentation.

II. Comments about existing structure

1) Documentation. Jason, the user_doc guide needs to contain not only
the instructions for installation and running of a test code, but also
enough samples bits of code to help a user get his bearings without
trying to parse the existing version of basin_local.

2) Doxygen. Does not seem to be automated. One can run this directly
within a particular subdirectory, but from ~/basin, running "make docs"
"make doxygen" etc. does nothing.

3) The current make seems to make basin_local a privileged filename.
Make should be configured so that "make blah" automatically looks for
blah.C, or blah.c checks the timestamp, and links it with the basin
library, and puts it in the current directory.

4) basin_local.C has waaaaay too many items in the header. A simple file
should be included in the "include" directory with a name along the
lines of "basin_includes.h" or something, which includes all necessary
(or possible) headers. Yes, yes, we may need some ifdefs in there, but
it's far better than asking someone to copy in a dozen includes.
Remember, a simple basin program should only be a

III. Changes/Additional Functions

1) In order to simplify code, the functions mpi_init, mpi_commsize, and
mpi_comm_rank should all be combined into a single basin_init function.
  Likewise, we should have a basin_finalize function which is just a
wrapper for mpi_finalize.

2) It would be helpful to include a function basin_out (equivalent of
cout), which automatically checks to see if you are processor 0. All
output which is sent by all processors can still use cout.

3) It would be good to have an additional attribute constructor which
takes the form:

attribute attr2=attr1.subset(begin,end,increment)

As I've discussed with Enrico, the best case would be something of the form:

attribute attr2=attr1[begin:end]

but let's not get out of hand here!

IV. Bugs

1) There are STILL some instances of the word "genvector" in functions
accessible to the user. The file "genvector.h" should be changed to
"attribute.h", and all genvectors should be changed to attributes (Jason).

2) As you well know there is a problem with the interface between basin
and partiview, presumbly in the function:
parti.sendData(points);
when the number of points is too large. This needs to be fixed.

3) There seems to be a problem with "read_speck()". Taking only the
first 100 lines of Louis's test.speck file in an attempt to do a
rudimentary test of partiview (/home/goldberg/basin/data/new.speck), I
get a crash during the read process. It is not clear why.

-------

That's all for now. If anybody has thoughts, clarifications, or wishes
to volunteer (if it's not clear that they or somebody else has been
assigned) to address one of these, please respond to Enrico, Steve and I
directly (to minimize on cross-talk).

Thanks

DG
Received on Mon Mar 13 11:38:44 2006

This archive was generated by hypermail 2.1.8 : Fri Aug 08 2008 - 19:25:03 EDT