Bookmonger: A coding guide from a coastal kayaker

Published 9:00 am Tuesday, February 6, 2024

Tim Mattson, a coastal sea kayak instructor with a doctorate in chemistry, has teamed with coauthor Tom Deakin to write a computer programming guide.

Maybe you’ve seen Tim Mattson paddling his kayak around Willapa Bay or out in the ocean surf. He’s a certified coastal sea kayak instructor, and an unabashed practitioner of stupid kayak tricks, which are posted on YouTube.

After watching those, it’s hard to compute that the same fellow earned a doctorate for his work on quantum molecular scattering, which led to a long career as a researcher and senior principal engineer at Intel, which leads to the point of today’s column.

Mattson has written a book called “Programming Your GPU with OpenMP.” He and coauthor, Tom Deakin hope this guide will encourage computer programmers at all skill levels to venture into writing code, using the most common interface for parallel computing.

This week’s book

“Programming Your GPU with OpenMP,” by Tom Deakin and Timothy G. Mattson

Massachusetts Institute of Technology Press — 334 pp — $80

Mattson contacted me late last year when his book came out, acknowledging that a topic like this might not necessarily grab the attention of the majority of newspaper readers. Many of us, he supposed, have no deep understanding of the impact high performance computing has on our lives.

But, the author informed me, without it we wouldn’t have RNA vaccines, or sophisticated climate change modeling, or – I looked this one up – efficient fraud detection tools.

Mattson made a convincing case to allow room for further education in this column.

So let’s decode the alphabet soup in the book’s title: graphics processing units are an important part of computing technology. Originally, these were designed to speed up the creation of three-dimensional graphics. More recently, they’ve been used to accelerate other tasks in high performance computing.

Open multi-processing was devised nearly 30 years ago as an application programming interface to manage work across many platforms — and it’s an interface that Mattson played an instrumental role in creating.

Today’s computers are composed of many different processing units and accelerators that enhance various functions of a computer. Open multi-processing wrangles all of the above to allow parallel computing to take place.

Need a break already? Me too!

“Let me attempt to explain what parallel computing is all about,” the author wrote helpfully in a follow-up e-mail.

“Imagine yourself as a chicken farmer. You have a cart to pull. It would be easy to pull if you had a horse, but all you have is thousands of chickens. How do you hook up all those chickens and coordinate their behavior so they can pull the cart?

“This is a silly analogy, but it captures the essence of parallel computing. In place of ‘chickens’ you have programs. You need to get them to work on their part of the problem and coordinate what they do so they accomplish the needed task,” he wrote.

I’m a pretty dumb cluck when it comes to understanding computers, but here’s the gist of the matter: this book supplies information and tutorials for anyone who wants to understand how to program graphics processing units using open multi-processing – the ability to do this can maximize performance, and runs on almost any system.

Marketplace