John W. Haskins, Jr., Ph.D.


Department of Computer Science
School of Engineering and Applied Science
University of Virginia
151 Engineer's Way, P.O. Box 400740
Charlottesville, Virginia 22904-4740



E-mail: predator@cs.virginia.edu

Research Interests

My grand research vision is to quantitatively characterize computing efficiency along several axes: power, instruction throughput, and resource utilization. Historically, much research was done to produce faster microprocessors, and lately, trail-blazing work at Transmeta, Via, Intel, etc., have produced CPUs that consume less power. I would like to combine the subdisciplines of microarchitecture, compilers, and operating systems to develop demonstrably maximally efficient computing machines.

Other than prediction hints and predication, what more can a compiler offer to make branch prediction more accurate? Better yet, can the hardware branch predictor be done away with in toto? What other than page coloring can the operating system contribute to cache efficiency? We microarchitects have built ever wider pipelines, capable of keeping more instructions in-flight, while juggling the order of their dispatch and execution among several (sometimes redundent) functional units, with caches several times more capacious than all of main memory in my first 8088! But did we ever fully realize the potential of simpler, less resource-hungry designs?

My hypothesis is no, but once I have adequately defined and characterized computing efficiency, I believe we will, and will achieve performance (i.e., speed of computation) similar to less efficient contemporary designs for a fraction of their cost.

Professional Biographical Sketch

I earned my Bachelor of Science in computer science from Georgia Tech in December 1997. Between the conclusion of my undergraduate studies and the beginning of my graduate studies, I worked as an adjunct research staff member at the Institute for Defense Analyses Center for Computing Sciences. In May 2000 and May 2003, I received, respectively, my Master's of Computer Science and Ph.D. in computer science from the University of Virginia. In December 2002, I returned as a full research staff member to IDA CCS. In April 2007, I left IDA CCS to join NVIDIA Corporation's CUDA (Compute Unified Device Architecture) group. After NVIDIA, in January 2009, I joined Qualcomm as an optimization engineer on the Linux team. And most recently, in March 2013, I joined NetApp as a member of their Advanced Technology Group.

My graduate research advisor was Professor Kevin Skadron, head of the LAVA research group.

My resume (PDF document) may be viewed here.

About Me Personally

When I'm not doing research I like to lift weights at the gym (max bench press ever is 345 pounds; current max is 310 pounds... I gotta get back in shape), and watch my favorite movies: Predator, Tombstone, Heat, New Jack City, The Incredibles, Hulk, The Incredible Hulk, Cloverfield, etc. More than all those passe temps, however, I enjoy time with my wife Latitia and my daughters Jasmine, Jade, and Jinjer; often, a simple trip to the neighborhood pizza parlor is a warm time of laughter, sharing, and restoration. Additionally we enjoy playing tennis (badly), going out to read, and making up games and jokes.

I like to read a LOT. Here is a list of tomes that I have recently completed (as well as a handful that I finished a good while ago). I may eventually get around to highlighting my favorites and possibly even reviewing them. Through reading, I have discovered a profound interest in history, law, and economics; I have always enjoyed (auto)biographies, thrillers, and science fiction. A few of my favorite books include: The Founding Brothers, Origins of the Bill of Rights, Free to Choose: A Personal Statement, The Rise of Theodore Roosevelt, Hannibal, and Altered Carbon.

My sports of choice are weight lifting and tennis.

Yo hago estudiar español. Cada día, me gusta leer BBCMundo.com. Entiendo mucho cuando escucho o leo, pero no puedo hablar o escribar muey bien, aún. Peudo leer algunos portugués y francés, también.

Finally, I present one of my all-time favorite quotes from FOX's The Simpsons TV show. Quoth C. M. Burns (to his personal assistant Mr. Smithers who was suffering from anaphaylactic shock following a bee sting while at the helm of their tandem bicycle): ``Oh, Tuttle's Sunday trousers. Fear not, I'll get you to a hospital -- the only way I know how. Smithers, you infernal ninny, stick your left hoof on that flange, now! Now, if you can get it through your bug-addled brain, jam that second mephitic clodhopper of yours on the right doodad! Now pump those scrawny chicken legs, you stuporous funker!'' Priceless! In case you're wondering, mephitic is an adjective that means foul-smelling. (I had to look it up.)

My Geekiness

I like to study advanced mathematics (my current passion being non-standard analysis and its application to calculus instruction; I never found the topology text that I could follow... but I'm still looking), and keep up-to-date with the latest goings on in new microarchitectures; my favorite is the IBM PowerPC 970. Other curious architectures that I enjoyed learning about include Transmeta's Crusoe, Intel's Itanium 2, Fujitsu's SPARC64 V, and the venerable Alpha 21264 and Motorola 68060.

Oh yeah: while I think Linux is extremely cool...



...SMP Linux is even better!!!

I have also taken a liking to Professor Tanenbaum's Minix 3 microkernel operating system; it's clean, elegant, and easy to grasp as a user, an administrator, and a kernel developer.

My favorite programming languages are C and assembly: pure, low-level, no-safety-net, I-know-what-I'm-doing, don't-need-a-language-to-hold-my-hand, hard-core coding. Among assembly languages, I am fluent in x86, MIPS, and SPARC, familiar with 680x0, and need to learn PowerPC. (How hard could it be?) Python is a pretty nice programming language, as well; it's an object-oriented programming language done right... and I don't much like object-oriented programming; ditto for Scheme and functional programming.

And finally:

I am nerdier than 98% of all people. Are you a nerd? Click here to find out!

Software I Have Written

Publications

Personal Goals (Long- and Short-term)


Latest version: April 2013