Benchmarking C++, From video games to algorithmic trading - Alexander Radchenko - Meeting C++ 2018
A great talk on Benchmarking C++ in different domains
Benchmarking C++, From video games to algorithmic trading
by Alexander Radchenko
February 10-15, Hagenberg, Austria
March 19-21, Madrid, Spain
April 1-4, Bristol, UK
June 16-21, Sofia, Bulgaria
By Meeting C++ | Jan 27, 2019 09:53 AM | Tags: performance meetingcpp intermediate gamedev community benchmarking benchmark advanced
A great talk on Benchmarking C++ in different domains
Benchmarking C++, From video games to algorithmic trading
by Alexander Radchenko
By Adrien Hamelin | Jan 25, 2019 12:42 PM | Tags: performance advanced
Optimising accesses.
Variant Visitation V2
by Michael Park
From the article:
In 2015, I wrote an article titled Variant Visitation which described an implementation strategy for std::visit. The approach involved a matrix of function pointers, and many have raised concerns regarding poor code-gen caused by optimization limitations of function pointers on some compilers.
This post describes the switch-based approach implemented in mpark/variant, and its benchmark results...
By Meeting C++ | Jan 14, 2019 08:41 AM | Tags: performance meetingcpp experimental efficiency community c++17 c++14 c++11 advanced
Nicolai Josuttis gave a fantastic closing keynote at Meeting C++ 2018
50 shades of C++
by Nicolai Josuttis
By Adrien Hamelin | Jan 3, 2019 01:10 PM | Tags: performance
The series continues and end.
The SoA Vector – Part 2: Implementation in C++
by Sidney Congard
From the article:
Like we saw in the first part of this series on SoA, the SoA is a way to organise the data of a collection of objects to optimise the performance of certain use cases: traversing the collection by accessing the same data member of all the objects:
struct person { std::string name; int age; }; std::vector<person> persons = ... for (auto& person : persons) { ++person.age; } struct person { std::string name; int age; }; std::vector<person> persons = ... for (auto& person : persons) { ++person.age; }The SoA in its barest expression is this:
struct persons { std::vector<std::string> names; std::vector<int> ages; }; struct persons { std::vector<std::string> names; std::vector<int> ages; };By putting all the ages next to each other in memory, we optimise the performance of the traversal. But such a structure is not a container in itself, and is in particular not compatible with the STL.
Let’s design an SoA collection with an interface as close as possible to std::vector<persons>, but with the SoA structure of components stored in separate arrays...
By Jordi Mon Companys | Dec 21, 2018 07:18 AM | Tags: performance efficiency c++17 c++14
Episode 180 of CppCast the first podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Pablo Santos from Códice Software the company that develops a merge tool that parses and merges even refactored C++ code:
CppCast Episode 180: Semantic Merge for C++ code, Plastic SCM and more on version control
About the interviewee:
Prior to entering start-up mode to launch Plastic SCM back in 2005, Pablo worked as R&D engineer in fleet control software development (GMV, Spain) and later digital television software stack (Sony, Belgium). Then he moved to a project management position (GCC, Spain) leading the evolution of an ERP software package for industrial companies. During these years he became an expert in version control and software configuration management working as a consultant and participating in several events as a speaker. Pablo founded Codice Software in 2005 and since then is focused on his role as chief engineer designing and developing Plastic SCM and SemanticMerge among other SCM products.
By Adrien Hamelin | Dec 20, 2018 02:08 PM | Tags: performance
It's all for speed.
The SoA Vector – Part 1: Optimizing the Traversal of a Collection
by Sidney Congard
From the article:
I like C++ because it offers a good compromise between writing expressive and fast code. But, I discovered a problem where I didn’t know any way to hide the implementation detail away from its use: The “Structure of Arrays” (SoA) versus the “Array of Structures” (AoS) problem.
This is the first part of a series of two articles:
- what ‘SoA’ is about and what benefits it brings (part 1)
- how to implement an SoA vector in C++ (part 2)
So let’s see what those SoA and AoS are all about...
By Adrien Hamelin | Dec 5, 2018 01:00 PM | Tags: performance advanced
Are you aware?
How to optimize C and C++ code in 2018
by Iurii Krasnoshchok
From the article:
We are still limited by our current hardware. There are numerous areas where it just not good enough: neural networks and virtual reality to name a few. There are plenty of devices where battery life is crucial, and we must count every single CPU tick. Even when we’re talking about clouds and microservices and lambdas, there are enormous data centers that consume vast amounts of electricity.
Even boring tests routine may quietly start to take 5 hours to run. And this is tricky. Program performance doesn‘t matter, only until it does.
A modern way to squeeze performance out of silicon is to make hardware more and more sophisticated...
By Jason Turner | Dec 3, 2018 10:57 AM | Tags: performance efficiency
Episode 144 of C++ Weekly.
Pure Functions in C++
by Jason Turner
About the show:
In this episode of C++ Weekly Jason takes a look at the gcc
[[gnu::pure]]
extension attribute. What are the implications of pure functions to the compiler and how can it take advantage of this extra information?
By Meeting C++ | Nov 30, 2018 04:15 AM | Tags: performance meetingcpp intermediate experimental efficiency community c++17 c++14 c++11 basics advanced
Pictures and more about Meeting C++ 2018!
Meeting C++ 2018 wrap up
by Jens Weller
From the article:
Two weeks ago, Meeting C++ 2018 started. The first attendees got their badges and it was again this time of year for my staff, the volunteers and myself: conference time...
By Adrien Hamelin | Nov 29, 2018 01:31 PM | Tags: performance c++17
Another one.
How to Boost Performance with Intel Parallel STL and C++17 Parallel Algorithms
by Bartlomiej Filipek
From the article:
C++17 brings us parallel algorithms. However, there are not many implementations where you can use the new features. The situation is getting better and better, as we have the MSVC implementation and now Intel’s version will soon be available as the base for libstdc++ for GCC.
Since the library is important, I’ve decided to see how to use it and what it offers...