Tag Archives: KAOS

Inspiron 11-3000 Notes


The KAOS lab recently bought a fleet of five Inspiron 11 3000 3138[PDF Warning] (Celeron N2815/4GB/500GB)laptops. They’re tiny little machines with 8 hour claimed battery lives, they’re pretty cute and sort of obstinate.

I borrowed one to play with, notes:
Continue reading

Posted in Computers, General, Objects | Tagged , , , | 3 Comments

Adventures in 3D Printing

The MakerGear M2 3D printer the KAOS lab ordered arrived last week. I am thoroughly impressed with the machine and how little fussing has been required to get decent prints out of it.

I’ve been pushing annotated pictures of our adventures with the M2 to a G+ album, because the auto-upload from my phone is too good to give up, even if the G+ album manager sucks. Take a look to get a taste of our massive new distraction.

Posted in Computers, DIY, Electronics, Entertainment, General, Objects, School | Tagged , , | Leave a comment

Headed out to SC11 in Seattle, WA. for the week. Technical interest, travel complaints, booth hacks, advertising mockery, and schwag to follow.

Posted on by pappp | Leave a comment

A Day in the Life of the KAOS Lab Thought Process

In which a simple “Do you know an easy way to convert an integer into a string of (character) digits?” turned into an expedition into ancient UNIX codebases. The process went something like this:

Labmate: Do you know an easy way to convert an integer into a string of digits?
< both of us type it in to google>
Looks like sprintf() is best, there must be a simple efficent algorithm.
How does printf() do it?
Let’s look in libc!
< grep through the various toolchain sources on my system >
Well, here’s the uClibc implementation… which is a terrifying mess of ambigously named function calls and preprocessor directives.
I wish I had some old UNIX sources to look at, that would be simple.
< a bit of googling later>
Holy crap, this is amazing! Full root images for a bunch of early UNIXes, many of them from dmr himself!
< download v5, grep /usr/source judiciously to find /usr/source/s4/printf.s>
Well crap, it’s in PDP-11 assembly, maybe a later version.
< download v7, grep /usr/src judiciously to find /usr/src/libc/stdio/doprnt.s>
Damn, still in PDP-11 assembly, but this is a fancier algorithm.
Hmm… the most understandable UNIX I’ve ever looked at was old MINIX
< spin up BasiliskII, in ‘030 mode, use this workaround to make MacMinix run>
< more grepping for justice>
Eventually, we found the printk() from MacMinix 1.5, in all its awful K&R/ANSI transitional C glory

#define NO_FLOAT

#ifdef NO_FLOAT
#define MAXDIG 11 /*32 bits in radix 8*/
#define MAXDIG 128 /* this must be enough */

_PROTOTYPE(void putc, (int ch)); /*user-supplied, should be putk */

PRIVATE _PROTOTYPE( char *_itoa, (char *p, unsigned num, int radix));
#ifndef NO_LONGD
PRIVATE _PROTOTYPE( char *_itoa, (char *p, unsigned long num, int radix));

PRIVATE char *_iota(p, num, radix)
register char *p;
register unsigned num;
register radix;
register i;
register char *q;
q = p + MAXDIG;
do {
i = (int) (num % radix);
i += '0';
if (i > '9') i += 'A' - '0' - 10;
*--q = i;
} while (num = num / radix);
i = p + MAXDIG - q;
*p++ = *q++;

Which is, of course, a digit at a time in one of the most straightforward ways imaginable. Minix’s kernel is designed for systems so resource constrained it has a separate prints() that can only handle char and char* to save overhead, so I can’t imagine it uses a sub-optimal technique.
This kind of thing really makes me wish I had learned OSes in the old death-march through the UNIX sources (or at least the old Tenenbaum book with MINIX) way; things are too complicated and opaque now. There always seems to me to be a golden age from around 1970 into the early 1990s where the modern computing abstractions were in place, but the complexity of production hardware and software hadn’t yet grown out of control.
In a related note, as a tool writer, looking at the earliest versions of cc is AMAZING. Most decent programmers should be able to work through the cc from v5 UNIX (574 lines of C for cc proper, 6454 more lines of C and 1606 of PDP-11 assembly in called parts) in a couple hours, and fairly fully understand how it all works. Sadly, (pre-3) MINIX came with a (binary only) CC made with ACK, which is fancy and portable and way, way, way harder to understand. dmr’s simple genius was just that.

