Tuesday 29 July 2014

Halt, and catch fire, you bastard...!


I come home with an obscene amount of loot over the past two days, some of it is in the gratuitous photograph above. In the picture:

* An Asus dual core Atom Fonepad with a smashed screen, but everything else working
* A FitPC3
* A BeagleBoard Black (BBB) in case
* A RaspberryPi Model B, MkII (RPi) in case
* Lots of circuit boards for me to solder up
* A remote for 443MHz WattsClever power points
* A 915MHz Z-Wave USB stick

Please ignore the cable clutter. When you come to know me, you come to understand, as much as I like cables, and know what each one does, cables are the bane of my existence. It has become so much of a nightmare, I have frustrated partners into arguments - "Why the Hell are you playing with all of those damn cables?! Do you even know what each one does?!" Sadly, I do. So don't ever ask stupid questions, or you will get an intelligent answer.

Peeking out in the top left corner is my Parallella. Oddly, the HDMi display has stopped coming on, but SSH, and VNC after activating the server, work fine. Oh well, that display is meant for my NUC anyway, the whole point of having access to the Parallella was to have VNC on it.

The FitPC may have a new home. We'll see...

Enough obscene amounts of computing hardware for now... enjoy!

Thursday 24 July 2014

Signs of life, memory maps, and a headache


"Signs of life" is a song by Pink Floyd, the opening track on their 1987 album "A Momentary Lapse of Reason." It is quite an unusual track, and the different sounds and samples all mean something individual to me. The first picture is also "Signs of life" - this time from inside the silver chip on my Parallella board - I compiled the Hello, world! example.

Now, to those already doing cool things with the Epiphany, yeah, ok, thats no mean feat. And sure, it isn't. Except I am a Doubting Thomas, and I like to see it before I accept it as good to go. Its all good to have this fancy board on my desk, and it looks cool and all that, sure, and people are building supercomputer clusters with it, great, but does it do anything?!

And yes, it does.

The astute will note it is via VNC connection on my MacBook - this is deliberate, as I don't possess a USB hub with a power supply at the moment - got two USB hubs, no power supplies. And the last thing I want is a USB burnout on my shiny new board! Especially when I just got the wretched thing working!

Now all I have to do is make some time to evaluate exactly where I'm going to go next with this project, and jot it down in mind map format. I may make some notes tonight after dinner.

The second picture is also interesting - a rudimentary memory map arrangement for a single Epiphany core! Of course this will be integrated into my mind map.

Now if only I could get rid of this rotten headache...

Nerd care package

Straight from the bowels of Jason HQ:


That is a Z-Wave USB controller on top there under the tape... power management is important to me.

I get bored easy...

Decided to mock up a logo for my supercomputer. No, it will not process infinity. I just like the sigil. Perhaps I should've used a rune of some description, like Bluetooth? Yes, the "German Engineering" is a little bit of trolling on my part (a la 9front) - however, my plan hasn't fallen off!

If anyone has a better idea for a logo, I'm all ears. Or eyes, as the case may have you...

9P gateway

I'm liberally lifting diagrams from Ericvh's repo, and I'm presuming they're open source enough for me to display them on my blog, and explain how my system will look like a couple of hundred million dollars worth of supercomputer. If I can't do this, someone tell me, and I'll take them down and formulate my own diagrams.

Todays discussion will revolve around the 9P gateway. Whats that? Inside the Zynq chip on the Parallella board will run a Linaro Linux distribution. It will talk to a Stratum-1 NTP server (I'd like 1PPS accuracy, if I can swing it). That will in turn talk to a SyncFS server - see https://github.com/geekmug/syncfs - and that clocked SyncFS filesystem will then talk into the Epiphany grid. The Epiphany will simply be told what time it is, I don't want to go monkeying with GPIO to get a 1PPS into the grid itself, as I'm unaware of the propagation models of the e-Link network (although I am aware of e-Link multicasting - hmmm?).

The e-Links on successive boards will (hopefully) be hardlined together, forming a larger grid over many Parallella boards. The Zynq chips could then be given different tasks, such as "management" or "data input," reducing complexity of messages being sent through to the grid, and how they get to where they need to go.

These 9P gateways will form the "private namespaces" for the processes to execute - yes, a sandbox for each process! For example, why does a user of the system, buying CPU time, want to know about our internal 1PPS timekeeping? Surely they do not! But they might want to know about how long it took their code to execute, or how many cores it used (think peer-to-peer process spawning, XCPU^3 style).

I have to work a bit on my kinematics descriptive language, and work out the cheapest way to obtain a 1RU Thunderbolt disk shelf for my supercomputer...

Wednesday 23 July 2014

Updated diagram

Updated diagram, as promised.

Also, a special little treat:
"Sflr" is a simulator, in most parts, but if you could imagine the big grey square being a "grid" of little grey squares, proportional to the amount of compute nodes in your cluster.

Enjoy!

Tuesday 22 July 2014

The Design

I lifted this diagram from the "brasil" directory found at hg.9grid.fr. Now, I'm not going to attest to owning a 3D torus of compute nodes (cause I don't), but I will attest to owning a 2D fabric of nodes. Yes, yes, theres only 16 nodes in there, but still...!

