Dec 6 2011

The future of computing is apparently really boring.

So I read the NYTimes Future of Computing Science section today and was pretty underwhelmed. The presentation of the articles was incredibly dull with almost no visualization. The articles themselves were mostly soporific. The quantum computing article told me nothing. The bioengineering article didn’t inspire. Nothing else did anything for me. I usually like the Science Times section but this was the most boring edition of the year, and I’m not the only one who thinks this way, the non-nerds in the house agree.

It is way more inspiring to play with the latest video games, or to play with the latest devices and apps, or to talk with young entrepreneurs. I’m surprised at how dull the topic seemed in the Times. This edition will not inspire any young people to enter the field.


Oct 19 2011

I just ordered my Lytro camera.

Available February/March next year. The Lytro features a technology they call “light field” — they grab sufficient photon data at capture time to allow refocusing, zooming, etc as a post-capture option. The Lytro is a simple step on the way to a full software-defined lens — I first wondered about such a lens in 2003, should have filed a bunch of patents. Other people are pushing the idea ahead, see for instance Software Defined Lensing.

As the writeup points out, you can view a traditional glass lens as a kind of quantum computer with a single fixed purpose, established at manufacture time. The lens captures all the incident photons, does some photonic/quantum computation, and spits an answer out on the CCD. But if we can replace the lens with something that has much more dynamic, programmable behaviour, well very cool things could be done — arbitrary refocusing and zooming being just the simplest example. A much broader set of incident radiation could be captured, spectral analysis of the image could be performed, filtering of the image, incredible levels of zoom, etc.

The Lytro is a very modest step in this direction but exciting.


Oct 16 2011

Recent nonfiction — Lithium, Jetpacks, Space Station, Revolutionary War, Spintronics

“Out of Orbit” and “Unlikely Allies” are the stars of the group.

  • Bottled lightning: Superbatteries, Electric Cars, and the New Lithium Economy by Seth Fletcher. Decent nontechnical book about the lithium battery and lithium production. Entertaining intro to the topic. Amazon gives it 4 stars, I’d say 3.5, would have liked a little more technical depth.
  • Where’s My Jetpack by Daniel H. Wilson. Short essays on the Jetpack, moving sidewalks, and other promised tech from sci fi. Kind of bland. Amazon says 4 stars but I’d say 2. Maybe if I didn’t already read a lot of scientific literature and science fiction, I’d like this. But I suspect all the readers of this book have a science/science fiction bent.
  • Out of Orbit by Chris Jones. Terrific true story about shuttle/international space station astronauts. Really digs into the emotional side of their trips, the highs of space travel, the lows of dealing with isolation and with the loss of colleagues in the shuttle disasters. Very compelling. Amazon says 4 stars, at least that.
  • Unlikely Allies by Joel Richard Paul. The story of an American and two Frenchmen during the Revolutionary War, and their involvement in securing the support of France — both diplomatic and material support. Fascinating look at a facet of the war that I knew little about. Amazon says 4.5 stars, I’m good with that.
  • Introduction to Spintronics by Supriyo Bandyopadhyay, Marc Cahay. This book is a good introduction if you already have a solid technical foundation in quantum mechanics at the graduate level — be prepared for a lot of math. If you want a nontechnical intro to spintronics, look elsewhere. Amazon says 5 stars but that is based on a single review. It is a very solid book though.

Sep 23 2011

View your body as a democracy, and the human cells are in the minority.

Mind-Altering Bugs. 


Aug 27 2011

Scientific computing and the cloud

20110827-091100.jpg This year I’ve had a chance to experiment with tools for compute intensive applications. In particular, tools that harness the profusion of inexpensive CPU/GPU cycles available — OpenMP for multi-threading on single machines so that multiple cores can be leveraged; MPI to distribute compute load over clusters of machines; OpenCL for handing general purpose computation off to a graphics processor. And then on top of these tools, NumPy and SciPy for scripting and visualization from Python. The amount of excellent computational software which is now available is amazing, these capabilities would have cost immeasurable amounts of money just a decade ago. And the first time I tied together a cluster of machines or yoked up a GPU and did a massive computation, and then displayed the animated results using Python — what a great feeling! The ability to attack really hard, really large problems is better than it is has ever been.

