Characterization of an Application for Hybrid Multi/Many-core Systems

Multi-Core-Blog

In my last blog post, I illustrated a paradigm shift in chip technology and how node architecture must significantly change to support these trends. In this post, I will discuss a way to characterize applications for investigating approaches to moving forward into the world of multi- and many-core hybrid systems. When porting/optimizing an application to the new generation of hybrid multi-/many-core systems, one must identify enough parallelization to utilize two levels of parallelism on the node. Whether the node is an accelerated node or a many-core node, a significant amount of threading on the node is a requirement for good performance. The days of using messaging across all the cores on a node are over. Additionally, the lower-level ... [ Read More ]

We put the bugs in … we take the bugs out!

Bugs

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 ... [ Read More ]

Supercomputing Matters: SC14 in Retrospect

SC14-BLOG

SC14, the premier event in the HPC industry, has wound to a close in New Orleans. It’s interesting to look back and contemplate the validity of this year’s theme, “HPC Matters,” the success of the conference and the vitality of the industry. Our industry has seen the ebb and flow of the relevance of supercomputing, and the fortunes of Cray have often paralleled those of this event (or visa versa). This year was no exception and SC14 was a resounding success for Cray and for the industry. With more than  10,000 attendees and 356 exhibitors it was a full show and the work never stopped. As I walked the show floor — logging about 5 miles a day — I was struck by the number of Cray customers. They were everywhere, either with booths of their own ... [ Read More ]

Chapel at SC14: Making Big Easy

Chapel_SC14Blog

It’s been a big year for the Chapel team at Cray. In the past 12 months, we’ve doubled the size of our team, and with that expansion have been able to significantly accelerate the strides we’re taking. Here are a few notable accomplishments that occurred in 2014: Released two new versions of Chapel, the most recent of which, version 1.10, was made available on Oct. 2. Across these two releases, we’ve made significant performance improvements, enhanced our standard modules and I/O support, added initial support for Intel® Xeon® Phi Knights Corner (KNC) and continued refining the language’s productivity-oriented features. Held our first Chapel Implementers and Users Workshop (CHIUW) at IPDPS in May, highlighting work being done in ... [ Read More ]

Why Chapel? (Part 3)

Chapel_Blog

This article wraps up the series started in my previous two blog articles (here and here) with the goal of explaining why we are pursuing the development of the Chapel parallel programming language at Cray Inc. In those articles, I advocated for the pursuit of productive new languages like Chapel. In this article, I’ll cover reasons for developing a new language rather than extending an existing one. Why create a new language? Why not extend C, C++, Fortran, … ? People who ask this question are typically referring to one or more of the following perceived benefits. By extending a language you don’t have to reinvent the wheel and can build on what’s come before.  While this is true, conventional languages also tend to carry baggage that ... [ Read More ]