Replace:

* Torus, with fabric
* Tree, with e-Link
* WAN, with WAN/ LAN

The rest should pretty much fall into line.

A terminal is like my MacBook Pro, equipped with Mac9P and of course, FileMaker for the database'y type stuff. Realistically, any system with FileMaker or even self developed software (say, a new, custom, version of QGroundControl) can be a client to this network, as the interface is agnostic XML.

A front end is a node co-ordinator. Its job is to make sense of the jobs coming in, and assign them to free compute nodes. I see it almost like the software BotQueue which will assign a 3D printing job to the next available 3D printer in the fleet. This is integrated into BotQueue, and each printer (by way of an intelligent board, say, a RaspberryPi) is able to communicate job status to the queue controller. This facility of job status communication exists in the /proc filesystem of each of the compute nodes.

An I/O node is a front end processor to connect the grid fabric to the outside world - in our case, the dual core Zynq ARM chip with FPGA. It is able to mediate from gigabit ethernet to e-Links, and back again, and do needed housekeeping in between.

A C (Compute node) is a Epiphany RiSC core in the fabric. It'll take jobs from the front end, process them, and come back with a result. These results will be available over the 9P networked filesystem interface, back at the terminals.

For each CM-5 prototype, there will be eight Parallella boards, and two Intel NUCs. Of course, for the prototype of the prototype, it'll only be one Parallella, and one NUC. They'll be connected over 100Mbps ethernet (final prototypes will use gigabit ethernet). The basic software will be developed on the Parallella and the NUC to work in synchronisation. At some point, a Stratum-1 NTP server may be needed by the network, and I already have plans for a DIY server. The NTP server will also work well with SyncFS.

I will create an updated graphical diagram in Dia later.

Sunday 20 July 2014

I's has static IP!

Please ignore the bad grammar in the title - its an injoke. Unfortunately the person I shared the injoke with is no longer a part of my life, for various reasons.

I just found something quite interesting - my old Exetel prepaid SIM, still in the Huawei modem I got it in. That SIM, as far as I aware, is still registered, and still has a static IP.

Here at the student accommodation, I am behind a firewall that I am not able to configure, so I'm not able to punch holes in it for pertinent ports of interest (17060 anyone?). Additionally, since I do not control this connection, if it goes down for any reason, I'm stuck without internet for the interim.

Of course, the EdgeRouter Lite 3 port model is now shipping in a steel box. This has three routable ports on it, so one becomes connection to DSL, the next to cellular, and the last to my internal network. That'll easily configure for failover in the case of DSL outage. I can also open certain ports on the Exetel connection that interest me, although at 2GB of data at a time, I wouldn't want to be using it excessively, such is the woeful state of cellular data in Australia.

Of course, all I need is an ethernet modem - I fried one before I left Lithgow, which annoyed me. I'll get there though, I'm sure I can splash out another $100 or so, depending.

Now to buy crap...!

Friday 18 July 2014

This isn't paid work... yet...



Just having a little fun with code... Android, iOS and Plan 9 style.

Supercomputers... for the rest of us

Got my hands on a Parallella-16 board a couple of weeks ago - I am taking my time before I power it up, I want to make sure things don't overheat and explode...! Of course, I've been wondering what I could do with such a beast... for instance...

http://www.parallella.org/2014/06/03/my-name-is-brian-and-i-build-supercomputers-in-my-spare-time/

Yes, I want to make one of these. Just cause I believe I can.

By the way, shameless plug - programmer (me!) looking for any kind of programming work. I have some people interested in me doing things for them, but its been quite a battle to even have two coins jingling in my pocket since I moved to Newcastle, and I'm sick of asking adopted family members for loans! I program in eight or so languages:

* Processing/ Arduino
* C/ C++
* PHP
* Python
* SQL
* Erlang
* Google Go
* FileMaker

I've also worked on Cisco gear, Ubitquti gear, and archaic Nokia base station equipment (just for kicks - it was a DX200!). I regularly use Arduinos, 3D printers, 3D scanners, and other embedded platforms for my work. I do 3D design and editing, which can then be printed, or exhibited in a web based format. I've worked for museums, architects, six star resorts, and international audio companies. I administrate Linux, Unix and Mac OS X competently. If you ask me nicely I can do Windows work too.

I like to be punctual, task focused, and dedicated. These are things you won't find in a normal contractor, as I take a personal interest in the work I do. Literally, I have been asked to complete the jobs of a lifetime, only to have more work come up. As I set myself up again, I'm just struggling a bit.

I am undertaking a Bachelors degree at the moment - that is up in the air due to my deferral and transfer, I started doing Electrical Engineering, but have thought quite honestly about doing Computer Science. I will be discussing my options with the University of Newcastle in due time. I'm sure you'll agree, uni is not the cheapest exercise in the world, so being able to work while doing it would be surely very good!

Although a cliched line, I do thoroughly enjoy a challenge, and something that makes me stop and think. Try me out - you might be surprised!

As for the Parallella, that story is just beginning...