Shop OBEX P1 Docs P2 Docs Learn Events
Propeller 'Super Computer' — Parallax Forums

Propeller 'Super Computer'

LoopyBytelooseLoopyByteloose Posts: 12,537
edited 2011-03-05 09:25 in Propeller 1
With the high degree of smarts around Parallax Forums I wonder if I am reinventing the wheel?

Has anybody created a parallel computing configuration for multiple Propeller chips?

I have just soldered up 3 Propeller Proto Boards into a stack configuration that is open ended: one could easily stack 10 boards if one was so inclined. I have provided for a 16 pin bus of which I presume an 8 bit data bus and and 8 bit system control bus is useful. The other 16 pins remain for multiple video, mouse, and key board or whatever I/O one might like to localize. Without these features, the bus could accomodate nearly all of the I/O pin allotment.

The system uses 9 pins wire wrap strips having a socket on top and an extended pin for plug-in below. Ground is shared system wide, but 3.3 volt power is localized to each Proto Board. I have two ground connections per board, so I am wondering about potential for ground loops exists.

I have no code for this. I presume that I need to provide a system wide clock on one of the pins to synch all Propeller read and writes to the system wide data bus. Three pins might be used to provide a board address of 3 bits [noparse][[/noparse]for a stack of up to 8 boards]. That leaves another 4 pins for greater system control, maybe an interrupt or read/write indicator. I imagine there is some pro and con argument of peer-to-peer versus master/slave relationships within the stack.

At this point, I need to clean up the stack of boards and provide a power harness for a photo. Any suggestions are welcome.

There is one 'trick' to get the boards to stack properly. In addition to the wire wrap strip providing a plug top-side and a pin bottom-side, I use another 1x10pin connector [noparse][[/noparse]there are no nine pin of this kind] that allows the height to be somewhat adjustible. Wire wrap pins will NOT properly plug into their own sockets as they are too fat. On the other hand, this additional connector is flat pinned on the board side, while accepting of the fat wire wrap pin. I've used this configuration before in fit stackable architecture.

Let me know what you know and what you think.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Ain't gadgetry a wonderful thing?

aka G. Herzog [noparse][[/noparse] 黃鶴 ] in Taiwan
«1

