[Server-sky] CUDA versus optimization (2)

Keith Lofstrom keithl at kl-ic.com
Tue Apr 7 04:53:37 UTC 2009


On Mon, Apr 06, 2009 at 08:01:52PM -0700, M. Edward (Ed) Borasky wrote:
> 
> Is there a source control repository created yet? If not, there are a
> couple of options. I have most of mine on GitHub now -- all of the new
> stuff is going there, anyhow. You can get a repository for free for
> open source projects. If you're used to Subversion or CVS, there's a
> learning curve, but Git does help prevent independent developers from
> trashing the repository accidentally. You have to really work at it if
> you want to mess it up. :)

One thing I like about the older tools is that there are interfaces for
browsing code on the web, downloading designated snapshots, etc.  I
fully expect those to grow up around Git if they have not already. 
If those simple interface tools are available, we should consider Git. 

But for all things, keep in mind the main goal - getting server sky
accepted and funded, and jobs for us and our friends.  If there are
more upper level managers and investors that understand what CVS or
Subversion does, or if simple-to-use multiplatform download/view
tools are not available yet for Git, then we should not do that yet. 
We can always migrate to it later. 

Code repositories are a nice-to-have at this stage;  they are not
a must-have, and are unlikely to have any effect on investment. 
Build one and manage it if it helps you do your work.  I can
configure Apache to redirect git.server-sky.com to whatever URL
you wish.  But that falls in the category of optimization.

A useful mental model:  Imagine that in order to get groceries, you
had to teach the individual store checkout clerk your toolchain. 
And that it is a different clerk each time.  And that groceries
spoil.  What minimum set of simple tools should you pick so you
can rapidly teach J.  Random Store Clerk and not starve?  It turns
out that getting investment is not so very different than that. 
98% of investors, and the people that advise them, don't know
any more than a store clerk about the merits of different code
repository tools.  

If we get investment from Mark Shuttleworth, we use bazaar, and
live with it.  If we get investment from Intel, we use X86 
architecture, and live with it.  If we optimize too early, we 
will have a lot of retreat-and-restart to do.

EVERYTHING we should be doing now is about getting to YES with as
little distraction as possible.  Later on, we might have to port
stuff to other platforms.  But at least we will get paid while we
do so.

> Did you look at the Geomview / SaVi screenshots? That strikes me as
> pretty good eye candy, it's open source, it's set up for
> constellations already, and I think we could get data for existing
> satellites. 

I looked at the SaVi site, and there are a lot of static analyses 
that we can do with it.  The pictures it makes are good eye candy,
and I would be pleased if somebody would make some ground coverage
maps for a sparse set of arrays in the m288 orbit (assume an evenly
spaced constellation of 1, 2, 3 etc. arrays along the equatorial
circle).  Look at the coverage effects of one off-line array. 
What is the smallest set needed for a given always-on latitude?
These kinds of analyses don't need to be animated, but they are 
the kind of questions people will ask, and visualizations will
help us answer them.

SaVi is lousy for showing potential collisions with m288, though.
It only does two dimensional projections.  If SaVi was scaled up
so that each collider was a 1 kilometer on a side, then the image
out to GEO would be 90,000 pixels wide.  There are more than 10,000
objects to consider on that scale, and the resulting furball of 
orbits would scare people, not make our point that there are wide
gaps between them.  It is the right tool for some things, the wrong
tool for others.

> The only think I haven't figured out is how to make
> animated GIFs with it. xvidcap will make AVI, QuickTime, Shockwave
> Flash, and varying dialects of MPEG, but not animated GIFs. The other
> downside is that the scripting, if we need to do any, is in Tcl/Tk and
> not Perl. Tcl is supposedly an easy language to learn, but I bypassed
> it and went directly from awk to Perl. :)

The main thing is to DO IT.  I've got a hell of a lot of work to do in
the next 9 days, and I am ignoring suggestions that aren't backed with
usable results.  ANYTHING involving a steep learning curve will be
ignored until at least the middle of May sometime. 

As always, the easiest language is the full-capability one that you
already know.  I like Tony's idea of using C++.  It may be suboptimal
for some things, but a lot of people know it, at least as a second 
language.  We should use C++ for big computing tasks, ordinary 
calculation, generating graphics etc.  Website CGI interfaces should
use an interpretive language like Perl, because Perl has builtin bounds
checking and modules for validating input data that lemonade C++ does
not.  Perl can still call engines written in C++ for big calculations.

> What other computing do we plan to do besides orbit calculations, and
> maybe a finite element vibration analysis? There are math libraries
> for GPUs that will do the common stuff -- Fast Fourier Transforms,
> matrix operations, etc. I wouldn't think we'd need to do any low-level
> CUDA code.

Well, look at the site and look for marked action items and do them.
Or think about your own questions and answer those.  There are a whole
bunch of questions, and there are many aspects of this to model. 
Phased array communication ground coverage, synthetic aperture radar,
perturbations by perigee drag and the tools and time needed to establish
accurate new orbital elements, all these things involve calculation.
Other calculations might involve computing the appearance of huge
deployments of serversats from the ground (probably white "horns"
in the early morning and evening skies).   50 years from now, arrays
of power sats may be deployed to the Earth/Sun L4 and L5 Lagrange
points.  What will those look like?  How much heat radiation will
we get from them?  How much power can they collect?  How much power
can they send to Earth without noticably raising the black body
temperature?  There are all sorts of near term and long term questions.

This will involve learning some domain-specific knowledge (like phased
array antennas), and thinking about the primary task, which is pleasing
potential investors.  Libraries are capabilities, not solutions. 
Solutions involve problem statements, analysis, coding, testing,
documenting, demonstrations, etc.  Most of what you do will be replaced
by second pass code.  But it is our first pass code - quick, dirty, and
mostly generating pretty and understandable pictures - that will lead
investors to write checks.

Keith

-- 
Keith Lofstrom          keithl at keithl.com         Voice (503)-520-1993
KLIC --- Keith Lofstrom Integrated Circuits --- "Your Ideas in Silicon"
Design Contracting in Bipolar and CMOS - Analog, Digital, and Scan ICs


More information about the Server-sky mailing list