Hacker News new | past | comments | ask | show | jobs | submit login
Tiny Titan (tinytitan.github.io)
276 points by jonbaer on Dec 15, 2017 | hide | past | favorite | 65 comments



Probably not clear from the pictures, but the Tiny Titan sits on the observation deck directly in front of the actual Titan supercomputer at ORNL. It's used as a hands on demonstration when tours are being given about how supercomputers work.

A useful tool for explaining the basic concepts in a tangible way.


Now, that is cool.

Tours of a computing facility are otherwise pretty useless.


You don't appreciate the sheer scale of hardware? The blinking LEDs alone are a spectacle.


At one point I noticed a dearth of blinking lights in our (CS dept) machine room and suggested we get some plywood, spray paint, and a bunch of LEDs so that anyone peering through the door wouldn't see a big room full of what looked like shelving and cable octopi.


You clearly haven't been to ORNL. Definitely go on a tour sometime, it's well worth it.


Also fun, 1-2 times a year the Spallation Neutron Source[1] is shut down and the tunnels are open for tours. Was happy to have had the opportunity to check that out when I was working there, although I think my favorite high-science tour is still the National Ignition Facility[2]. Going inside of that places was awesome. Thinking back now, LLNL had a number of great tours actually, HEAF[3] was pretty cool as well.

As far as I know none of those are open to the general public though; you have to work there. Someone I was dating at the time went on the public's tour of NIF, which really only involved them standing in the lobby. Ironically, she was a nuclear physicist and I do environmental and energy economics-y things, so I was completely unqualified to know anything about what I was seeing and she didn't even get a physicist as her tour guide.

[1] https://neutrons.ornl.gov/sns

[2] https://lasers.llnl.gov/about/what-is-nif

[3] https://wci.llnl.gov/facilities/heaf


I should, they do fascinating work.


Wow. That is a great post - I have a voracious 12 yo grandson who is now all about computing, math and 'being a developer/engineer'. He asked last night if I had any cool projects that we could do. Yes. Yes I do. Thanks for this post!


A grandfather like you and projects like that would have been a dream come true for me at 12. I bet many people here would say the same.

If he hasn't seen it yet, the "Nand to Tetris" course/book would be a perfect thing to work through together.


I'm thinking about building one, but with Pi Zero's and USB networking. The ClusterHAT guy wrote software to netboot the nodes off a cluster controller's SD through the USB network. With that, you don't even need an SDcard for each node.

I was thinking about also adding a LED bar with one LED for each GPU SIMD element, refreshing a couple times per second and lighting up for the units used above a certain threshold. The ARMv6 SIMD instructions don't look that encouraging.

The end result would be something that looks like a small Connection Machine.


As I was reading this I was thinking "why not do it with Raspberry Pi Zeros, set up for mesh networking", like the OLPC "https://en.wikipedia.org/wiki/One_Laptop_per_Child". It would significantly reduce the cost, and add a demonstration of a technology (mesh networking) that I think has been sorely neglected.


"With that, you don't even need an SDcard for each node."

neat stuff, i didn't know that, going to read up.


I imagine that, if it doesn't already do that, it'd be easy to make all nodes share a read-only file system for system and programs and have node-specific /etc, /var, and /home


Hard for me to find, but the instructions for building are, https://tinytitan.github.io/downloads/TinyTitanBuildGuide.pd...


It would be interesting to see if this can be extended to use a raspberry pi GPU library, like QPULib or the like.

https://github.com/mn416/QPULib


As someone who about programming and electronics, but knows very little about parallel computing, is this a good place to start? Does anybody have other resources or projects to recommend?



Why not just simulate the computer on a single desktop PC using a bunch of virtual machines?

It's less costly, and all of the concepts are the same (except for connecting them using cables, but that's only a plus if you like the physical experience over abstraction, in which case perhaps computing is not really your thing to start with).


So you are suggesting teaching basic cluster computing with an environment where one node can compute the results much faster and much easier?

I gather this is intended for K12 classrooms and demos, both of which are made infinitely more impressive by the blinking lights factor. VMs are great for in-depth training, but that's a different use case.


The answer is right there at the top of the article: that it's for the classroom.


Yes, so what will the target-audience learn over the virtual experience? Other than that they can't run this at home because of the cost?


