2007/03/11

FS3 Project: The Road Less Traveled

Robert Frost once wrote,

Two roads diverged in a wood, and I--
I took the one less traveled by,
And that has made all the difference.

Those words came to me today as I skimmed through several books about computer programming at Barnes & Noble. The reason for looking at the books was to give my brain some food for thought regarding what people and talents are needed for the FireSeed Streaming Supercomputer (FS3) project. It's challenging enough to merely be figuring out how to write the code to efficiently parallel program twelve or fifty or a thousand clustered GPUs, each with 128 cores. But then to add the twist that the programming will be done as part of an ad hoc tech project with members of the project scattered around the world...

Suffice it to say this is definitely the road less traveled.

In my mind, the FS3 project alternates between a fun project, a challenging exploration of what's possible, a worthy exploration of new frontiers and an impossibly complex feat. MIT is working on the issue of an efficient parallel programming paradigm for multiple-core computers. Stanford and Berkeley have some pretty smart people attacking the many-core programming problem and developing their solutions. And the FS3 project, headquartered in Milwaukee, Wisconsin, will be developing yet another alternative way to connect and efficiently program twelve or more high end consumer video cards to deliver low-cost supercomputing resources.

There are no doubt other good, maybe better, books out there which give some good ideas regarding successful implementation of a project like FS3. However, of the books I saw at Barnes & Noble today, three books which appear to offer much to the FS3 project are:
  1. Dreaming In Code, by Scott Rosenberg
  2. Code Craft, by Pete Goodliffe
  3. Write Great Code, by Randall Hyde
After paging through those books, my head was spinning with things we need to do on the FS3 project, one of which is to contact the authors of those books to see if any of them are interested in joining us for the trip down the FS3 road. The Practice of Programming by Kernighan and Pike sounds like another book I need to check out, based on some web research.

If you want to join us on the trip, contact me. If you have suggestions for other books which are applicable to the FS3 project, suggest them in the blog comments.

We're looking forward to this particular section of the Journey, even though we can't predict what the trip will be like. In the end, though, as Frost said, taking the road less traveled "...has made all the difference."

*****

3 Comments:

Blogger Matt Gauger said...

I have a few recommendations based on your blog post, so I thought I'd chime in. From the three books you've got listed there, the two pillars of this area in my mind are The Pragmatic Programmer and Code Complete. But, these are largely more restricted to "how to be a better programmer" than any specific technical focus. Code Complete's checklists and Pragmatic's simple rules-of-thumb are great.

Beyond that, the writings of Joel Spolsky (available free on the web first; then he packages them up in a dead-tree version) and the books that Code Complete recommends start to branch out into increasingly interesting topics. Nowadays he focuses more on management of software teams and how to run a business, instead of older topics he covered such as why developer's need to know Unicode, heh.

The author of Code Complete, Steve McConnell, also has several books ranging from Rapid Development to Software Estimation and the Software Project Survival Guide. These are actually all highly recommended by others, but I haven't found the time to read them yet. Actually, any book published by Microsoft Press is probably really good, despite Microsoft-in-general's reputation.

For books not necessarily about software development, I've got several on the shelf now that are good: Conceptual Blockbusting by James L. Adams (designed as a course for Stanford's engineering students to get around conceptual blocks of a problem before they solve the problem, and therefore useful in the FS3 case).

The Practice of Programming is largely concerned with functional programming in C and it gets focused on technical issues in C when more general ideas can be used, like The Pragmatic Programmer contains. If you're interested in being a better C programmer, then read The Practice of Programming after reading The C Programming Language. Otherwise, it might not be worth the time despite what a good book The Practice of Programming is.

I once put together an Amazon.com wishlist containing all the books recommended in Code Complete, and I have another will all the books referenced or recommended by Joel Spolsky, and I can share them with your email address if you'd like. Just let me know.

Hope this helps, and sorry for the length! :)
- Mathias D Gauger

12:34 PM  
Blogger myDigitechnician said...

Thanks for the book recommendations, Matt, and for taking the time to write more than just a bulleted list of books.!

What I need now is a couple weeks to read all those books (not to mention a couple years to understand at least half of what's in them).

Hope you can make it to the FS3 meeting on 18 March in Milwaukee! We can talk more about the books then. Maybe we can connect with Tim O'Reilly, Kathy Sierra, Google, or someone else regarding developing an online technical library for the FS3 project. Something that FS3 project members can easily access from anywhere via the 'net.

Bob W.

2:33 PM  
Blogger Matt Gauger said...

I'll be there! I printed out google maps earlier today actually. I've wanted to see Bucketworks ever since I missed BarCamp Milw, so this is a great chance to get two things done :)

I can bring a few books for you to borrow, but a lot of my stuff is stuck in my parent's house in another state.

7:46 PM  

Post a Comment

<< Home