Parallel Thoughts

By Michael Feldman

September 28, 2007

As Intel and AMD take a break from beating each other about the quads, this week we’ll turn our attention to software — specifically, parallel programming. Yes, multicore processors, GPUs and FPGAs are all the rage; but without applications to run on them, they’re just pretty etchings. In this week’s issue we have three articles that discuss different software approaches to getting the most out of the new hardware.

In our first feature article, RapidMind Chief Scientist Michael McCool makes a case for data parallelism — not surprising, considering his company’s platform is all about exploiting that particular aspect of HPC applications. McCool’s contention is that traditional task parallelism is of only limited use, since this model is difficult to scale to the levels necessary for today’s multicore systems, much less the manycore systems of the future. The main problem here is that the memory bottleneck demands much more latency tolerance than can be achieved by the relatively low numbers of tasks that can be naturally teased out of a typical application.

Says McCool: “The solution to this dilemma is data parallelism. In data parallelism, the structure of the data is used to drive the creation of more and more parallel tasks as needed. Since larger problems with more data naturally result in more parallel tasks, a data-parallel approach results in a scalable solution that can automatically take advantage of more and more cores.”

McCool does make an important distinction between SPMD (Single Program, Multiple Data) parallelism and SIMD (Single Instruction Multiple Data) parallelism. The former is the more versatile, inasmuch as it avoids the latter’s limitation of relying on a single operation per data stream. In essence, SIMD implies vector processors, while SPMD can be applied to a variety of architectures.

In “Language Design for an Uncertain Hardware Future,” The MathWorks’ Rod Lurie contends that the implementation language should be selected with the domain expert in mind. The idea is that language should enable users to develop applications as quickly as possible, without having to worry about the target architecture. He suggests programmers take a two-pass approach to software development. In the first pass, they should concentrate on getting the algorithm correct, and not be concerned with performance issues. In the second pass, the programmer can go back and insert parallelism to optimize runtime execution. But the language system itself should be responsible for mapping the parallelism onto the underlying hardware.

According to Lurie: “In this two-pass model, domain experts, like the scientists and engineers who will be major consumers of high performance computing systems, should be able to express their ideas in a natural way, allowing them to explore their solution space rapidly. To maximize their productivity, these experts should be able to focus on their core competencies.”

The second pass is accomplished by annotating the original algorithm with parallel constructs, like PARFOR, MATLAB’s method of specifying parallel for-loops. Parallel annotation usually has the advantage of being compatible with non-parallel hardware. In other words, the parallel constructs will just be ignored when executed on a single-core platform.

To round out our trio, Visual Numerics’ Tim Leite writes about some of the difficulties of porting applications from legacy systems to clusters. The advantages of porting are obvious, but the obstacles can be formidable and include preserving elements like computational accuracy and portability. Multiple language support also can become a big issue when migrating software to a new platform. Leite suggests that using commercial numerical libraries to insulate the application from the underlying hardware can help to ease some of these porting pitfalls. He also notes that these same libraries often give the developer some specific support for MPI programming.

Writes Leite: “As compute clusters become more prevalent and powerful, computational libraries continue to evolve to assist the developer in leveraging the cluster technology. Building parallel processing-enabled applications can be difficult, and commercial libraries can help programmers avoid some of the issues associated with optimizing code for a cluster. In fact, some libraries have introduced techniques that assist not only the sophisticated programmer, but also the novice distributed computing developer.”

While each of the three approaches reflects the particular vendor’s offerings, they all have some important elements in common. One is the realization that existing commercial toolchains can be harnessed. Although the APIs in the vendor solutions are proprietary, they leverage standard language environments. For example, The RapidMind platform is built around a C++ framework and can take advantage of the large ecosystem of tools, libraries and applications that has grown up around that language. The MathWorks is fortunate to have its very own and very popular MATLAB language. It was originally developed with a single processor in mind, but the Distributed Computing Toolbox was added in 2004 to help users adapt their code for the emerging generation of parallel hardware. And finally, Visual Numerics’ IMSL libraries are written in the some of the most widely used languages today: C, C#, Java and Fortran. Almost without exception, commercial parallel software products are built on top of well-established languages.

Each software approach discussed here also pays a good deal of attention to maintaining portability across targets. Since application development has become one of the most severe bottlenecks in system deployment, any technology that can decouple the code from the hardware is greatly appreciated. With the recent proliferation of multicore processors, accelerator coprocessors and cluster architectures, there is a real motivation to make sure the software developer (and end-user) is insulated as much as possible from hardware concerns. RapidMind’s solution is perhaps the most ambitious in this regard. It’s designed to map application code to x86 CPUs, a number of GPUs, or the Cell processor.

Related to portability is scalability. Today’s clusters come in many sizes, from a few nodes to thousands. At the level of the processor, chipmakers are using Moore’s Law to double the core count every couple of years. If applications aren’t developed with scalability in mind, the code’s longevity will be tied to the hardware it was originally targeted for. In the brave new world of parallel architectures, the ability to automatically scale software is a necessity.

