home .. forth .. colorforth mail list archive ..

Re: [colorforth] Hello - and where to begin?


> Jeff Fox wrote:
> Well then ... suppose you build a SEAforth PC -- wrap up a few billion
> or trillion Forth MIPS in a box with RAM, some mass storage, a keyboard,
> video, audio and mouse, running colorforth. Where would this machine
> have a *compelling* selling proposition?

Well if I do it it would be for neural and expert systems and
voice since those are my interests. Those are generally regarded
as high-end high-performance scientific research applications
although some people have built special purpose hardware.

Chuck will be able to do it first and his interest is VLSI CAD.
This is generally regarded as one of those high-end
high-performance scientific computing problems that
takes rooms full of high-end PCs and which as Chuck has
shown can be coded for a Forth virtual machine and
made incredibly small and amazingly efficient.

> You don't have floating point hardware,

Right. Forth has a long history from early days in space to
the classic space probes to all the military stuff of
showing how to do things effectively with integer.

VLSI CAD is a good example I think of the kind of application
that people assume needs floating point.  Chuck says they
use floating point and keep track of five decimal places for
accuracy in places where their algorithms are accurate to 50%.
And the classic Forth approach is to understand the problem
and scale the calculations to make things most efficient.
Floating point hardware dwarfs a core in SEAforth.  A
SEAforth processor is more like a logic cell in an FPGA
than it is like a high-end deeply pipelined floating
point cruncher.

> so high-performance scientific computing is out.

Well I wouldn't go that far.  Dr. Montvelishsky was
teaching industrial CAD CAM, Expert Systems, and
parallel programming in the Russian University using
Forth.  Most of the high-performance scientific computing
that had to compete with the US was done with what
Chuck would call clever software instead of expensive
hardware.  And all those spacecraft and high end
military devices, fusion reactors and very expensive
accelerators are considered high-end scientific
computing but with significant real-time components.

There has always been interest from high-end science
for the kind of parallelism SEAforth will offer.  Not
all scientific problems need to be expressed as gigantic
arrays of floating point numbers.

One of the attractive things is what happens when
you Scale to a large SEA of processors.  Some scientists
doing large problem searches have been very interested.

> So is document search and indexing a la Google for the
> same reason.

Maybe it's not for you.

> You don't run C

We don't.

> so most conventional software won't run on it.

True.  But 'most' software doesn't run on any PC either.
PCs come in different flavors, conventional software
comes in more variations yet.  I suppose with sufficient
simulation a PC can run most things, but of course
with sufficient simulation a SEA of small processors
could do the same.

> Game programmers don't do Forth any more, although
> perhaps you could find some upstart game development
> shop with the next "killer game".

I think game hardware is very specialized and very
expensive to develop.  Short of making a $5 wii
I wouldn't have much interest.  But the high-end
where one might use a lot of cell processors on
the Internet for something does start to be the
sort of thing I find interesting.

I find colorforth and okad style VLSI CAD to be
the sort of thing that make great games and which
might be packaged as educational games for
children.  I wanted to put a version of 'Rocky's
Boot' for VLSI on the workstation in a mouse.
It was the sort of thing one could really do.

Did you read my recent blog about colorforth
being a lot like Tetris?  I think it has a
certain game aspect to it as part of the
intent to design in fun.

> What else do people do with high-performance computers?

Well most people don't have access to high-performance
computers.  Many have access to PC.  People with access to
high-performance stuff tend to be scientists rather
than game players.

> Well ... crypto,

Yes.

> large-scale finite algebraic computation in general,

Yes.

> maybe some kinds of simulation, some kinds of CAD.

Yes.

> But that's really it, I think. Massively
> parallel non-floating-point machines have been built
> before,

Yes, but historically interconnect was inefficient and
more expensive than processing.  The machines were
fabulously expensive.   Nothing with the performance
per watt or performance per $ has been done.  And
the E in SEAforth is Embedded where the whole thing
is about performance and power and $ costs.

Think of all the hardware replaced by FPGA.  I am
sure people said they can replace this part or that
part but that's really it, I think.

I tend to start with the thousands of things already
being done that can be done more cost efficiently
with this technology then scan through the ones
that haven't been released yet because they have
not yet been possible.

Dave Guzeman used to say that describing what
SEAforth would do was a lot like marketing the
bolt.  Many people said, so it is a new fastener
that can be used in this thing or that but that's
about it.  How could you describe to them all
the technologies that the device made possible
that they hadn't yet imagined?

> and they've
> invariably foundered on the difficulty of

getting the funding for those super expensive
things. ;-)

> programming them and the lack

and getting the funding to program those difficult
to program things.

Interestingly enough this one is somewhat backwards
because 25 years of work went into making it easy
to program before work on the hardware started.

> of demand for MIPS without MFLOPS/GFLOPS/TFLOPS/PFLOPS.

The only real 'demand' has been the high-end scientific
grand-challenge multi-discipline government grant money.
I recall Gordon Moore making a very funny speech about
it at a NASA conference on parallel programming.

I always said it was fun working on parallel Forth
twenty years ago because all the people doing parallel
work considered Unix a toy and used BIG systems.  They
really didn't get the idea that Forth was more toy
like than C and Unix.  And the Forth people thought
parallel just meant giant machines designed for
Fortran. ;-)

