Category Archives: School

Spring 2013 Impressions

Since I’m in the habit of posting about classes I take at the beginning and end of the semester, and often find something interesting when I look at them later, some quick impressions for courses I’m involved in for the Spring 2013 semester.

Teaching: CS275: Discrete Mathematics
I did this last semester, but under a different primary instructor. I again have pretty much free reign over the recitation period for an hour a week, but this time I do get to do a little bit of new material instead of just examples, and the suggestions on this I should cover are shorter and less specific. I’m more comfortable with the material having done it recently, and my classes seem a little more lively, so it should be a little more fun this time around. That said, doing the same lesson twice back-to-back is slightly more demanding than with a gap, and it is very easy to forget what you did with each group. I’m balancing being a little less organized in the first section with tending to run out of time in the 2nd, so I think they’re getting similar coverage, although the second section is probably having more fun.

Taking: GS650: Preparing Future Faculty
This is a two credit hour, once a week evening course for graduate students who think they might end up in academia. I’m building up a pile of technology-related degrees, have a deep well of contempt for the tech industry, and like teaching, so that sounds right. It actually seems like it will be more useful to me than I expected, in addition to being mostly composed of reading the appropriate news streams, listening to experts talk, and reflecting on both, which is basically what I do with myself anyway.

Taking: LIN511: Introduction to Computational Linguistics
I can talk about how I’m taking this because I thought it would be good for me to look at the other kind of language tools, and how my interest in the cognitive science aspects of computer systems covers it, but I’m really just taking it because it sounded interesting, no one told me I couldn’t (and in fact all the appropriate people encouraged it), and why else have I ever done anything, ever? There is one other CS student in there, and about 34 mixed graduate and undergraduate linguistics students, so my perspective is certainly the minority perspective, although the instructor came to linguistics from computing (and is hilariously British). I came in expecting to need to self-teach a lot of linguistics material, but talking to my classmates, they seem to be having to work as much on the linguistics aspects as I am, and having trouble with the computer parts, so I guess I’m ahead? So far the bulk of the assigned material has been structured manipulation of character srings (Using DATR, which is basically a generic string class system implemented in an ancient dialect of Prolog…), which is for me mostly a good exercise in remembering the OO way that many CS folks view the world. It is interesting, and I’m not suffering, so we’ll call committing to this whim a good choice.

I’m also still not rid of my MS project. I’m deeply tired of it at this point. I’m working to arrange the thing I would like to be working on as a PhD while I continue to try to clear out the parts of the MS project that have never worked, hopefully it will be reasonably fast and graceful.

Posted in Announcements, General, Navel Gazing, School | 1 Comment

SC12 Impressions

I’ve got my pictures from the event up in an album in google’s cloud.

Here are the big, cool things I learned on the floor or at the various evening events:

  • Xeon Phi. Xeon Phi everywhere. Intel may have backed off on Larrabee, but the MIC descendants are proliferating quickly, and appear to actually be in use. They really are interesting parts – 60 node Linux x86 SMP box attached to a host system over PCI Express via a network-like interface. Somewhere between a tiny desk-side cluster and a GPU with a programming model you can actually use.
  • The population was much less male dominated than is typical for computing events. This is always a good thing.
  • The average age of attendees also seemed to be down by the better part of a decade.
  • The national labs losing their booths to the government-wide travel restrictions (apparently some folks went junketing in Vegas and it was that bad) changed the feel of the floor. Fewer, but longer and deeper conversations. More open layout, because many of the usual big constructed booths belong to the national labs. Users from the national labs hanging out at vendor’s booths. Not altogether a bad thing, but it was quite different.
  • ARM64 (aka aarch64, aka ARMv8). It is happening. It is odd (64KB pages, etc.). Large companies are being bet on it. We’re talking many billions of dollars, biggest bet since Itanium kind of big. The priority seems to be avoiding the Itanium mistakes, making sure the designs arrive promptly, and making sure software support is ready. Dell is talking quietly, Calxeda is gunning for it, Nvidia was showing (but only quietly) plans, AMD is being pointed to as a likely leader, and ARM was is sitting in their little 10×10 booth along one wall of the exhibit floor looking very pleased with themselves.
  • AMD is dying. The untimely (and vigorously denied) rumor that they hired J.P. Morgan to begin plans to sell part or all of themselves made it look even worse, but they had almost no presence on the floor, and scheduled a tiny booth next year.
  • We talked to a number of networking vendors making interesting things (free-air optical switching, multi-port Ethernet NICs, etc.). Infiniband is so good and so cheap (in a relative sense) for cluster applications right now that everyone else is hunting for an edge. This is a good thing for researchers.