But what a nightmare of housekeeping. Breaking up computation into threads and spreading it across multiple cores with shared memory and file system is tedious and error-prone — hand-offs between threads create opportunities for many errors. The work to break up and manage the computation load across multiple machines is even more mind-numbing and error-prone, and now the lack of shared memory and files are additional complications. Using graphics processors is even more obtuse, with their funky fractured memory spaces and architectures and limited language support. And getting all the software piece parts running in the first place takes a long time to work through all the dependencies, mixing and matching distributions and libraries and tools, and then getting it all right on multiple machines. And then you get to maintain all this as new versions of libs and runtimes are released..

But again the results can be stunning — just look around the web at what people are doing in engineering (Youtube video), life sciences (Science Mag article), or any of a dozen other areas. Harnessing multiple cheap processors to perform complicated modeling or visualization can have huge payoff in financial services, bioinformatics, engineering analysis, climate modeling, actuarial analysis, targeting analysis, and so many other areas. 

However, it is just too darn hard to wield all these tools. The space is crying out for a cloud solution. I want someone else to figure out all the dependencies and library requirements and spin up the correctly configured virtual machines with all the necessary componentry. And keep that up to date as new libraries and components are developed. I want someone else to figure out the clustering and let me elastically spin up 1, 10, 100 machines as I need to, and manage all the housekeeping between these machines. I want someone else to buy all the machines and run them, and let me share them with other users, because my use is very episodic, and I don’t want to pay for 100 or 1000 or 10000 machines all the time, when I only need the machines for a week here and there. Maybe I want to run all my code in the cloud, or maybe I want to have all the VMs and clustering info delivered to my data center, but I want someone else to solve the housekeeping and configuration issues, and let me get to work on my problems.

Amazon is doing some great work in AWS with their HPC support (AWS HPC support).
Microsoft has made a commitment to provide scientific computing resources in the cloud (NYT article). There is a lot of great academic work happening (ScienceCloud2011). But the opportunity is out there to do a lot more.


Aug 11 2011

Link cleanup

A bag of stuff I’ve read recently that was compelling:


May 5 2011

Playing around with GPU programming

Been spending a lot of time playing around with GPU programming for scientific computing the last couple weeks. Fascinating stuff, GPUs are computational beasts. Some observations:

  • If you want to get into it, GPGPU.org has boatloads of great info — news, tools, definitions, primers, etc etc etc. The place to start.
  • There is a good chance you’ll end up using OpenCL as the device- and platform-independent interface to GPUs. Khronos.org has tons of great info and in particular, the OpenCL Reference Card. Good stuff.
  • The OSX platform has awesome support for OpenCL within Xcode. Very easy to get up and going. Great sample code up at the Apple Developer web site.
  • Also tons of samples from Nvidia.
  • However…you may quickly hit a dead end on OSX because only the most expensive Mac Pros come with GPUs which will support double precision, and double precision is kind of necessary for scientific computing. Info on which Nvidia processors support double precision here. I could go whack around and build my own double precision math libraries for unsupported GPUs but what a pain that would be.
  • So onto a PC, I happen to have one with an ATI HD 57xx which will support double precision. WAY harder to get working OpenCL code working on a Windows PC tho. After much wandering around, the “AMD SDK“http://developer.amd.com/gpu/AMDAPPSDK/Pages/default.aspx seems to be the best way to get working buildable OpenCL sample code. The most freaking obtuse make files ever tho, I am ripping them apart. But if you start with one of the sample code bases and duplicate it for your use, it works. (C++ by the way).
  • However now I am currently blocked by limitations in the trig function implementations. Some discussion online that suggests that they are single precision only. And even the single precision results seem to have crappy precision. I will definitely have to build my own.

UPDATE: a friend points out that Amazon also offers an EC2-based instance with GPU capabilities. Worth a look


Apr 21 2011

Math software sources

Saving for later reference….


Apr 8 2011

Interesting — Roundest Object, Sonic Black Hole, Relativistic Arbitrage


Jan 4 2011

Computational Fluid Dynamics – my winter quarter adventure