Admittedly, none of the current approaches to deal with parallel programming is without drawbacks. For one thing, each tends to focus on a single dimension of parallelism, usually either at the level of the processor or at the level of the cluster. And Lurie himself acknowledges that his two-pass model would be unnecessary if the underlying language had built-in intelligence to implicitly perform parallelization. Forcing the software writer to think in parallel is the single biggest obstacle to large-scale development of parallel codes. Today unfortunately, there are no magic bullets because there is no magic gun. A more general framework awaits.

—–

As always, comments about HPCwire are welcomed and encouraged. Write to me, Michael Feldman, at editor@hpcwire.com.

Subscribe to HPCwire's Weekly Update!

Be the most informed person in the room! Stay ahead of the tech trends with industy updates delivered to you every week!

Data Vortex Users Contemplate the Future of Supercomputing

October 19, 2017

Last month (Sept. 11-12), HPC networking company Data Vortex held its inaugural users group at Pacific Northwest National Laboratory (PNNL) bringing together about 30 participants from industry, government and academia t Read more…

By Tiffany Trader

AI Self-Training Goes Forward at Google DeepMind

October 19, 2017

DeepMind, Google’s AI research organization, announced today in a blog that AlphaGo Zero, the latest evolution of AlphaGo (the first computer program to defeat a Go world champion) trained itself within three days to play Go at a superhuman level (i.e., better than any human) – and to beat the old version of AlphaGo – without leveraging human expertise, data or training. Read more…

By Doug Black

Researchers Scale COSMO Climate Code to 4888 GPUs on Piz Daint

October 17, 2017

Effective global climate simulation, sorely needed to anticipate and cope with global warming, has long been computationally challenging. Two of the major obstacles are the needed resolution and prolonged time to compute Read more…

By John Russell

HPE Extreme Performance Solutions

Transforming Genomic Analytics with HPC-Accelerated Insights

Advancements in the field of genomics are revolutionizing our understanding of human biology, rapidly accelerating the discovery and treatment of genetic diseases, and dramatically improving human health. Read more…

Student Cluster Competition Coverage New Home

October 16, 2017

Hello computer sports fans! This is the first of many (many!) articles covering the world-wide phenomenon of Student Cluster Competitions. Finally, the Student Cluster Competition coverage has come to its natural home: H Read more…

By Dan Olds

Data Vortex Users Contemplate the Future of Supercomputing

October 19, 2017

Last month (Sept. 11-12), HPC networking company Data Vortex held its inaugural users group at Pacific Northwest National Laboratory (PNNL) bringing together ab Read more…

By Tiffany Trader

AI Self-Training Goes Forward at Google DeepMind

October 19, 2017

DeepMind, Google’s AI research organization, announced today in a blog that AlphaGo Zero, the latest evolution of AlphaGo (the first computer program to defeat a Go world champion) trained itself within three days to play Go at a superhuman level (i.e., better than any human) – and to beat the old version of AlphaGo – without leveraging human expertise, data or training. Read more…

By Doug Black

Student Cluster Competition Coverage New Home

October 16, 2017

Hello computer sports fans! This is the first of many (many!) articles covering the world-wide phenomenon of Student Cluster Competitions. Finally, the Student Read more…

By Dan Olds

Intel Delivers 17-Qubit Quantum Chip to European Research Partner

October 10, 2017

On Tuesday, Intel delivered a 17-qubit superconducting test chip to research partner QuTech, the quantum research institute of Delft University of Technology (TU Delft) in the Netherlands. The announcement marks a major milestone in the 10-year, $50-million collaborative relationship with TU Delft and TNO, the Dutch Organization for Applied Research, to accelerate advancements in quantum computing. Read more…

By Tiffany Trader

Fujitsu Tapped to Build 37-Petaflops ABCI System for AIST

October 10, 2017

Fujitsu announced today it will build the long-planned AI Bridging Cloud Infrastructure (ABCI) which is set to become the fastest supercomputer system in Japan Read more…

By John Russell

HPC Chips – A Veritable Smorgasbord?

October 10, 2017

For the first time since AMD's ill-fated launch of Bulldozer the answer to the question, 'Which CPU will be in my next HPC system?' doesn't have to be 'Whichever variety of Intel Xeon E5 they are selling when we procure'. Read more…

By Dairsie Latimer

Delays, Smoke, Records & Markets – A Candid Conversation with Cray CEO Peter Ungaro

October 5, 2017

Earlier this month, Tom Tabor, publisher of HPCwire and I had a very personal conversation with Cray CEO Peter Ungaro. Cray has been on something of a Cinderell Read more…

By Tiffany Trader & Tom Tabor

Intel Debuts Programmable Acceleration Card

October 5, 2017

With a view toward supporting complex, data-intensive applications, such as AI inference, video streaming analytics, database acceleration and genomics, Intel i Read more…