There will be at least one more SC12 post later, when my cube of schwag arrives. The T-shirt harvest was great this year…

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

SC12

I will be at SC12 November 10-16, with the Aggregate.org/University of Kentucky exhibit in booth 631.

I will be posting pictures and impressions through at least one of my online presence mechanisms . I fully expect it to be weird this year with a bunch of the national labs pulled out due to travel restrictions, but it should be interesting.

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

Pigeonhole Contamination

I just had one of those “My whole life is a lie!” moments while preparing to teach the CS275 (discrete math) recitation that includes the Pigeon Hole Principle section.
Years ago, I took my basic discrete math course from Dr. Ken Calvert, who notably recieved his Ph. D. from U.T. Austin during the time Edsger W. Dijkstra was faculty there (this will become important in a moment). Dr. Calvert taught us several formulations of the Pigeon Hole Principle, including the traditional

Pigenhole Principle: “if more than n objects are distributed into a set of n compartments, some compartment must receive more than one of the objects.”

the Purified Pigeonhole Principle: “For a non-empty, finite bag of numbers, the maximum value is at least the average value.”

And finally the Refined, Purified Pigenhole Principle:“In any finite set of numbers, the maximum is at least the average, and the minimum is at most the average.”

What I didn’t realize until now is that the Purified Pigeonhole Principle is a Dijkstra-ism, and the Refined, Purified Pigenhole Principle may be unique to Dr. Calvert (or at least some set of people contaminated by Dijkstra).

Dijkstra objected to teaching the traditional formulation of the pigeonhole principle, and lays out his argument against it in EWD980 (for those not familiar, one of Dijkstra’s famous quirks is that he took meticulous hand-written notes, all marked “EWD” and numbered. There are a number of mathematical concepts named for whoever related them to Dijkstra, simply because his notes are the first rigorous written record.) Basically, he claims that the typical form requires explicit instantiation, is an operational formulation (and those are bad), and is a statement that locks the student into its chosen analogy. The PPP formulation is also more general than the traditional PP formulation with less verbiage, and makes the (also correct) contrapositive more obvious. I am not as clever as he was, just go read the EWD. Furthermore, I can’t find any mention of the RPPP online except for on Dr. Calvert’s own pages. Since the RPPP is the PPP with the contrapositive manifestly stated, I suspect the name may simply be to indicate it is a refinement of Dijkstra’s approach to teaching the PP.

…So naturally, I started at EWD980 until I understood it well enough to teach, took some notes, and will contaminate my students with the alternative formulations tomorrow, because it is a better formulation for many tasks, and because EWD is one of those rare people who is generally more correct than the common wisdom. I do think knowing the traditional formulation is important, and easier to apply to a variety of common tasks, but knowing both is better than either.

Posted in Computers, General, School | Leave a comment

Exploit Exercises is magnificent: nice pre-packed virtual machines with a set of known vulnerabilities to learn various classes of security problem from. Fuzzing you own machines is never any fun, because the likelyhood of finding anything good is infinitesimal, and … Continue reading

Posted on by pappp | Leave a comment

Higher Education Policy