Their home computers probably don't run Linux, for one. They also don't have to worry about syncronization over the network, and they don't have much opportunity to learn about hardware and maker skills.

I think you initially misunderstood this to be a consumer-oriented project instead of a classroom-oriented project, but doubled down when you were corrected.


> Their home computers probably don't run Linux, for one.

Glib reply: why not?

Serious reply: VirtualBox is available for Windows, macOS & Linux alike, and is free. Surely that's acceptable?


Glib response: because Windows is the dominant OS and my statement is statistically likely

Serious response: I'm of the opinion that you don't learn much about Linux by using it in VirtualBox.


I meant running multiple VMs in VirtualBox to simulate a distributed system as an alternative to buying multiple Raspberry Pis, not running Linux in VirtualBox.

The really cool thing, though, about multiple Raspberry Pis is that the systems really are running in parallel, rather than faking it with multitasking. That's definitely worth something in an educational context.


Ah, I see what you mean. That makes more sense.

Still, I think there's value in having this cool looking machine to fiddle with over the computer they're used to messing with all the time. I think it likely to engage more.


This.

Technically, a single PC with multi-process program is often enough. I've used this approach when I worked on some cloud game server, worked good, I just needed to make sure service discovery was OK finding multiple server instances on same IP but different ports.


> I think it likely to engage more.

As opposed to running it by yourself on your own computer in a bunch of virtual machines?


Absolutely. Do you see no value in the maker skills involved in building the rig?


> The really cool thing, though, about multiple Raspberry Pis is that the systems really are running in parallel, rather than faking it with multitasking.

Imho, multitasking is a much cooler feat than parallelism by mere duplication of the CPU. It requires much more engineering effort, e.g. in areas of memory coherence and such. Also, a modern desktop CPU will be an order of magnitude faster than the RPi, so you'll need a lot of them to match performance.


Imagine trying to explain to a kid that this one computer is actually a bunch of computers and why that is cool vs. having a bunch of flashing lights visually showing the work being done in a way that they have never experienced before. Which do you think would be more engaging?

> Other than that they can't run this at home because of the cost?

Do you really think that, as an example, a middle school student is going to be able to go home and install virtual box on their home computer? If they even have one?


"Imagine trying to explain to a kid that this one computer is actually a bunch of computers and why that is cool vs. having a bunch of flashing lights visually showing the work being done in a way that they have never experienced before."

As a kid, I would do something in a virtual environment (although at that time, that meant "programming the ZX Spectrum") and the others would say "does not!" or "prove it" and then any evidence they couldn't touch was not real, it was just something I made the computer do.

On completion of my CS degree, some former friends of mine would read something at an appropriately undergrad level that they thought was interesting and tell me about it. When asked "Can you not do that?" the response would typically be "No. And neither can you."

There's something quite satisfying about building something that you can throw at the head of another person.


Well, at least they do wrote some code for simulations using MPI which is nice I saw a few cases of "Hey, lets spend XXX USD for cluster of <RPI/something else>" and after that "Well we can't actually code anything for that so leave it rot/run BOINC to make it useful for anything at all"


Check out the bitscope blade http://au.element14.com/b/bitscope for another take on this. You still need most of the peripherals, but it makes for a slightly neater setup.


Thanks for sharing this, looks interesting.


I'm just dipping my foot in the pool and building a cluster with a Pi 3B as the leader and 3+ Pi Zero W's. (Three now, expecting to pad it as a lesson.)

Am I shooting myself in the foot by using the Wifi ethernet to handle inter-device communication?


This is still using original Series Bs... which are essentially obsolete by now. I stopped using them around 2 years ago:

https://github.com/rcarmo/raspi-cluster

Using Pi 3 boards would quadruple the number of cores and yield a 600% increase in thanks to the slightly faster default clock rate...


They're not actually trying to build a high-powered computing cluster, just demonstrate how one works.


They could / should switch to a Pi Zero or Zero W then, save more than half on the expense of the devices.

Or make it so you can plug in any Pi, is there anything of a secondhand market for those yet? I can imagine there isn't though, those things are cheap enough to be throwaway / lose in a drawer devices.


Neither of them is really high-powered, believe me. :)

But using one with old B boards could be excruciatingly slow at times, which is why I just had to upgrade mine - it’s since become a lot more productive in the sense that my tests take around 5 minutes instead of a whole hour :)


