Category Archives: School

Spring 2014 Impressions

I’ve been terrible about writing things up lately, but want to at least put my semester impressions on the head of the chain of such posts.

One of my overall experiences is that teaching (and also, taking classes outside my typical discipline) has made me much more talky in class.

CS541: Compiler Design/Finkel
It’s a core class in the CS program, but I’m taking it this semester because Dr. Finkel is teaching it, and his classes are always excellent. I believe this leaves only one compilers/programming languages class offered at UK I haven’t taken, and that one is in the math department and entirely not my thing. I’m just shy of qualified to teach this material, so there’s a slightly odd dynamic in which I wait before delivering answers, and Raphi is frequently imposing a cooldown on my responding in class anyway.

We’re building a compiler for a cleaned up, stripped down C-Like language in Java, basically following Crafting A Compiler. I’ve used an old version of Fischer LeBlanc as reference for compiler material and like it better than the others I’ve used, so I figure this should work out well. Thus far, I’m having more trouble getting myself back into the Java mindset (So OOP. Much Type System. Wow.) than with the Compilers material. High expectations based on experience.

CS621: Parallel and Distributed Computing/Zhang
It’s basically a class in MPI. I’m hopeful that having some nice assigned MPI projects to work on will be good for me. There are two problems though: first, I’m afraid it’s going to turn into a linear algebra class that just happens to take place on parallel supercomputers. Worse, the lectures are terrible. The organization is bad. The slide decks are bad. The Englishrish is bad. The quality of response to questions is bad. It may actually be worse than the terrible Differential Equations with Jar Jar Xin class I took as a freshman. However, it is of the form “CS6xx,” and the content is at least in principle something I want, so as long as the projects and grades turn out, I’m happy. Kind of pissed that the crap lecture overlaps the Friday CS BoF and associated conversation.

GS630: Instructional Technology/Rice
I’m having so much fun in here. It basically consists of a bunch of jaded grad students discussing instructional technology for college teaching, largely from experience, lead by a specialist in the area from CELT. Some of the discussions basically go like this. I’m afraid I’m becoming “that guy” in here because I talk disproportionately and occasionally convivially argue with or reference outside material to the instructor, but again, I’m having a ton of fun, and it counts toward my PFF certificate.

GS610: College Teaching Seminar/Worley
I typically don’t post up my beginning of semester impressions post until all my classes have met, but this one doesn’t start until well into February. At some level, I’m pleased that it’s a general college teaching course instead of a department-specific one, I have trouble imagining a full semester in-discipline teaching class that didn’t turn into a myopia reinforcement program. It should be fun, all the GS classes thus far have been.

I’m not teaching this semester, and hopefully will be getting to more research projects with the freed up time.

Posted in Announcements, General, School | Leave a comment

Fall 2013 Semester Retrospective

I noticed while writing the pre- post for the new semester that I lost track of my customary semester review for the past semester while I was moving hosting. Pushing it up now.
Continue reading

Posted in General, School | 1 Comment

SC13 Retrospective

Posting up my notes from SC13 is another thing I didn’t get to during the end of the semester. Remedying now.

The main takeaway sequence from conversations on the floor is as such:

  1. The era of single-core performance gains is already over.
  2. Furthermore, the era of usable single-die performance for MIMD machines is coming to an end.
  3. Therefore, big machines are going to be getting physically bigger… to the point where connection lengths are a problem (everything is Infiniband, and Infiniband doesn’t tolerate long runs well)
  4. There is a LOT of cooling effort to make the necessary density happen – central large fan systems, immersion cooling, closed-circuit water gear, etc.

The other really exciting thing that it seems AMD is going to make it, and more. Their lean period finished when the payoff on the XBone/PS4 came in, and they have a VERY good plan for the next >2 years. It works with the premise above about single-core/die MIMD performance ending, and points in the HSA direction – this is the crazy parts with MMUs so a CPU and GPU can share memory without skew penalty and such. ARM and partners are also generally pointed that way, and have been for some time, though apparently AMD isn’t getting out of the x86 game, but it does look like they are getting out of the fat core game.
Continue reading

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

Heterogeneous System Architecture

Post-SC, I sat down to do some deeper reading on the HSA (Heterogeneous System Architecture) stuff. This is AMD/ARM (and many friends)’s plan for the future, and it is pretty fucking exciting (in an obscure technical sort of way).

The best starting point I found is this year old whitepaper [PDF warning]. They’re using slightly odd terminology, the important bits are LCU = Latency Compute Unit = Conventional MIMD CPU Core, TCU = Throughput Compute Unit = Accelerator, typically SIMD-engine-ish like a GPU, HSAIL = HSA Intermediate Language = IR that can be compiled at install/run time to accelerator’s ISAs. The hardware-side implementation details are nowhere to be found, but there are a lot of seriously exciting model-affecting things detailed on the software side. The general model, with things broken into grid, work group, work item, wavefront is FAR more sane than most of the parallel schemes (I’m thinking specifically of the awful CUDA nomenclature). Internally, the exciting stuff includes requiring a limited sort of preemption on the accelerators, a relaxed consistency model across memory shared over a whole system (nice thread-like shared memory), an intermediate low level language/VM for portability, and assurances about barrier capability in the TCU. The actual objects are basically FAT ELFs with a complete copy of the program for the LCU, plus the HSAIL representation for the parts that can be shipped to TCUs. I’m pleased that there seems to be a clever run-time that does a bunch of platform enumeration and controls where parts run in a rule-automated-but-overrideable way.

I had some folks at SC tell me they’d try to get me a more implementation-focused whitepaper on the hardware side at AMD but they weren’t sure if/when details would be clear for distribution. On the software side, the details are in a published draft of the ISA/Model/Compiler Writer’s Guide that I browsed around in a bit and found very enlightening. The reference tool-chain seems to be mostly built on LLVM and OpenCL.

I have some other SC-related thoughts to share, but I want to get them a little bit more refined (and decide which are for public consumption) before I post.

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

SC13

I will be at SC’13 November 16-21 with the aggregate.org/University of Kentucky research exhibit again this year in booth 629. Media and impressions should appear somewhere in my ‘net presence during and after the conference, it is always a good show.
Edit:Pushing photos from the show floor into this album.

Posted in Announcements, Computers, Entertainment, General, School | Tagged , , , | 1 Comment

chdk-ptp PKGBUILD

In another episode of fixing things for the Cameras as Computing Systems class I’m taking, I made a PKGBUILD that apparently correctly builds and installs chdk-ptp on Archlinux systems. Chdk-ptp is a tethered-control application for Canon cameras running CHDK, that hooks a variety of custom extensions to the ptp protocol. Their build system is a little lackluster, is missing things like an install rule, and requires a helper script be installed to do some path munging before running the binary, but the documentation is good enough to sort it out, and the program itself seems to work. My package depends on iup-all-bin from the AUR which also provides the cd dependency (not marked in its provides array, though there isn’t an official package to conflict with). I tried to use the built-from-source AUR packages for cd (Seriously, who thought that was a good name for a piece of software?) and iup, but iup was giving me a hassle and the chdk-ptp documentation suggests the binary distribution will be less trouble anyway.

The PKGBUILD format has changed a bit since I was last making my own- I like most of the changes in terms of clarity and modularity, but it does require a bit of re-learning. It also means I have a couple of pet packages that probably need attention.

The build is a little janky so despite it passing through namcap with only one expected warning, I don’t want to put it in the AUR until I’ve tested it enough to be reasonably sure it works as intended. I expect I will get around to that eventually.

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

Gigabit to The Home BoF Opening Presentation

I gave the discussion-starting talk for this week’s CS departmental BoF session. The topic this week was “Unlimited Internet bandwidth – Would it be a game changer or no big deal?” My opening talk was just to get people up to date on the current events to kick off a discussion, though it is very similar to asking “What will we do with the internet” in the early ’80s, and thus rather difficult to suggest up plausible cases that aren’t “The same thing but faster.”

Callout:

Gigabit to the home is rapidly becoming a reality. Programmable hundred gigabit networks are already being constructed. Cellular networks are improving so fast that people are dumping their wired connections in favor of wireless. In short, networks are becoming so fast that one can begin to imagine a world where bandwidth is essentially unlimited.

But how would the world change if we had (essentially) unlimited bandwidth to everywhere? Would it change anything? Don’t most apps already have all the bandwidth they need? Aren’t networks already fast enough to support “the Cloud”? Have we already max’d out on bandwidth? Are there any super-cool apps that could still be enabled by even faster networks? If so, what are they? Will they be truly radical, or just an incremental improvement?

Come and find out at our next CS Bof, Friday, Nov 1 at 3pm when we will debate whether there are apps that will benefit from even faster network speeds. If there was unlimited bandwidth, what new apps could *you* see emerging? Join us Friday to dream about the possibilities and give your opinion.

Slides , Notes

In a related note, I’ve made slides for several presentations recently in Beamer, including this one, and I’m pretty convinced I’m never voluntarily using Powerpoint or any obstinate WYSIWYG slide system again. Beamer is a superior tool for the job for every kind of presentation using slides I’ve ever run into.

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

Fall 2013 Impressions

Following my habit of posting Before/After notes on my semesters, some impressions for Fall 2013 now that every class has met. I’m getting to the point where the bulk of coursework I can and would sign up for tends to be special topics courses, which is a very interesting, if sometimes strange, phenomenon.
Continue reading

Posted in Announcements, General, Navel Gazing, School | Leave a comment

Spring 2013 Semester Retrospective

I lost this draft right after the semester ended, but spotted it while preparing to write up another project, and am now polishing and posting to continue my habit of posting before/after documentation for my semesters. I spent more of the semester than I probably should have on a variety of enriching distractions (like a 3D Printer), but still did very well at all my course obligations, and the distractions were enriching.
Continue reading

Posted in General, Navel Gazing, School | 1 Comment

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