CppCon 2016: Bringing Clang and C++ to GPUs: An Open-Source, CUDA-Compatible GPU C++ Compiler--Lebar

Have you registered for CppCon 2017 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2016 for you to enjoy. Here is today’s feature:

Bringing Clang and C++ to GPUs: An Open-Source, CUDA-Compatible GPU C++ Compiler

by Justin Lebar

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

GPU computing has gone mainstream. It is a dominant part of the performance landscape, providing the initial 10x performance lift to a wide variety of applications. However, programing for GPUs can be extremely challenging. C++ is rarely available in an unmodified form, and there are few portable and open source approaches available. One of the most popular platforms, CUDA, has no production quality open source implementation. As a consequence, its C++ support has lagged behind and it has been a less appealing area for researchers and others that weren’t comfortable relying on NVIDIA’s tooling.

However, today things are different. Clang is now a fully functional open-source GPU compiler. It provides a CUDA-compatible programming model and can compile most of the awesome CUDA libraries out there ranging from Thrust (the CUDA-enabled parallel algorithms library that gave rise to the new parallelism technical specification) to Eigen and TensorFlow.

In this talk we will give an overview of how LLVM and Clang support targeting C++ to GPUs, how they work to be compatible with existing CUDA code, and how you can build your code today to run on GPUs with this open source compiler.

CppCast Episode 105: stlab Concurrency with Felix Petriconi

Episode 105 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Felix Petriconi to talk about his contributions to the stlab Concurrency library and the future of C++ futures.

CppCast Episode 105: stlab Concurrency with Felix Petriconi

by Rob Irving and Jason Turner

About the interviewee:

Felix Petriconi is working as professional programmer since 1993 after he had finished his study of electrical engineering. He started his career as teacher for intellectually gifted children, freelance programmer among others in telecommunication and automotive projects. Since 2003 he is employed as programmer and development manager at the MeVis Medical Solutions AG in Bremen, Germany. He is part of a team that develops and maintains radiological medical devices. His focus is on C++ development, training of modern C++, and application performance tuning. He is a regular speaker at the C++ user group in Bremen and a member of the ACCU’s conference committee.

CppCon 2016: extern c: Talking to C Programmers about C++--Dan Saks

Have you registered for CppCon 2017 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2016 for you to enjoy. Here is today’s feature:

extern c: Talking to C Programmers about C++

by Dan Saks

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Most of us have heard this story. We’ve even told it ourselves…

C++ is nearly all of C, plus a whole lot more. Migrating code from C to C++ is pretty easy. Moreover, the migration itself can yield immediate benefits by exposing questionable type conversions that can be sources of latent bugs. After migration, the code performs as well in C++ as in the original C. And now that it’s C++, you have ready access to a wealth of advanced features you can (but don’t have to) use to implement enhancements.

Who wouldn’t want that? Legions of C programmers, apparently.

Despite the success of C++ in numerous application domains, C remains considerably more popular, especially in embedded, automotive, and aerospace applications. In many cases, projects resist C++ because their managers think the risks outweigh the benefits. In other cases, the resistance comes from programmers who persist in believing bad things about C++, even when those things aren’t true.

What can the C++ community do to overcome this resistance? Drawing on lessons from cognitive science, linguistics and psychology, and (of course) computer science, this talk offers suggestions about how to make the case for C++ more persuasive to C programmers.

High-Performance and Low-Latency C++ with Herb Sutter

Join us for a 3-day training event with Herb Sutter in London, October 9-11, 2017

High-Performance and Low-Latency C++

About the training:

Welcome to a unique training with Mr Herb Sutter focusing on Efficiency, Concurrency, Parallelism, Modern Hardware, and Modern C++11/14/17. Participants of this intensive 3-day training will be given the knowledge and skills required to write high-performance and low-latency code using modern C++ on today´s systems.

Mr Sutter is the chair of the ISO C++ committee and best-selling author of four books and hundreds of technical papers and articles, including the essay “The Free Lunch Is Over”.

Intermediate to advanced C++ programming experience is required. Some experience with concurrency, parallelism, and/or multiprocessing in e.g. Java, C, C++ or similar language is recommended, but not required.

Don’t miss out on the opportunity to attend this three day course, to be held in London on the 9th – 11th October, 2017. Please notice there are a limited number of seats.

Overload 139 is now available

ACCU’s Overload journal of June 2017 is out. It contains the following C++ related articles.

Overload 139 is now available

From the journal:

I am not a number
Description : When is a number not a number? Frances Buontempo counts the ways this happens. by Frances Buontempo

Allocator for (Re)Actors with Optional Kinda-Safety and Relocation
How do you deal with memory for (Re)Actors? Sergey Ignatchenko proposes an allocation scheme. by Sergey Ignatchenko

Initialization in C++ is Bonkers
Uninitialised variables can cause problems. Simon Brand reminds us how complicated it can get. by Simon Brand