By Doug Black

Reinders: “AVX-512 May Be a Hidden Gem” in Intel Xeon Scalable Processors

June 29, 2017

Imagine if we could use vector processing on something other than just floating point problems.  Today, GPUs and CPUs work tirelessly to accelerate algorithms Read more…

By James Reinders

NERSC Scales Scientific Deep Learning to 15 Petaflops

August 28, 2017

A collaborative effort between Intel, NERSC and Stanford has delivered the first 15-petaflops deep learning software running on HPC platforms and is, according Read more…

By Rob Farber

Oracle Layoffs Reportedly Hit SPARC and Solaris Hard

September 7, 2017

Oracle’s latest layoffs have many wondering if this is the end of the line for the SPARC processor and Solaris OS development. As reported by multiple sources Read more…

By John Russell

US Coalesces Plans for First Exascale Supercomputer: Aurora in 2021

September 27, 2017

At the Advanced Scientific Computing Advisory Committee (ASCAC) meeting, in Arlington, Va., yesterday (Sept. 26), it was revealed that the "Aurora" supercompute Read more…

By Tiffany Trader

How ‘Knights Mill’ Gets Its Deep Learning Flops

June 22, 2017

Intel, the subject of much speculation regarding the delayed, rewritten or potentially canceled “Aurora” contract (the Argonne Lab part of the CORAL “ Read more…

By Tiffany Trader

Google Releases Deeplearn.js to Further Democratize Machine Learning

August 17, 2017

Spreading the use of machine learning tools is one of the goals of Google’s PAIR (People + AI Research) initiative, which was introduced in early July. Last w Read more…

By John Russell

Nvidia Responds to Google TPU Benchmarking

April 10, 2017

Nvidia highlights strengths of its newest GPU silicon in response to Google's report on the performance and energy advantages of its custom tensor processor. Read more…

By Tiffany Trader

GlobalFoundries Puts Wind in AMD’s Sails with 12nm FinFET

September 24, 2017

From its annual tech conference last week (Sept. 20), where GlobalFoundries welcomed more than 600 semiconductor professionals (reaching the Santa Clara venue Read more…

By Tiffany Trader

Leading Solution Providers

Graphcore Readies Launch of 16nm Colossus-IPU Chip

July 20, 2017

A second $30 million funding round for U.K. AI chip developer Graphcore sets up the company to go to market with its “intelligent processing unit” (IPU) in Read more…

By Tiffany Trader

Amazon Debuts New AMD-based GPU Instances for Graphics Acceleration

September 12, 2017

Last week Amazon Web Services (AWS) streaming service, AppStream 2.0, introduced a new GPU instance called Graphics Design intended to accelerate graphics. The Read more…

By John Russell

EU Funds 20 Million Euro ARM+FPGA Exascale Project

September 7, 2017

At the Barcelona Supercomputer Centre on Wednesday (Sept. 6), 16 partners gathered to launch the EuroEXA project, which invests €20 million over three-and-a-half years into exascale-focused research and development. Led by the Horizon 2020 program, EuroEXA picks up the banner of a triad of partner projects — ExaNeSt, EcoScale and ExaNoDe — building on their work... Read more…

By Tiffany Trader

Delays, Smoke, Records & Markets – A Candid Conversation with Cray CEO Peter Ungaro

October 5, 2017

Earlier this month, Tom Tabor, publisher of HPCwire and I had a very personal conversation with Cray CEO Peter Ungaro. Cray has been on something of a Cinderell Read more…

By Tiffany Trader & Tom Tabor

Cray Moves to Acquire the Seagate ClusterStor Line

July 28, 2017

This week Cray announced that it is picking up Seagate's ClusterStor HPC storage array business for an undisclosed sum. "In short we're effectively transitioning the bulk of the ClusterStor product line to Cray," said CEO Peter Ungaro. Read more…

By Tiffany Trader

Intel Launches Software Tools to Ease FPGA Programming

September 5, 2017

Field Programmable Gate Arrays (FPGAs) have a reputation for being difficult to program, requiring expertise in specialty languages, like Verilog or VHDL. Easin Read more…

By Tiffany Trader

IBM Advances Web-based Quantum Programming

September 5, 2017

IBM Research is pairing its Jupyter-based Data Science Experience notebook environment with its cloud-based quantum computer, IBM Q, in hopes of encouraging a new class of entrepreneurial user to solve intractable problems that even exceed the capabilities of the best AI systems. Read more…

By Alex Woodie

HPC Chips – A Veritable Smorgasbord?

October 10, 2017

For the first time since AMD's ill-fated launch of Bulldozer the answer to the question, 'Which CPU will be in my next HPC system?' doesn't have to be 'Whichever variety of Intel Xeon E5 they are selling when we procure'. Read more…

By Dairsie Latimer

  • arrow
  • Click Here for More Headlines
  • arrow
Share This