Posted in Computers, Entertainment, General, School | Tagged , , | Leave a comment

Cluster GPU Thermal Monitoring

The research group has been writing some simple monitoring scripts for handling the clusters. The focus is mostly on montitoring NAK (page in serious need of update), which has always had thermal irregularities with it’s GPUs. Some of the (poorly designed) GPU coolers have recently finished cooking their fans, and the “repair” has been to remove the cowling and mount an 80mm fan in the case to blow across the heatsink — this produces comparable temperatures to the vendor solution, whch is pathetic. This thermal instability requires that the system temperatures be periodically checked, and we have written variety of colorful scripts both for users and for the displays in the front of the machine room. The one I wrote for my own use is a simple combination of bash and AWK, which produces nice colorized one-line summaires for each machine when run with something like “mpirun –hostfile ~/nakhosts ./pstatc.sh | sort” where nakhosts is a standard MPI-friedly list of hosts, and ~/bin/ has nvidia-smi (a little tool for handling nivida GPUs from the command line) exported to the nodes. Script attached here for perusal (and so I can find it later). Possibly the best part is that it made me referesh my memory on using ANSI Color Escapes, which has been on my list of skills to touch up for a while – That foray also lead to souping up the script Hank was working on to use background colored spaces for ghetto bargraphs to keep the displays in the windows of the machine room interesting until we are set up to drive them with something else. One of these days I really should learn to use ncurses, or at least get better with one of the GUI libraries…

Posted in Computers, DIY, General, School | Tagged , , | Leave a comment

SC09 Retrospective

I failed to blog interesting things from SC09 in real time, so here’s a dump of the things that should have gone up in pieces from the show floor. Some of these are just quick shout-outs for particularly good or bad exhibits, some actually have thinking behind them:

*The dominant message from supercomputing this year is “Everyone wants GPUs. No one knows why.” Even the ISVs are pretty honest about this phenomena, but the feeling seems to be that at around 10% of node cost (according to two different vendors), organizations who are buying really big pieces of hardware feel like the expenditure is a worthy experiment even if they are nigh impossible to utilize now.

* The Hank v. Nvidia rep “discussion” (which is apparently becoming an annual phenomenon) was good enough to draw a small audience.
This year’s opener was an attempt to get the MOG stuff published on a new nvidia-sponsored content aggregator (like gpgpu.org, but without the neutral perspective), so they can claim to be involved if/when it takes off, even though they have been entirely unhelpful with the research. As you may imagine, this didn’t go over well. On the upshot, they DO seem much more willing to admit their programming model is crap, and seem to be sniffing around for alternatives (which included shooting job offers for toolchain developers into our booth).

* The award for shittiest booth goes to the Windows HPC Consortium.
Microsoft themselves had the largest booth on the show floor, replete with blue carpet, vacuous cloud-motif hangings, a flight simulator, booth babes (and dudes) dressed up in pilot outfits, aviator shade schwag, and almost no technical content. Their users got a booth that looks like it was assembled by a deficient kindergarten teacher with a budget that wouldn’t cover lunch. Way to show contempt for your users, Microsoft.

* Green Revolution Cooling have an idea which is either brilliant, or absolutely moronic. They have extended and refined the old tweaker trick of sticking a whole system into a vat of mineral oil up to whole NEMA racks. The current arrangement has all the visual appeal of an industrial size deep fryer, with which it probably shares a lot of lineage:
Come on guys, some LEDs and translucent plastic to hide the ugly would go a long, long way. IF they can get around the issues of mess (even with low vapor pressure, between evaporation and splashes the oil will get EVERYWHERE), capillary wicking (a perennial favorite in DIY liquid immersion cooling solutions), service issues (most vendors won’t be real happy about an RMA box dripping with mineral oil, and getting it off will involve a hell of a lot of solvents to have in a computer), the benefits should be great. Quieter, lower power cooling (no fans or blowers), no condensation concerns, easy to reclaim heat, and the opportunity for denser, cooler systems (thanks to the vastly higher heat capacity of oil). There is actually a little bit of consideration about trying a small installation in the new Marksbury Building, since it will fit nicely with the blustery green BS surrounding the building (and hopefully attract vendor testing hardware.)

* The Cray CX1 and SGI Octane III are both adorable little desk-side supers. At a base price near $10k for each, they better kiss your toes while they’re down there though. The Cray is definitely cuter in person, the SGI box just looks like a miniature NEMA rack. There were plenty of examples of each tucked around the show floor…which is probably the only place on earth that can claim that.

* FPGAs are still floating around in the margins. Pico Computing (one of our neighbors on the exhibit floor) is making some some really attractive little FPGA boards, at surprisingly reasonable prices (entry cost ~$400). Most of the FPGA vendors on the floor were at least one and usually two orders of magnitude higher. Digilent (who made both the little Spartan 3 board I have, and the Vertex2 board being used to prototype LARs ) used to be pretty much the only show in town at the entry level. Digilent still seems cheaper per gate, but Pico’s form factors and interfaces look better for computing applications (and are just plain cuter). Some of the other FPGA products on the floor were just monstrous(That thing probably costs more than my entire college education). I’m a little dubious about FPGA-based accelerators (Convey, has the only convincing boards that actually do computation I am aware of; some other vendors have FPGAs doing useful work in the network mesh), but they sure are cool prototyping platforms. As a side note, one of the handful of good technical conversations I had was with a compilers guy from Convey.

I threw up some of my pictures from the trip in a flickr stream for those who are interested.

Posted in Computers, General, OldBlog | Tagged , | 1 Comment

SC09 Booth Hacks

The aggregate.org booth is cheap. Really cheap. So cheap that most of the major vendors have single pieces of hardware that cost more than our entire booth. But we still looks classier than all but a handful of the booths on the exhibit floor. This is because we were clever. Where other exhibitors have 42”+ LCD screens, we have large swaths of plasticized paper, wrapped around a modular shelving frame, and rear-projected to by a bunch of old XGA projectors. Because all displays have black backgrounds, we have what is visually four, four foot diagonal displays with no edges. For less total cost than a single 50” LCD. The group has been using a rig like this for years.

I’ve already written about the sign tower. It’s now complete, and is the kind of object that other people use as a beacon to navigate the show floor. It is also the mount for our previously mentioned slow update skycam.
A new clever widget of ours is the on-demand handout printing system. We new we wanted on-demand printing, so we brought a printer, a big lighted trackball, and an extra (decade old) laptop. Over the course of the morning, I assembled an intentional-, professional-looking setup. Originally, I was envisioning a simple, full screen, GTK application, but setting up one-click printing in GTK is a pest, so I came up with a much, much better hack (erm…solution): HTML. I made a simple HTML page, with a table of captioned 300px wide thumbnails of the technical handouts, linked to the real PDF files. I then abused the Firefox settings on the laptop, so that the default automatic handler for PDF files is… lpr. One click, and the requested file is automagically printed, in a separate background process, with the queue managed transparently by CUPS. Set Firefox to full-screen display, and, with a little bit of styling, instant classy interactive on-demand printing interface, that isn’t an obvious hack job. Based on opening night, the slow printer is having a little trouble keeping up with demand, but so long as we keep a reasonable buffer, the system is really nice, and the slight delays it produces have repeatedly given visitors a chance to latch on to one of our other projects.

Thus far, definitely a fun conference, with lots of neat things to do. Also a really, really large conference; the woman at the checkin desk at our hotel said the conference took up about 6,000 rooms,and the idea of 11,000 or 12,00 attendees isn’t incongruous.

Posted in Computers, DIY, General, Objects, OldBlog, School | Tagged , | Leave a comment

SC09 Live Camera

I have some thoughts from the trip to Portland to write up when I’m not horribly tired, but for now the SC booth setup is well underway, and we have a fisheye camera pointed down at the booth from the top of our 20-ish foot lighted sign tower, running slow live update to the internet (the script should be refreshing every minute) for your viewing pleasure. I’ll try to post up neat stuff from the show, and will probably dump the good pictures from the trip into my flickr stream as I get the chance.

Posted in Announcements, General, OldBlog, School | Tagged , | Leave a comment