This course may kill me as I know nothing of fluid dynamics, but I am hoping the computational focus will play in my favor. I’m not so interested in macro-scale behavior but more focused on nano-scale applications.

Computational Fluid Dynamics (CFD) is a set of methodologies to solve numerically the governing equations of fluid motion. In the past decades, the development and use of CFD has widely grown in both academia and industry to perform fundamental studies and engineering computations of fluid flows, e.g. for the design of airplanes, turbine blades, jet and rocket engines. This course is an introductory course to CFD covering its fundamentals, as well, few advanced topics. The students completing this course in good standing are expected to learn: 1. the fundamentals and few advanced topics in CFD; 2. to select and implement numerical schemes for solving model equations for fluid dynamics; 3. to write and execute their own CFD codes (in Fortran or C); 4. to postprocess and analyze CFD results; 5. to write technical reports on CFD results.

Dec 19 2010

Year end link clean up


Aug 14 2010

Silk and Timber electronics

Paper and Lignin-based RFID tags. Silk electronic metamaterials.

Seems like we are not far away from having processing power embedded in damn near everything. Not lots of processing power, but enough to do identification and limited sensing. Interesting times.


Jun 30 2010

Moving off of Matlab for numeric/image processing

Reardon abused me (not really) for still using Matlab and goaded me to look into the ImageJ world. So I am learning. Seems like I need to get smart on

  • ImageJ and the Fiji distribution
  • Python derivatives like Jython for ImageJ scripting and NumPy/SciPy for numeric/array processing
  • There are a ton of other scripting language choices but seems like python covers this well enough. I don’t want the brain damage of Clojure.

Other stuff to learn? I’ll have to pick up an editor and source management tool as well. The benefit of all this? Any code I write should be faster, more easily redistributable, and there is a large support community. The disadvantage? I have to assemble all these piece-parts to get something equivalent to MatLab, so more time d&*king around with software which is time taken away from research focus. And the Matlab universe has a pretty good support community too, so not clear I am trading up there. Certainly the ImageJ/Jython/NumPy path is “cooler” along a certain dimension, but do I care?


Jan 31 2010

Cannon roundup — EMP cannon, Shock cannon, Vortex cannon

  • EMP cannon. Mount one of these babies on your trunk and eliminate that tailgating problem. 
  • Shock Cannon and here is how to get that solicitor off your porch.
  • Vortex Cannon video. Probably a bit more powerful than I ever thought about building at Halloween.

Jan 11 2010

Science reading


Nov 12 2009

Grabbag of interesting articles on math, econ, science, design, web

No theme here other than “stuff I happened across recently”

Oct 1 2009

Materials/Science grabbag

No time to blog, fall quarter starting, and travelling too. Dump of stuff that is interesting:


Sep 2 2009

Thinking that intrigues me

  • Touchable holography. Uses tracking cameras and directed ultrasound to create interaction and physical sensation. Cool demo.
  • Algortihmatic - online library of algorithms and IDE. Cool tho limited.
  • The LED’s dark secret. Droop in LED performance to be overcome for broader use.
  • Plasmobots — “their previous research has already proved the ability of the mould to have computational abilities”.
  • Ford Mike Rowe video. I didn’t realize they automatically tracked every single assembly operations through the tools. Fascinating.
  • Brad Feld’s open office hours. An intriguing idea. Commendable.

Aug 30 2009

Quick software/hardware trial notes

  • WPTouch plugin for wordpress is awesome. check out theludwigs.com from your iphone.
  • Messing around with Slingbox finally. Works well tho I had to massively reconfig home network to get rid of routers — configuring to get through one router was reasonable; getting through two was nearly impossible; getting through the three I had in place would have required several PhDs.
  • Download Manager Tweak. Probably prefer download statusbar
  • Vacuum your firefox db. No idea if this actually did anything. Didn’t seem to make Firefox explode so I guess that is a plus.
  • Polymath. Lots of great links to math formatting services for the web.
  • Gliffy plugin for wordpress. Seems like it could be useful as well.

Aug 17 2009

Systems Biology Graphical Notation

Standardized network diagrams for biology — SBGN.Org. Cool, I have a hard time imagining electrical engineering without a standardized circuit diagram language.