Many years ago I was leading a workshop on programming methods, and I can’t remember which language we were using at the time — it doesn’t matter — but we were covering numerous high level software development flows like spiral, V-model and waterfall. An astute engineer in the middle of the room raised his hand and interrupted the slide show discussion.
“This is all nice, but at my company,” he said, “we have a simpler two-step process. We put the bugs in, and then we have to find them and take them back out!” The room erupted in laughter and nodding heads.
It was a powerful and insightful summary, eloquently and humbly stated. It didn’t really matter what the programming method, model or language were; coders all need a method of taking the bugs back out. We know they’re in there somewhere. And if inherited legacy code is not our own, then we know two more things: the comments are awful, and there are probably more bugs in there than there would be if we’d written the code ourselves.
I’m paraphrasing from memory, but he went on to say something along the lines of, “We have tens of thousands of lines of legacy code, maybe hundreds of thousands of LOC. I need tools to help me identify where my issues and bottlenecks are.”
The Swiss National Supercomputing Centre (CSCS) operates a Cray XC series supercomputer called “Piz Daint,” and it’s the most powerful computing system in Europe at 7.8 petaflops as recorded in the most recent Top500 ranking. This 28-cabinet system is a great example of Cray’s adaptive supercomputing model, integrating over 5,000 hybrid compute nodes with a balance of both Intel® Xeon® CPUs and NVIDIA GPUs.
Piz Daint is a flexible machine that runs numerous codes across many different science domains and utilizes multiple programming models and languages. With this scale and environment comes some complexity.
When you imagine the challenge of scale — hundreds of thousands or even millions of lines of code to run on this amazing system, used for intense research into biology, chemistry, climate, physics, materials and more — don’t forget to budget time and energy to take the bugs back out.
You miss 100% of the bugs you don’t look for
A frequently-quoted sports saying, often misattributed to numerous superstar athletes over the decades (and heck, it’s funny, so it was probably Mark Twain), is “You miss 100% of the shots you don’t take.”
Enter Cray supercomputing ecosystem partner case study describes how CSCS recently used Allinea DDT to track down the issue and quickly identify a memory overwrite flaw. Ultimately the hidden problem required replacing only a single line of code to researchers back to doing what they do best: driving breakthroughs in scientific discovery.
Allinea and Cray share the same vision of enabling programmers — and by extension scientists, engineers and researchers — to be more productive. We can help you “take your best shot” by reducing the time you spend looking for bugs in the code, and reinvesting that time seeking breakthroughs in science and engineering.