Comments

  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2009-06-22 16:17
    I found they stack nice too..

    I removed the power jack from the bottom unit on mind and fed voltage from
    the bottom to power the top unit. No problems.

    http://forums.parallax.com/showthread.php?p=768729

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Visit the: The Propeller Pages @ Warranty Void.
  • jazzedjazzed Posts: 11,803
    edited 2009-06-22 16:20
    mctrivia is planning an 8 Propeller per board "stick".

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2009-06-22 16:33
    Oddbitcollector,
    Thanks, your 2x may provide some useful info. My impression of the Hydra is that it would be a great enhancement to provide a sound Propeller and a video Propeller as the sound provides so much of the drama to playing a game. Besides, leaving video to its own 8 cogs just provides more features to the video.

    Steve,
    I wonder what one would need 64 cogs for other than game playing.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Ain't gadgetry a wonderful thing?

    aka G. Herzog [noparse][[/noparse] 黃鶴 ] in Taiwan
  • mikedivmikediv Posts: 825
    edited 2009-06-22 17:00
    Loopy Byteloose... I agree I think the prop is the easiest MCU I have ever worked with, I am still struggling with spin I built A quasi Prop tower as well it used to have 7 prop layers but I kept taking it apart to use the prop boards on other projects
    here is a picture of how easy it was,, but like I said software wise while I added the bread boards for experimenting all my boards really operate separately , I can tie the power and the serial lines together and have a zillion I/O's
    I would like to have an operating system that would take advantage of the parallel abilities of stacking a bunch of these chips together.
    1280 x 960 - 175K
    1280 x 960 - 219K
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2009-06-22 17:02
    I read somewhere that supercomputers were being built from several video cards.

    The box my $80 card came in says "640 Stream Processing Units .... Core Clock 575MHz...Memory Clock 1800MHz...Memory Size 512MB...256-bit"
    It's a Radeon card. That's a lot of power for 10x the cost of a propeller. I bet it's a devil to program in assember though.

    No frakin wonder it needed a fan on it smile.gif

    I bet if some genius made an experimenters board that powerful video cards could just plug into so people could easily experiment
    and provided a gcc compiler for it that it would sell bigtime.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2009-06-22 17:18
    Holly,
    You are on to something. The Sony PlayStation can be adapted to Linux {MS has made their XBOX unfriendly to Linux, I wonder why?] and 10 or more of them have be put together for supercomputing tasks. In fact, the Sony PlayStation, loaded with Linux is used in oil exploration to control underwater ROVs as it provides an optimal platform and ergonomic user interface. Take a look in Wikipedia for hacking the Playstation with Linux. I just don't have the time and know how to exploit it.

    On the other hand, the Propeller as supercomputer provides a good entry to handling parallel processing as the assembly code isn't that cumbersome.

    You gotta begin learning somewhere. Why not here?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Ain't gadetry a wonderful thing?

    aka G. Herzog [noparse][[/noparse] 黃鶴 ] in Taiwan
  • jazzedjazzed Posts: 11,803
    edited 2009-06-22 17:32
    Loopy Byteloose said...
    I wonder what one would need 64 cogs for other than game playing.
    I don't know exactly, but mctrivia's board would be far cheaper than 8 protoboards stacked in a tower [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • mctriviamctrivia Posts: 3,772
    edited 2009-06-22 18:05
    Yep. The only thing stopping me now from making my boards is no one said they wanted one. If you want starting price is $169 assembled.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are temporarily out of stock(selling faster then expected). Only $30. PCB available for $5

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • LeonLeon Posts: 7,620
    edited 2009-06-22 18:22
    HollyMinkowski said...
    I read somewhere that supercomputers were being built from several video cards.

    The box my $80 card came in says "640 Stream Processing Units .... Core Clock 575MHz...Memory Clock 1800MHz...Memory Size 512MB...256-bit"
    It's a Radeon card. That's a lot of power for 10x the cost of a propeller. I bet it's a devil to program in assember though.

    No frakin wonder it needed a fan on it smile.gif

    I bet if some genius made an experimenters board that powerful video cards could just plug into so people could easily experiment
    and provided a gcc compiler for it that it would sell bigtime.

    I've got a Radeon nVidia graphics card which can be used as a number-crunching unit and for very high-performance graphics:

    gpgpu.org/developer

    graphics.stanford.edu/projects/brookgpu/

    I've tried the software out, it's very impressive. I can remember when we needed a very expensive SGI machine where I once worked to get that sort of performance. I think it cost about $250,000.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
    Suzuki SV1000S motorcycle
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2009-06-22 18:58
    The implications are that we all need to learn parallel prosessing. I've got a nVidia card in my 64bit Quad. It may be more useful doing mathematics than video.

    Frankly, having 8 Propellers on one board still begs the question of utility. Without some board real estate for expansion, it is more of an academic exercise. Most of us have trouble using 8 cogs, let along 64. For now I am happy with the 24 tied together and I can easily disassemble and reconfigure. One really need a purpose before one will learn much of anything from such architecture. In video, there is a huge demand for getting pixel recalculation done in 1/60th of a second for an entire screen. But in most of what a microcontroller does, it is merely handling a few tasks in parallel and the adequate response time might be 1/10th of a second.

    An 8 Propeller board would be much more interesting if build with an appropriate SRAM video buffer scheme.

    I am still wondering if I should be worried about the creation of ground loops in my construction. I have each board running to a common ground on the barrel plug and then I have two of the ground pins next to the i/o going from board to board.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Ain't gadetry a wonderful thing?

    aka G. Herzog [noparse][[/noparse] 黃鶴 ] in Taiwan
  • mctriviamctrivia Posts: 3,772
    edited 2009-06-22 19:06
    My boards have a 12 bit bus that could be connected to a high speed ram. Obviously only 1 could read at a time but 6meg per second can be handled on the bus. Obviously it is a question if use. You get a lot of power and io lines with an 8 prop board.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are temporarily out of stock(selling faster then expected). Only $30. PCB available for $5

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2009-06-22 19:20
    As we approach the time when all chips contain a massive number of processors there will have to be a layer
    to separate programmers from that complexity or little useful work will get done. Of course much speed will
    be lost compared to programming the bare metal in asm or some such...but nobody can possible program a
    chip (or more likely a cube) with many thousands of processors buzzing away inside....a programmer can handle
    8 cogs in a propeller but can't handle orders of magnitude beyond that.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2009-06-22 20:00
    @mctrivia
    I'll take a look. Is that 12 bit data bus with other bits for system control or 12 i/o pins? I can widen my bus to nearly all 32 i/o pins, but just started with what seemed useful. 6 meg/second is roughly 100K per 1/60th of a second. That would be useful for video.

    I need to get some photos posted of what I've done - maybe within 24 hours. It is 4am here.

    Mainly, I am very interested in what others thing a bus should be and do. I considered 16bit wide data with 8bit wide control. But without experience, one can only begin and try.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Ain't gadetry a wonderful thing?

    aka G. Herzog [noparse][[/noparse] 黃鶴 ] in Taiwan
  • mctriviamctrivia Posts: 3,772
    edited 2009-06-22 20:07
    That is 12 io lines p0-p11
    P10,11 can be used for io or bus.

    6m requires only 8-9 pins. I think jazzed made an sram module compatible with this board.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are temporarily out of stock(selling faster then expected). Only $30. PCB available for $5

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2009-06-22 20:47
    @Loopy Byteloose

    I wondered where you were that it would be 4am so I looked at your profile and you are in Taiwan ..wow
    That's a Loooong way from here smile.gif Are you Asian? Bet you can get great buys on parts and tech stuff
    in Taiwan.
  • RubrChickenRubrChicken Posts: 39
    edited 2009-06-22 21:13
    The possibility of using graphics cards as high performance computing is about to be shipped with Mac OSX 10.6.

    http://images.apple.com/macosx/technology/docs/OpenCL_TB_brief_20090608.pdf

    In the way of what holly said, "layer to separate programmers from that complexity" is provided by the language, OpenCL.
  • jazzedjazzed Posts: 11,803
    edited 2009-06-22 21:35
    mctrivia said...
    ... I think jazzed made an sram module compatible with this board.
    Not really. I have various SRAM designs. We talked about single master Propeller to Propeller communications before though using up to 12 pins which might achieve 6MB/s.

    A shared SRAM design would require multiple mastering. I haven't given too much thought to it, but multi-master communications with the intent of having any Propeller own the SRAM will take more than 12 pins. Would need 13 for 1MB SRAM access (8 Address/Data + 2 Address + WE* + ALE* + OE*) and a 14th pin at minimum for an asynchrounous arbitration binary semaphore locking scheme. You might get 4MB/s data rates like this. The more unlatched pins you throw at the problem, the faster the access up to a point.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • mctriviamctrivia Posts: 3,772
    edited 2009-06-22 21:41
    with a cpld i beleive an 8 pin bus and 4 pin control bus could handle everything. I can get the CPLD and several megs of ram cheap. i just don't know how to program the CPLD.

    256MB SRAM for $10 http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=557-1065-1-ND

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are temporarily out of stock(selling faster then expected). Only $30. PCB available for $5

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-06-22 21:59
    That's a PC100/PC133 compatible sync dram... not an sram, so there are refresh, ras cas etc headaches - but it is possible, with a CPLD and some clever code.
    mctrivia said...
    with a cpld i beleive an 8 pin bus and 4 pin control bus could handle everything. I can get the CPLD and several megs of ram cheap. i just don't know how to program the CPLD.

    256MB SRAM for $10 http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=557-1065-1-ND
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    my 6.250MHz custom Crystals now available - run your Propeller at 100MHz!
    Las - Large model assembler for the Propeller (alpha version released)
    Largos - a feature full nano operating system for the Propeller
    www.mikronauts.com - a new blog about microcontrollers
  • mctriviamctrivia Posts: 3,772
    edited 2009-06-22 22:01
    hm digikey has misslabeled then. had it in the sram section

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are temporarily out of stock(selling faster then expected). Only $30. PCB available for $5

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • jazzedjazzed Posts: 11,803
    edited 2009-06-22 22:36
    Ya, you can use a CPLD to handle most of the I/O and get 6MB/s on point to point devices with a 10 pin interface ... I settled for simplicity and lower cost for the time being. Still, getting bus ownership requires at least one more pin as a lock indicator.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • waltcwaltc Posts: 158
    edited 2009-06-23 02:06
    Holly wrote:
    Of course much speed will be lost compared to programming the bare metal in asm or some such...but nobody can possible program a chip (or more likely a cube) with many thousands of processors buzzing away inside....a programmer can handle

    Some speed will be lost but then again some chips aren't really made for human generated assembly code anyways.

    That said, some degree of abstraction is necessary when the level of complexity gets out of hand.

    In addition not all programs/application are suitable for massively parallel systems. Heck just try and part out a program that uses 64 Cogs effectively.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2009-06-23 16:44
    Hi everyone,
    Here is a photo of the 3x Proto Boards stacked and powered. I am using a 6V gel cell to power everything

    Now I would love input about useful bus configuration. I''ve proposed 8bits for data, 3bits for board identity. I suppose that another one might need another 3bits to identify each cog. That would leave 1 bit for a system wide clock and one bit to indicate read or write. I personally am thinking peer-to-peer rather than master/slave as I'd prefer a purely parallel concept.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Ain't gadetry a wonderful thing?

    aka G. Herzog [noparse][[/noparse] 黃鶴 ] in Taiwan
    1508 x 916 - 246K
  • mctriviamctrivia Posts: 3,772
    edited 2009-06-23 16:57
    For the propgalore when with 512k eeprom so top half could hold I'd number instead of pins. If they need to identify themselves on the bust you could send as first bite of data.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    propmod_us and propmod_1x1 are temporarily out of stock(selling faster then expected). Only $30. PCB available for $5

    Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com for free.
  • jazzedjazzed Posts: 11,803
    edited 2009-06-23 20:39
    Loopy Byteloose said...
    ... I personally am thinking peer-to-peer rather than master/slave as I'd prefer a purely parallel concept.
    If you use Ethernet or WiFi, peer-to-peer would be easy since all the bus sharing that needs to be done would be automatic. Otherwise, you must have some kind of arbitration mechanism if you want to share a "parallel bus."

    You could always use a serial mesh network where each Propeller has a serial connection to the other Propeller.

    If you want a parallel bus, it's much faster to use propeller pins p0..p7 (ignore p8) for data with the movs instruction.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Steve


    Propalyzer: Propeller PC Logic Analyzer
    http://forums.parallax.com/showthread.php?p=788230
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-06-24 04:59
    Really Loopy yeah.gif (pardon the pun - I couldn't resist tongue.gif )

    I would have a go at ultra high speed serial. Two wires only. You could use 3 wires for this and send out 9 bits per byte (1 bit for address). Each prop has an output pin, and two inputs (one from each of the other props). It is relatively easy and saves the pins. See Beau's hugh speed example.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80), MoCog (6809)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • PhilldapillPhilldapill Posts: 1,283
    edited 2009-06-24 05:15
    mikediv, those boards look strangely familiar... Nice to see they are being put to good use! [noparse]:)[/noparse]
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2009-06-24 08:08
    Fortunately, pins P0-P7 are available for the commited parallel data bus. P8-P15 would be for system and other uses [noparse][[/noparse]possibly a backdoor for serial communication?]

    The hardware construction was rather easy. The wirewrap sockets allow extension above and below. llObviously the OS for multiple Propellers is the real project and I had given almost no consideration to it. 3 boards merely proved the construction is feasible. I may have to buy a pile of more Protoboards to really have something.

    At this point I am thinking that some shared memory would be quite useful. Not everything needs to be passed from cog to cog immediately. So another board with some SRAM might be added to the stack. Something would have to be done to the bus to assure that memory reads/writes were different from transfers between cogs. A high impedance state for the memory would have to be evoked.

    High speed serial is interesting as it certain reduces the pin count. I suppose serial transfers could take place simultaneously between 8 cogs. 8 bit parallel in a 32bit system seems to be only useful if the additional SRAM is 8 bit. I am wondering if both could exist within the same system.

    My biggest question at this point is how to write a utility that would confirm that all 3 boards are indeed properly connected and that the bus is fully operational. It seems to be a logical place to begin and might reveal the best methods of creation of stacked Propellers. Both serial and parallel data transfers could be benchmarked.

    All the theory is rather pointless if the hardware cannot be proven useful for further efforts.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Ain't gadetry a wonderful thing?

    aka G. Herzog [noparse][[/noparse] 黃鶴 ] in Taiwan

    Post Edited (Loopy Byteloose) : 6/24/2009 8:21:18 AM GMT
  • mikedivmikediv Posts: 825
    edited 2009-06-25 00:38
    Phil I am happy to advertise,, lol actually with all the prop boards that I have your use of those long pins to let me plug the board directly into a solder less breadboard was pure genius I have so many bread boards kicking around its ridicules , but with your prop board I can just plug them into whatever I Am working on also I used a few of them for more permanent stuff and just used wire wrap I even have one running 100Mhz The only con was I had to cut up the foil to make them proto prop pin compatible
    I guess I really did not have to but I kept screwing up wiring because I mostly use the proto prop from parallax

    Hey Loopy very nice boards looks good ,, I was wondering though how you have yours wired together I just ended up stacking all my unused I/O but would love some kind of monitor program or Kernel that would allow real parallel processing of the seperate boards
  • AriAri Posts: 63
    edited 2011-03-03 19:37
    I read somewhere that supercomputers were being built from several video cards.

    The box my $80 card came in says "640 Stream Processing Units .... Core Clock 575MHz...Memory Clock 1800MHz...Memory Size 512MB...256-bit"
    It's a Radeon card. That's a lot of power for 10x the cost of a propeller. I bet it's a devil to program in assember though.

    No frakin wonder it needed a fan on it smile.gif

    I bet if some genius made an experimenters board that powerful video cards could just plug into so people could easily experiment
    and provided a gcc compiler for it that it would sell bigtime.


    open C (cuda) it is a function of all newer nVIDIA cards, and it is open source.....the new ATI offerings also are open c capable....nVIDIAS efforts are much more mature (google nVIDIA tesla)
Sign In or Register to comment.