Vulkan and you – Khronos’ successor to OpenGL
Various graphics APIs exist. Andy Thomason unravels the mysteries of Vulkan, the latest 3D Graphics API from Khronos, the custodians of OpenGL. by Andy Thomason

Kotlin for C++ Developers
What could a language the originated on the JVM possibly offer C or C++ devs? Hadi Hariri tells us. by Hadi Hariri

Getting Tuple Elements with a Runtime Index
Accessing a tuple with a runtime index is a challenge. Anthony Williams shows us his approach. by Anthony Williams

Afterwood
What makes programming fun? Chris Oldwood ponders what floats his boat. by Chris Oldwood

CppCon 2017 Keynote Speakers by Jon Kalb

cppcon-102b.PNGCppCon 2017 just announced its keynote and plenary speakers:

2017 Keynote Speakers

by Jon Kalb

Early bird registration ends on July 7... register today!

From the announcement:

Bjarne Stroustrup

Bjarne Stroustrup

Bjarne is the designer and original implementor of C++. He is a founding member of the ISO C++ standards committee for C++ and a major contributor to modern C++.

He is the author of The C++ Programming Language and Programming: Principles and Practice Using C++.

Bjarne is currently a Managing Director in the technology division of Morgan Stanley in New York City and a Visiting Professor in Computer Science at Columbia University.

Herb Sutter

Herb SutterHerb is the convener (chair) of the ISO C++ standards committee.

He is the best-selling author of hundreds of articles and several books including  Exceptional C++  and C++ Coding Standards.

Herb is currently focused on evolving C++ to make it both more powerful and simpler — able to express more in efficient, portable code without relying on proprietary extensions, while also removing needless ceremony and ‘dark corners.’

Lars Knoll

Lars Knoll

Lars is The Qt Company CTO and Qt Project Chief Maintainer.

He has been working on Qt for more than 17 years starting as a software engineer to later leading the global Qt engineering team in Nokia before the Digia acquisition in October 2012. Lars has been an active member of the KDE community and the architect behind KDE’s HTML rendering library that formed the basis for the WebKit open source project.

Lars holds a PhD in physics from the University of Heidelberg. He is a German national and lives with his family in Oslo.

Matt Godbolt

Matt GodboltMatt’s Compiler Explorer project has made his last name both a noun and a verb.

He has been programming for nearly two decades on games, system design, and real-time embedded systems from 8-bit computers up to cutting edge technology on next-generation games consoles.

Matt is currently at DRW in Chicago where he works on cool and exciting secret things.

And 100 more…

These four, and a hundred other C++ experts will be presenting the latest thinking and best practices this September at CppCon. Don’t miss it..

CppCon 2016: Practical Performance Practices--Jason Turner

Have you registered for CppCon 2017 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2016 for you to enjoy. Here is today’s feature:

Practical Performance Practices

by Jason Turner

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

In the past 6 years ChaiScript's performance has been improved by nearly 100x. This was not accomplished by adding a virtual machine or performing dynamic recompilation. Instead, these increases have been accomplished by moving to more simple, cleaner, idiomatic C++ and by following some simple rules. We will outline these concepts with examples for how they both simplified code while improving performance.

There Is A New Future -- Felix Petriconi

Version 1.0 of a new C++ future and channel library has been released.

There Is A New Future

by Sean Parent, Foster Brereton and Felix Petriconi

About the library:

This library provides high level abstractions for implementing algorithms that eases the use of multiple CPU cores while minimizing the contention.

The future implementaton differs in several aspects compared to the C++11/14/17 standard futures: It provides continuations and joins, which were just added in a C++17 TS. But more important this futures propagate values through the graph and not futures. This allows an easy way of creating splits. That means a single future can have multiple continuations into different directions. An other important difference is that the futures support cancellation. So if one is not anymore interested in the result of a future, then one can destroy the future without the need to wait until the future is fullfilled, as it is the case with std::future (and boost::future). An already started future will run until its end, but will not trigger any continuation. So in all these cases, all chained continuations will never be triggered. Additionally the future interface is designed in a way, that one can use build in or custom build executors.

Since one can create with futures only graphs for single use, this library provides as well channels. With these channels one can build graphs, that can be used for multiple invocations.

CppCast Episode 104: Postmodern C++ with Tony Van Eerd

Episode 104 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Tony Van Eerd to talk about his recent award winning C++Now talk on Postmodern C++ and his views on lock-free programming.

CppCast Episode 104: Postmodern C++ with Tony Van Eerd

by Rob Irving and Jason Turner

About the interviewee:

Tony Van Eerd has been coding for well over 25 years, and hopefully coding well for some of that. Mostly in graphics/video/film/broadcast (at Inscriber & Adobe), writing low level pixel++, high level UI, threading, and everything else. He now enables painting with light at Christie Digital. He is on the C++ Committee. He is a Ninja and a Jedi.