By Topic

How templates enable high-performance scientific computing in C++

Sign In

Cookies must be enabled to login.After enabling cookies , please use refresh or reload or ctrl+f5 on the browser for the login options.

Formats Non-Member Member
$31 $13
Learn how you can qualify for the best price for this item!
Become an IEEE Member or Subscribe to
IEEE Xplore for exclusive pricing!
close button

puzzle piece

IEEE membership options for an individual and IEEE Xplore subscriptions for an organization offer the most affordable access to essential journal articles, conference papers, standards, eBooks, and eLearning courses.

Learn more about:

IEEE membership

IEEE Xplore subscriptions

2 Author(s)

The C++ programming language has a powerful template facility that enables the development of flexible software without incurring a large abstraction penalty. Templates let programmers tell the compiler how to create classes and functions parametrized in terms of other types and constants. Programmers often use templates to implement type-safe generic containers that hold elements of a particular type, or generic functions that can, for example, sort the elements in an arbitrary generic container. Templates are one of the most complex C++ language features. For this reason, they were deliberately left out of the Java programming language. Nevertheless, templates are the fundamental enabling technology that supports construction of maintainable, highly abstract, high performance scientific codes in C++. To support our thesis, we use examples from the Pooma framework. Pooma supports high performance scientific computing by providing high level math and physics abstractions such as multidimensional arrays, fields, particles, and transforms. It encapsulates the details associated with parallelism, enabling scientists to develop software on serial platforms and then transition quickly to parallel execution

Published in:

Computing in Science & Engineering  (Volume:1 ,  Issue: 4 )