Brought to you by NumFOCUS Foundation and O’Reilly Media
The official Jupyter Conference
Aug 21-22, 2018: Training
Aug 22-24, 2018: Tutorials & Conference
New York, NY

Going native: C++ as a first-class citizen of the Jupyter ecosystem

Sylvain Corlay (QuantStack), Johan Mabille (QuantStack), Wolf Vollprecht (QuantStack), Martin Renou
11:05am–11:45am Thursday, August 23, 2018
Data visualization, Integrations with other Software, Kernels
Location: Sutton Center/Sutton South Level: Intermediate
Average rating: ****.
(4.67, 3 ratings)

Who is this presentation for?

  • Data scientists, engineers, educators, and students

Prerequisite knowledge

  • Familiarity with C++ (useful but not required)

What you'll learn

  • Explore the latest features of the C++ Jupyter kernel
  • Understand the role Project Jupyter plays within the C++ scientific computing community, particularly for lowering the cost of data science

Description

The language-agnostic nature of Project Jupyter enables leveraging the components of the ecosystem for a large number of programming languages beyond Python, including Julia and R. However, despite the size and importance of the C++ scientific computing ecosystem, especially in the world of high-performance computing, adoption of Project Jupyter in this community has remained limited because of the compiled nature of the programming language.

Sylvain Corlay, Johan Mabille, Wolf Vollprecht, and Martin Renou share the latest features of the C++ Jupyter kernel, which uses the Cling C++ interpreter from CERN and the Xeus C++ implementation of the Jupyter protocol to offer features only supported by the reference Python kernel so far, including:

  • Live help on any type or variable
  • Rich MIME type rendering for images, videos, or any MIME type for which a renderer is available in JupyterLab or the classic Notebook
  • xwidgets—a native backend to Jupyter interactive widgets, including all the widgets from the core jupyter-widgets library but also backends for bqplot (xplot), ipyleaflet (xleaflet), pythreejs (xthreejs), and ipyvolume (xvolume)

They then dive into the ecosystem of available libraries for interactive scientific computing in C++, such as xtensor for lazy array-based computing and xframe for labeled arrays and datasets. They conclude by demonstrating how the C++ backends for widget libraries like xplot, xleaflet, xthreejs, and xvolume can serve as a foundation for Jupyter interactive widget libraries in other Xeus-based Jupyter kernels, such as the JuniperKernel R kernel.

Photo of Sylvain Corlay

Sylvain Corlay

QuantStack

Sylvain Corlay is the founder of QuantStack and a quant researcher specializing in stochastic analysis and optimal control. Previously, Sylvain was a quant researcher at Bloomberg LP and an adjunct faculty member at Columbia University and NYU. As an open source developer, Sylvain mostly contributes to Project Jupyter in the area of interactive widgets and lower-level components such as traitlets. He is also a member of the steering committee of the project. Sylvain is also a contributor to a number of other open source projects for scientific computing and data visualization, such as bqplot, pythreejs, and ipyleaflet, and coauthored the xtensor C++ tensor algebra library. He holds a PhD in applied mathematics from University Paris VI.

Photo of Johan Mabille

Johan Mabille

QuantStack

Johan Mabille is a scientific software developer at QuantStack, where he specializes in high-performance computing in C++. Previously, Johan was a quant developer at HSBC. An open source developer, Johan is the coauthor of xtensor and xeus and the main author of xsimd. He holds a master’s degree in computer science from Centrale-Supelec.

Photo of Wolf Vollprecht

Wolf Vollprecht

QuantStack

Wolf Vollprecht is a scientific software developer at QuantStack. Previously, Wolf was a freelance web designer and developer, building software for the BeachBot with Disney Research and making drones find their way at Rapyuta Robotics. He holds a master’s degree in robotics from ETH Zurich and Stanford, focusing on artificial intelligence. In his free time, he’s a passionate cyclist who enjoys spending time outside the city.

Martin Renou