As we shared last week, Kate Gregory and Ade Miller have released C++ AMP, an exploration of accelerated massive parallelism with Microsoft® Visual C++®. In that post, Ade answered a few of our hard-hitting questions. In this post, Kate answers the same set of questions:
Q1. “C++ AMP” in 140 characters or less?
C++ apps can speed up the data parallel parts by 100x – imagine what that makes possible! And it’s C++ all the way.
Q2. How did you get interested in writing about C++ AMP?
I’ve been watching parallelism and concurrency since PDC 2005 when both Herb Sutter and Jan Gray let us know the future would be concurrent and the free lunch was over. The minute C++ AMP was first shown publicly I knew I wanted to know more about it – which ended up leading to the book almost against my will. Writing books is hard!
Q3. What kind of research did you do for this book?
I had to learn all about a technology before it was even finished! I spent a lot of time watching code run, changing things and trying it again, and meeting with the team about it. There was some background reading before I got started so that I understood where C++ AMP fit into the larger picture, as well. And I watched what Ade, my co-author, did to algorithms to make them faster and faster and faster. That was an education on its own.
Q4. What was the hardest part about writing C++ AMP?
Writing about a moving target is always hard. We would finish an explanation or a sample, and then the new release would invalidate that and we needed to go back and start again on that. Or I would want an answer about how something worked and there was nothing anywhere about it yet. The good news there was that I could ask the team and get an authoritative answer remarkably quickly, but it was certainly a different process than some I’ve followed writing on some other topics.
Q5. What are you working on now?
I’ve just released a new course on using Visual Studio 2012, and I have a second part, on debugging and extensions, to complete. Then I’d like to start looking at the library situation in C++.
Q6. What advice would you give new C++ developers?
Do not read old books, watch old webcasts, or listen to old developers (like me!) unless they’ve converted to modern C++. You can get all worked up about char* strings and manual memory management and believe this language is super complicated and hard. Or you can use what the Standard Library has to offer, like std::string or the new smart pointers that actually are smart, and you’ll find it easy, readable, and faster than anything else.
Q7. Do you have any favorite C++ favorite authors or books?
Scott Meyers, Herb Sutter, and Andrei Alexandrescu are a can’t-miss combination. I’ll listen to any one of them, or read what they’ve written, and never regret it, though sometimes Andrei makes my head hurt from thinking so hard.
Q8. What question should I have asked?
Why have I stayed with C++ for so long when so many people moved to .NET?
Q9. And the answer?
I love the speed, the power, and the control that C++ offers. Over the last decade I’ve done a lot in managed code, as many people have, but I never stopped using C++ or feeling that it was special. Now that C++ is getting a lot of attention again, partly because of amazing technology like C++ AMP, I have to tell my friends “don’t call it a comeback – some of us never left!”
Do you have questions or other feedback? Leave a comment!