Parallel Hardware

Parallel, Concurrent, at the same time

Since I have spent some time on Transputers (in the old days) I have a interest in parallel computing.  It seemed to die off, or be in the realm of specialist hardware, but now it is creeping back – into my interests as well.

So, in no particular order.

XMOS

XMOS chip set

XMOS is an evolution of the Transputer (more or less).  Programmed in XC which embodies CSP themes.   Now the Transputer didn’t really die, the idea was sold off to SGS Thomson who churn out the ST20 core which is used all over the place.

I got myself this to reminisce, and to look at whether this chipset would make for a better IMU/FMS.  Now, at my other site I’ll talk a little about avionics certification etc and why I might not settle on raw spaghetti implementations of flight-centric applications.  CSP allows for deadlock free programming (mostly 😉 ), but it also allows for a natural state-engine like approach which is more easily verified than arduino sphagetti.

The chipsets start as a single core with 8 fixed threads and go up to (at the moment) a 16 core chip.  Now, for hobbyists the most practical chip size they have is in the TQ48 pack – if you are designing with double sided techniques.  This means the XS1-L8A-64-TQ48 with 8 cores so 64 threads.  To get it to behave on double sided board, will likely have to solder it to something like:

48QFN20-D6-SMT-S

The single core XS1-L1 I have promises 400 or 500 MIPS if at least four threads are in the pipe.

Once I have spent some time familiarizing on the dev-kit I plan to try designing a board with the L8A running things – likely will borrow an AtMega based design and just swap out the AtMega.  Maybe something like this:

AIO

Propeller

P8X32A-Q44-M

Sort of kinda the same idea as the XMOS.  With 8×32 bit cores the Propeller P8X32A chip can execute concurrent tasks.  Now, unlike the XMOS chip, the cores of the Propeller can clash over shared memory and have to cooperate when doing so.

The Propeller churns at 20 MIPS per cog, or 160 MIPS in total for an 8-cog Propeller.

PS, there is a FORTH for Propeller!

GreenArray

Go figure.  Chucky is Back.  Chuck Moore.  With a FORTH Based cpu array no less.  GA144, yes one hundred and forty four cpu crammed onto a chip.

Get this “Up to 96 billion operations per second”.   Needs a four layered board.  Only comes with a development environment with two chips for half a $K.

chucky

The problem is, while I have a soft spot for FORTH, I wouldn’t buy the development board on principle.  FORTH sort of fizzled because of the hippy approach to it, despite how fundamentally brilliant it was.  Now it does still live around the place in OpenBoot and of course has gone into space etc. but bugger me how could you encourage people back to it, let alone new people who are phobic of anything other than Java, with pricing like that?

GreenArray are giving chips away through an initiative with SchmartBoard, but go figure, it is really a SMD soldering exercise kit and not parallel programming kit.  You need the GreenArray development kit to program the chip you have deftly soldered onto the prototyping board, then you have to butcher your development kit to attach the prototyping board AND then you have three chips for half a $K.

Needs a hackers setup like the one for the XMOS above.  Something other than color forth, perhaps an Eclipse based development environment (could use something like Spoofax).  OR maybe a graphical language based upon Damos.

[Reader: *cough* Ah hem?!] 

Ah, oh yes, the Principle. The principle being I really believe FORTH is like PUNK, or even FASCISM.  It was an era.

Maybe if they took the approach of Parallella?

Parallella

This is what Chucky is up against.

  • 16 High Performance RISC CPU Cores
  • 800 MHz Operating Frequency
  • 25 GFLOPS Peak Performance.

So, I have $100 aside to buy me one of these suckers as I think their calling is visual image processing.  Except, all sold out!!  Pity.  No quick turn around either so looks like they are a one hit wonder (so a bit more like Chucky than I originally thought).

Distributed Models

Yes, yes.  I have ICE for distributed components.  There is an Android server and client for BOINC.  Not to mention some flavors of map-reduce and MPI in a pinch.

And then there is Erlang!  Oh, and Go! And embedded Go!

I feel so dirty!  There is now Chapel, an open source parallel programming language from Cray Inc.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: