This event has ended. View the official site or create your own event → Check it out
This event has ended. Create your own
Please visit the C++Now website.
View analytic
Wednesday, May 11 • 11:00am - 12:30pm
array_ref: Multidimensional Array References for the C++ Standard Library

Log in to save this to your schedule and see who's attending!

Multidimensional arrays are a foundational data structure for science and engineering codes - a data structure which unfortunately lacks proper representation in the C++ standard library.

In this talk, we will introduce and discuss array_ref, a performance-oriented multidimensional array reference which has been proposed for inclusion in a future C++ standard or a in the C++ Library TS. An array_ref is a reference to a memory extent through a layout mapping from a multi-index space (domain) to that extent (range). array_ref is a powerful and generic abstraction which supports user-defined layouts and access semantics. This flexibility makes array_ref ideal for:

  1. interoperating with existing applications and other programming languages (such as Fortran and Matlab) and
  2. addressing "special" memory regions (e.g. GPU memory and high-throughput scratchpad memory such as HBM and HMC).
array_ref has a powerful subarray interface designed to facilitate performant iteration of multi-dimensional arrays - an area where previous C++ array libraries have struggled.

This presentation will present the proposed array_ref library that is being advanced through the C++ standards committee, and discuss the challenges we've faced in our quest for an elegant and expressive interface that does not sacrifice performance or break the zero-overhead principle. We'll demonstrate how array_ref can be used to work with multi-dimensional data structures and to manage "special" memory exposed by new architectures.

Those interested in using array_ref can get started today with a stand-alone C++-14 implementation of array_ref developed by Bryce, which is available under the Boost Software License.

avatar for H. Carter Edwards

H. Carter Edwards

Sandia National Laboratories
H. Carter Edwards (SNL) is current the PI and architect for the Kokkos project (github.com/kokkos/kokkos). Carter has a BS and MS in Aerospace Engineering and PhD in Computational Mathematics. He has over three decades of experience in modeling & simulation software development and over two decades of experience in HPC, parallel processing, and C++ software development. His recent (6 year) HPC focus is on algorithms and programming models for... Read More →
avatar for Bryce Lelbach

Bryce Lelbach

Lawrence Berkeley National Laboratory
Bryce Adelstein Lelbach is a researcher at Lawrence Berkeley National Laboratory (LBNL), a US Department of Energy research facility. Working alongside a team of hardware engineers, mathematicians and physicists, he develops and analyzes new parallel programming models for exascale and post-Moore architectures. Bryce is one of the developers of the HPX C++ runtime system; he spent five years working on HPX while he was at Louisiana State... Read More →

Wednesday May 11, 2016 11:00am - 12:30pm
Flug Auditorium

Attendees (31)