INTERVIEW: RapidMind's founder, Dr. Mike McCool

By Scott Valentine on January 15, 2008 - Comments (View)
Professor-turned-founder Dr. Mike McCool talks with Red Canary about how even wildly complicated technology needs a human perspective.

Dr. Mike McCool is co-founder and chief scientist of Waterloo’s RapidMind, the world’s leading provider of multicore platform solutions to the software industry.

McCool was born in Ohio but grew up in tiny Edmundston, New Brunswick, before moving west in his teens to study computer engineering through the University of Waterloo’s inaugural co-op program. McCool picked up his BASc in Applied Sciences from UofW in 1989, before tackling graduate studies in parallel computing and medical imaging at the University of Toronto, where he received a PhD in Computer Science. McCool’s academic c.v. includes additional studies in fields as diverse as human physiology and biochemistry.

Let’s have your founder’s story
I started my career as a professor at the University of Waterloo in 1994 when it was just getting to be reasonable to make videos with computers and process them. My area of research was interactive graphics . . . the history being that SGI was the dominant player of the time.

During my first few years at Waterloo, inventors started making graphic accelerator boards, which were basically little parallel computers on a chip. I was interested in all the computations happening on those chips—how they were used for different algorithms.

In 1999, myself and a grad student, Jan Kautz, mapped algorithms on to a GPU directly. It was a horrible experience, we got it working but the hardware could barely handle it.

We figured that eventually developers would want to add [other] features, so we talked to some people to get a list of desired features and built a simulator – a low level virtual GPU – called SMASH, the idea being to “smash” preconceptions.” Eventually that becamethe RapidMind platform.

What kind of people do you like to surround yourself with?
First, ego is unacceptable. People need to be honest when they can’t accomplish something and ask for help. At RapidMind, we try and enable our customer’s application experts to do their thing.

The people we look for here need enough experience to deal with those applications specialists. Our platform is generally capable but really it’s like clay. It needs to be sculpted into a solution for a specific customer. The trick for us is to engage customers with people that translate business needs and platform capabilities into a solution that fits in the customer’s space.

Multicore is complex stuff. Can a student or recent grad cut it with RapidMind?
What we are doing is so new that experience helps but it’s not critical. Some of our best people here are relatively new and young. In fact my co-founder was one of my grad students, and I still have six students active in research.

One of the biggest things is, you don’t get into this (multicore) for the technical interest as much as you do to solve customer’s problems. In the beginning, I had pretty limited business experience and I had to learn a lot of hard lessons about how to interact with customers.

People fresh out of school need time to understand these other aspects of business. You have to have strong people skills and the ability to understand customer requirements. Our solutions architects need technical skills, but they also need to be great listeners and be able to ask the right questions.

What’s your management style?
I’m a collaborator and kind of a hands-on guy. I still do a bit of coding every month to make sure I’m current on what’s going on. I also talk to people a lot and make sure everyone is aware of what the priorities are. We use Agile methods, though in my role as chief scientist I’m not really involved in project management. Reliability and performance are very important . . . I like visibility and I try to identify early-on if something is going off-the-rails.

Does diversity help you straddle the fence between scientist and entrepreneur?
My background is quite broad and I think that helps. When I first decided to commercialize (the multicore platform), it was clear to me that trends were pushing towards a need for the solution.

But quantifying that and translating it into a business plan that made sense was very challenging for me. Explaining the technical concepts and finding enough information to justify that we felt was an obvious opportunity – that there needed to be a tool to allow the transition to parallel computing in the near future – was tough to get into a business plan, and we got turned down a couple times for grants. It was then I realized the importance of bringing in business expertise.

The important thing is to recognize your limitations. The best thing anyone ever said to me is that you have to put ego outside and think about what is best for the company. If that means that you bring in other talent, it’s the cost of doing business. Part of the growth curve of a start-up is realizing that you have to be a constantly changing organization.”

Talk about balancing your passion for innovation and research with the dull realities of company building?
The excitement is to make it all the way from idea to reality. A lot of the time when you’re doing research you get so far then stop and do something else. It’s nice to see products being used the way they were envisioned.

When I did something in graphics that showed up in a product or a game, that was satisfying. But it’s extremely satisfying to think that RapidMind can make a difference by allowing developers to do all kinds of things for people all over the world. I think it’s about maturity.

Research is like falling in love for the first time. Building a company is like being married. It’s a more mature satisfaction.

What other Canadian companies or innovators impress you?
There’s been a really good set of innovations out of Alias (purchased by Autodesk). . . one of the better Canadian success stories, I think. Generally speaking, I’m impressed with the graphics productivity of the Stanford group. The Imagine processor was particularly interesting. I was impressed with how they stepped back and questioned basic assumptions about computer hardware to fuel innovation.

What is innovation anyway?
Innovation is all about asking the dumb questions like “Why has it always been done this way?” A lot of the time I think innovators are cross-pollinating. I came from graphics, which is a certain style of computing, but I also a have a hardware background. One of the things about computer science people is that they often don’t know about the underlying hardware they are writing on.

I think the fact that I had a hardware background initially and then switched to graphics and back to computing again gave me a different perspective. I think you’ll find that many innovators have pretty eclectic backgrounds.


What’s the one piece of advice you’d give to a young Canadian tech company or entrepreneur?
I’ll go back to it again: ego is not useful. Confidence and persistence are. Always be thinking really hard about the things you need to accomplish in order to succeed, and if you need help, get it. You should always be going back to that key question of “What is the most important thing I can be doing right now to move my business forward?”

Fact or fiction: plug-and-play auto-parallelization is a reality in the next 5-10 years?
Sure, if AI is invented. The problem is that developing almost any software program is a quite creative activity. There’s lots and lots of ways to look at a problem but most people have been trained to think sequentially and address problems in a sequential fashion.

The fact is that there are huge differences between serial and parallel algorithms. So, a tool that addresses serial code would effectively have to understand and choose a better algorithm for parallelization.

Auto-parallelizing tools can probably pick up some of that, and certainly there are tools that could assist, but I think for ultimate performance it has to involve a human in the loop to look at a problem and rethink it.

Down-the-road, will multicore face a platform-splintering conundrum similar to what mobile developers are dealing with now?
I think industries go through splintering and consolidation for various reasons. Splintering happens when people want to try different things and they are competing. Consolidation happens when the options have been tried and there’s some agreement as to approach. There are a lot of ways to ‘do’ parallelization but some of them aren’t very good – O.K. from a tech side but no good from a human side – these things are really hard to figure out in advance.

Splintering is appropriate for this stage of the market. It may be inconvenient for someone trying to pick a platform but it should not be unexpected for this point in time. There’s growing consensus in terms of a what unified (multicore) platform may look like, but the truth is that what’s right for a Web2.0 server may not be right for coding media or whatever.

We’re just at the cusp now, people are converging on solutions that make sense. I think RapidMind is well on the path towards platform maturity.

Thanks Doc.

Comments