CERN Accelerating science

Talk
Title Concurrency at work with Go
Video
If you experience any problem watching the video, click the download button below
Download Embed
Mp4:Medium
(1000 kbps)
High
(4000 kbps)
More..
Copy-paste this code into your page:
Copy-paste this code into your page to include both slides and lecture:
Author(s) Campoy, Francesc (speaker) (source{d})
Corporate author(s) CERN. Geneva
Imprint 2017-11-09. - Streaming video.
Series (CERN Computing Seminar)
Lecture note on 2017-11-09T10:00:00
Subject category CERN Computing Seminar
Abstract

High Energy and Nuclear Physics (HENP) libraries are now required to be increasingly multi-thread-safe, if not multi-thread-friendly and multi-threaded. This is usually done using the new constructs and library components offered by the C++11 and C++14 standards. These components are however quite low-level (threads, mutexes, locks, ...) and hard to use and compose, or easy to misuse.

However, Go -- a somewhat new language -- provides a set of better building blocks for tackling concurrency: goroutines and channels. This language is now used by the cloud industry at large; docker/moby, rkt, Kubernetes, OpenShift, etc... are obvious flagships for Go. It is also used in other interesting places like SpaceX's telemetry monitoring system and in the New York Times', YouTube's or Disney's content delivery infrastructures.

In this talk, we will describe the building blocks of Go and see how they are combined to easily create concurrent programs that grow with grace, are fast to compile and deploy, but also easy to reason about (and debug).

We will conclude by demonstrating Go's concurrency principles by using Mandelbrot sets as an example of CPU-heavy task, showing how the language can help make our programs faster.

About the speaker

Francesc Campoy is currently VP of Developer Relations at source{d}, and worked previously as Senior Developer Advocate at Google. He is a software engineer with extensive experience on C++ developing, and specially interested on software architecture and design.

Specialties: Design patterns, software design (UML, RUP) and architecture, advanced C++ (stl, templates, debugging, profiling). Heterogeneous education background (AI, computer graphics, algebra and mathematics).

Copyright/License © 2017-2024 CERN
Submitted by miguel.marquina@cern.ch

 


 Record created 2017-11-10, last modified 2022-11-02


External link:
Download fulltext
Event details