>> It took a lot of work to create OLPC and it is available now.
>> Perhaps Forth processors will make Forth PC available at some
>> time in the future, but OLPC are available now.
>
> For a limited definition of availability, yes,

yes.  Few things are unlimited.

> and also subject to the
> same sort of competitive pressures that define other high-tech markets.
> To be blunt, Intel is trying to kill the XO and probably will succeed. :(

Well certainly many things have been streamrolled by Intel and
Microsoft.  Those are both business and political issues.  And
there is only so much people can do anyway.

>> Sure.  But a similarly clocked Forth chip with a built in video
>> generator and video accelerator would be a few cents.  For a few
>> bucks you could have a lot of them.  The Intel compatibility
>> is good if your goal is compatibility but from the perspective
>> of a Forth programmer it makes programming in Forth less
>> attractive than programming Forth chips.  So it is good if
>> promoting Intel is important while Forth chips are more about
>> promoting Forth.
>
> Well, yeah ... I've seen the hoops Anton Ertl and Bernd Paysan have had
> to jump through to get something as simple as ANS Forth to perform
> acceptably when the inner interpreter is compiled by GCC and run on a
> "modern" x86 with caches, branch prediction, etc. It's ugly.

Chuck once said that if you set out to design a chip with the
intent of making it as difficult to program as possible you
might end up with Pentium.  I don't think that's true.  There
are things that are probably worse.  But clearly it is the
opposite of what Chuck likes.

I admire people who have become experts on the Pentium details.
It is a daunting task.  I withhold good/bad labeling but
do say I much prefer working with processors that are so
much easier to understand and program.

> Yes, you can outperform that with a Forth machine. In their day, Lisp
> machines could outperform a VAX with the same hardware costs too. Lisp
> survives, but neither the Lisp machine nor the VAX does today. :)

Yes. I think one of the reasons was that other hardware designed
to run C or Forth moved so many orders of magnitude past them.

The article in AI Expert in 1990 that compared expert systems
compared a standard expert shell product on a VAX to the same
expert program running on a variety of different expert systems
on different machines.  The VAX not even in the class of
a PC yet alone in the class of Forth chip running an expert
system in Forth and Forth chips have improved by factors of
thousands since then.  LISP machines and VAX are sort of on
the opposite end of things to these chips.

These Forth processors are more like logic blocks in an FPGA.
What good are they?  They are primitive things.  List
everything you could make with simple logic blocks! ;-)

>> If the goal is to run C, and Linux is written in C, then using a
>> processor designed to run C will be a good fit.  And if you need all
>> that software then you need big memory spaces for the C.
>
> Actually, it's the other way around. The C compilers and operating
> systems are designed to keep the processor busy. :)

Yes, well it is fight on both sides.  Hardware wants to run last
year's software faster but forces next year's software to have
changes to take real advantage of the new hardware.  And whatever
hardware does software expands like a gas to fill the container.

>> That's true.  If you can't program and need to use off the shelf
>> software there is a lot of code in the C world on the shelf. This
>> is good for promoting C and keeping the C programmers working.
>> Forth programmers like the idea that it is fun to write software
>> in Forth.  And we tend to think that writing application is
>> easier when we don't have to deal with C being the biggest
>> factor driving the requirements.
>
> Yes, Forth programmers and Ruby programmers both emphasize the fact that
> their language is fun. I think Lisp and Scheme programmers probably feel
> the same way about their language.

Some were designed to try to make the fun.  Others evolved to be
more fun because people liked it.  Linux makes C about as fun
as it is going to be.  But you didn't see 'fun for programers'
listed in the original C objectives.

>> The $10 disposable PC for the third world was very different
>> idea than OLPC.  OLPC has a remarkably low price and remarkable
>> list of features considering that it is a C machine and it
>> can probably run Forth as well as a $10 Forth PC if someone
>> decides to produce those.  Until then OLPC is available and
>> will be a great Forth platform with great potential with
>> little competing in its niche.
>
> Well ... you can't really buy an XO. And as far as "little competing in
> its niche", that has proved to be untrue. Intel is playing hardball with
> its ClassMate, and for "adult" users, there's the ASUS Eee.

I think the people who were willing and able to pay $400 to buy
one and donate one demonstrate a different dynamic at work than
the sell in the existing consumer market forces that you have
highlighted.   But the degree to which intention, feeling,
and charitable contributions will eventually play in OLPC
is anyone's guess.

I am willing to put some energy into OLPC while I would
only be embarrased to opt out for the cheapest computing
toy laptop I could find given all else.  I am wishing
OLPC the best but am not going to get into a fight with
anyone about it.

> After all,
> Forth will run on anything with a processor, RAM and some mass storage.
> gForth in particular will run on anything with a GCC cross-development
> tool chain.

Yes.  I wonder if something like Pablo Reda's work with
children would be a good fit to a colorforth for OLPC project.

Best Wishes

> ---------------------------------------------------------------------
> To unsubscribe, e-mail: colorforth-unsubscribe@xxxxxxxxxxxxxxxxxx
> For additional commands, e-mail: colorforth-help@xxxxxxxxxxxxxxxxxx
> Main web page - http://www.colorforth.com
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: colorforth-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: colorforth-help@xxxxxxxxxxxxxxxxxx
Main web page - http://www.colorforth.com