[Beowulf] Linux Magazine - What He Said
Ellis Wilson
xclski at yahoo.com
Thu Oct 2 12:10:40 PDT 2008
In the article:
"What if a high level programing description language was developed.
Note I did not say programming language. This description language would
allow you to “describe” what you needed to do and not how to do it (as
discussed before)."
I would ask then, how does one "describe what you need to do"? As a
brief (and heinously simplistic) example, let us say that we wanted to
replace a specific string in a long text file with another string. In
assembler, this would be a heinous and explicit long process where we
tell it exactly what we are doing. One could even argue at the C level
we have a fair amount of control, but once we hit fairly high-level
programming languages one merely can say
text.replaceAll(oldstring,newstring); and you are done. You have told
the program what you want done, not how to do it. Would I call Java,
C#, etc. "Programming Description Languages"? No. Therefore I wouldn't
call an even higher level HPC language a description language either.
In the article:
"This draft description would then be presented to an AI based clarifier
which would examine the description, look for inconsistencies or missing
information and work with the programmer to create a formal description
of the problem."
Sounds like regular programming in an intolerant IDE with fancy terminology.
In the article:
"At that point the description is turned over to a really smart compiler
that could target a particular hardware platform and produce the needed
optimized binaries. Perhaps a GA could be thrown in to help optimize
everything."
Later on it is also mentioned that "Maybe it would take a week to create
a binary, but it would be cluster time and not your time", where in
reality with those really troublesome (useful) problems there are truly
terribly long running times. With a GA (which produces eons more bad
solutions than good) we would not only have to ascertain the fitness of
the really nice solution (for those useful problems it could take a week
or more at fastest) but also the fitness of the really really poor
solution that swaps out constantly and computes redundantly. That could
take years...
The basic premise of the GA for code is Genetic Programming or an
Evolutionary Algorithm, and so with these the same problems exist - bad
solutions that monopolize time on the cluster.
Compilers will eventually be entirely AI (though I doubt I will see it)
and when they are, singularity will have already happened and infinite
resources will be available since designing hardware is naturally more
space constrained than software. All I'm saying is for right now, we
are making the most of what we have without involving AI that
extensively in our programming.
Just my opinions, and no hard feelings towards Doug. Typically I enjoy
thoroughly his articles.
Ellis
More information about the Beowulf
mailing list