This came out of a discussion on plus about an article I shared, but Plus isn’t really a suitable venue for the long-form response. The basic premise of the article, like so many similar articles, is that we need to impose continuous evaluation, and tie incentives to the results. A great many well-qualified people (preferred example: Diane Ravitch) think that model is wrong, and has already done a great deal of damage, and I tend to agree with them. (also note, the choices of some points and examples here are oriented for people with known similar experiences). This is also the first time I have set up this whole argument at once, so I’m sure there are holes you could drive a truck through in at least some of my claims, but I’d like to try for discussion’s sake.
Continue reading

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

The previous post ended with “I have no idea why the nodes won’t boot.” Now we know. The problem is that, in terms of the mkchroot-rh script that Warewulf3 comes with, Fedora 16 is not a Redhat derivative. This makes … Continue reading

Posted on by pappp | Leave a comment

Warewulf, and the Kernel Documentation

Earlier, while trying to instrument a failing boot from some peculiar nodes we were trying to provision, I came across the following gem in the Linux kernel documentation, from Documentation/filesystems/ramfs-rootfs-initramfs.txt:

Note: The cpio man page contains some bad advice that will break your initramfs archive if you follow it. It says “A typical way to generate the list of filenames is with the find command; you should give find the -depth option to minimize problems with permissions on directories that are unwritable or not searchable.” Don’t do this when creating initramfs.cpio.gz images, it won’t work. The Linux kernel cpio extractor won’t create files in a directory that doesn’t exist, so the directory entries must go before the files that go in those directories. The above script gets them in the right order.

Yup. If you follow the documentation for the tool, it renders your system unbootable. The linked documentation is actually pretty cool – it explains the rationale for the current state of the boot process, including that charming behavior, and links to the original discussions. But the particular behavior is still kind of psychotic.

Upside: After today’s digging I know all kinds of neat things about the current Linux boot process, which I hadn’t relearned after it changed at the the 2.4/2.6 transition. Similarly, the last couple times we had problems with Warewulf 3 (or, actually, Redhat-isims interfering with Warewulf) brought me back up to speed on interpreting raw packet logs from Wireshark, so this has all been thoroughly educational.
Downside: I have even less idea why the nodes won’t finish booting – the check I was adding was to test our theory that they were running out of memory, and they don’t seem to be.

Posted in Computers, DIY, General, School | Tagged , | 1 Comment

Teaching Embedded Systems (with Arduino)

Now that the classes are winding down, I want to write up some internet-accessible notes about the embedded systems unit I designed and taught for EGR199 this semester. The unit went well, and I can see basically the same materials being reused, so having a nice content dump for me or any other instructor to use is worth the effort. Long winded version after the fold.
Continue reading

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

Bookish Dreaming

I only remember a dream every year or so, but I realized on the way back from getting breakfast with friends this morning that a book I thought I’d been reading was entirely in a dream. It was a long dream with various dream-space fucked-up-ness to the setting building (No University space is that large, that nice… or has three large highly styled cafe/lounge spaces in the same complex) and interaction with various old acquaintances, but there was one section I didn’t realize was a dream because it was so normal:
< dream content >
I picked up a book (roughly A4 sized, and inch or so thick, nicely black cloth-bound with gold embossing) about code generation for a particular class of exotic hybrid-SIMD machines (I remember details, which are realistic, but not specific enough to pick out which machine) by David Padua (respected figure in parallel computing, who I’ve met at conferences) and a coauthor I couldn’t remember when I woke up. I got the book from a well stocked engineering library, and discussed it with various engineering types I know, including my current adviser.
< /dream content >
Until we were headed back from breakfast and I realized the setting was “improbable,” I was sure it had happened. When I got home I had to see if it was something I may have seen referenced – the content and authors were probably based on “Optimizing data permutations for SIMD devices.” which I read a year or two ago, but it isn’t an exact match. The description I remember also matches a section in Encyclopedia of Parallel Computing (four volume, $1500) book that I’ve never seen before (and now want access to). I also want the dream book, because it would be all kinds of useful for my MS project.
Aren’t brains interesting…

Posted in Computers, General, Navel Gazing, Objects, School | Tagged | Leave a comment