I doubt you're the only one on here with the understanding that a bunch of Pi's is not really a supercomputer cluster, but thanks for the clarification smileyface.


looks like the last update to the site was in mid 2015, so nowadays one should probably get the pi3 instead. However the github repo for the simulations is still empty.


wonder what ever happened to parallela? sounds like the same thing


Yeah, but can I mine Bitcoins with it?


this looks like it would b a fun project to do with my son.


More descriptive title, e.g. ‘Tiny Titan, a $1,000 classroom supercomputer’ would be helpful.


How does this cost $1,000? The budget is clearly not being used efficiently. The only computing part, the 9 RPi's are 315$ all together. So what, 685$ of plastic and accessories. Hmm....


30 bucks per USB LED Light, 15 bucks per USB cable... they don't choose cheap components.


Yeah they could save a bunch on those; the USB LEDs are things they could make themselves, stick them into the gpio pins. Actually they don't need those.

If your parts are more expensive than the rPI itself, you're not going to need it. Those cases aren't cheap either.


I help to run a once-a-week STEAM program for kids. Here's what we've found about cheap tools.

+ When they are new to a program, kids and parents care about how tools look. We have a nicely organized wall of tools and six identical work tables. It helps get participants excited and helps convince parents that the program is legitimate.

+ Once they buy in, kids don't care about how a tool or project looks. Some of our most popular projects are built from scrap wood or cardboard.

+ Even after they buy in, kids get easily frustrated when a tool doesn't work.

I think it makes perfect sense for the Titan team (or anyone without a pre-existing relationship to a group) to make everything nice-looking since it helps to establish credibility. If you're making something at home or you've already established credibility, you could absolutely cut some corners by using cheaper parts or making parts yourself. Make sure to use quality parts, though. If you rig something that constantly requires little fixes or nudges to stay running, your audience is going to quickly lose interest.


It needs to be presentable and easy to understand. Whilst those things may not be required for someone with a basic understanding of parallel computing, they probably make it easier to explain the concepts to someone going in with zero knowledge.

Considering it's sat in front of a Titan super computer, it was probably easy to get the thousand dollar budget considering how much went into the box behind it :P


The suggested components also include 16-port switch, monitor and XBox360 controller. I think they have added everything you might need for the full set up and maybe rounded up.


In all of my RPi projects, the RPi itself always ends up being less than half the price.

Case, sd-card, cables, power supply... It goes up quickly, especially if you don't cheap out on the quality.


I'm not sure about historical prices of the components, but this article is from 2015, as noted in the footer and in the PDF guide linked at the top.


(joking) gotta get that rgb man


(If you have to preface a statement with the fact that you're joking, either it's not a good joke, it's not the correct time/place/context for a joke, or both)


> Curriculum > Comming soon!

Seriously...?


Yes, seriously. Someone on the Internet made a typo.

It happens. Based on your surprise, it likely happens a lot more than you think.


Why not just use virtual machines to sub out the RPis? Without the curriculum, it's not clear what they're trying to teach here. Assembly? Networking? Administration of the RPis?


the fact that it looks really cool likely has surprisingly strong effects on student motivation and work/attention levels, leading to more learning, which is the sole target here


Yeah I think having something physical around will definitely help - being able to visualize something was really important for me back in school.

We had an overpriced external hard drive we had to slot into computers to play around with, but it helped because it wasn't a virtual "imaginary" thing.


The fact it looks really cool also helps with visitors / donors. Never underestimate the value of blinking lights to enhance your fund raising so you have more money to teach students.


Who are the students though? I'd assume that parallel computing is mostly interesting for university-grade "aspiring scientists", which is reinforced by the example software (a parallel 2D Smoothed Particle Hydrodynamics(SPH) code and a parallel Mandelbrot set race).

Do we assume that 18+ folks are only interested in parallel programming if it's assembled of shiny pipes?


Doesn’t seem like anyone assumes that. I’m interested in this stuff, but having it visual and physical like that would spark my interest even more. Seems like a no brainer that it makes students learn without studying a text book


>the fact that it looks really cool likely has surprisingly strong effects on student motivation and work/attention levels

This. The first step to teaching anyone anything is to grab their attention. Especially kids/teens.

But I'll admit, the price is too steep. They can definitely do better




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: