Necks are absolutely essential

Because without them, I would’ve forgotten my head somewhere by now. But probably wouldn’t have even realized it yet.

This week has been a whirlwind. My collaborators and I are trying to get a research paper out (or, at least, in a form that doesn’t require my input for a couple of weeks) that will give my thesis progress a huge boost. I’ve also had to attend to lots of errands after, and sometimes during, normal business hours.

Why am I so busy? Aside from usual tendencies of graduate students, I am marrying my best friend in three days.


Not pictured: the person I am marrying.

Said best friend has been working remotely from her hometown all week, attending to various wedding-related final tasks in the evenings in concert with her Mom (and, as of yesterday, my youngest sister). Consequently, I’ve been holding down the Pittsburgh fort and absolutely failing miserably at keeping various commitments. To wit, last week:

1. Forgot about a meeting Monday afternoon.

This meeting had been scheduled for over a month. Blew right through it without realizing, until I received an email from the coordinator 30 minutes into the 1-hour event. Would’ve taken me 10 minutes just to get there on foot. Rescheduled on the spot.

2. Forgot about a meeting Tuesday evening.

This had been scheduled for about a week. Blasted through it and didn’t realize until the next morning. Rescheduled for later in the week.

3. Forgot a meeting on Wednesday afternoon.

This had been scheduled earlier the same day. In a stroke of luck, it was over Skype, so I jumped in 30 minutes late and caught up. No need to reschedule.

4. Forgot my laptop for a student government meeting Wednesday evening in which I was recording minutes.

Got halfway to the location for our monthly student government meeting when I realized I’d left my laptop at work. Being as how we try to keep meetings prompt and timely, taking handwritten minutes wasn’t going to cut it. I mustered as much grace as I could and informed the rest of the government that we’d need a stand-in minute-taker for the meeting.

5. Wrote a program Thursday morning that attempted to allocate as much memory as exists on the planet.

This was possibly my most embarrassing mistake.

Part of the publication my collaborators and I are working on involves a feature space of 72 dimensions. However, the space is highly non-linear, making it extremely difficult to determine which features (or combinations of features) result in the most accurate classification. So, I decided in my highly scatterbrained state, I would write a program that generated a powerset of these 72 features–all possible subsets–and attempt classification using each subset of features, then see which was the most accurate.

This is known as the “brute force approach” (yes, that’s the technical term). Sounds simple, right? Conceptually and programmatically, it’s extremely simple. In fact, here’s the Python code that does it:

return [item for item in itertools.chain.from_iterable(itertools.combinations(s, r) for r in np.arange(list(X.shape[1]))]

That’s it. One line of Python gives you all possible subsets of 72 features.

The problem is, this is not at all practically feasible. Those who are combinatorially inclined may be raising your eyebrows at this point. If you’re curious how many subsets this creates, the following expression tells you:


Where n = 72.

For those who see a bunch of Greek symbols, what this equates to is 272 subsets, which would require no less than 4.2 zettabytes of memory. How much is a zettabyte? 1 billion terabytes, to be exact. Think about tying together 1 billion consumer terabyte hard drives; that’s what I would have needed for this code to actually function.

Unsurprisingly, here’s what my strugglebug computer did:

Using 99% of CPU and 59% of available memory. When it last had any memory available to update this counter.

Using 99% of CPU and 59% of available memory. When it last had any memory available to update this counter.

This was taken several seconds after it had stopped responding to any kind of input. I had to perform a hard reboot. Had I taken all of 5 seconds to do the math, I would have realized I needed a better heuristic than a brute-force feature search.

So yes. This past week hasn’t been my greatest from a perspective of focus. But I suppose, given the circumstances, it’s warranted; even expected. I’m nervous, I’m excited, I’m scared, and I’m thrilled, all at once.

This will be my last post for a little while: wedding + honeymoon and all (you know how it is). Have a great (and memory-filled) few weeks, everyone!

Actually using multiple cores AND NOT trying to use the world's supply of memory. Much better.

Actually using multiple cores AND NOT trying to use the world’s supply of memory. Much better.

About Shannon Quinn

Oh hai!
This entry was posted in Academics, Graduate School, Mathematics, Programming, Real Life, The Lady and tagged , , , , , , , , , , . Bookmark the permalink.

3 Responses to Necks are absolutely essential

  1. Pingback: March [running] madness | Where are the pancakes?

  2. Carly says:

    (Slightly early) congratulations! And prepping for a wedding is a perfect reason to be a little distracted 😉

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s