Flexibility is very important in the development of software. A great deal of research and education is invested into creating flexible software. However, flexibility and performance don’t often come hand in hand, as most developers have already witnessed sometime in their careers. One of the ways to achieve flexibility is to parametrize the behavior of […]
News
Many ways to speed up your program
There are many approaches to make your program run faster. Some approaches are based on using more efficient libraries, others rely on using the standard library and the language in an efficient manner. Other approaches include using more efficient algorithms. But sometimes, even after we’ve applied all the possible optimizations, the code performance is not […]
Speed up non-vectorizable loops with loop fission
Vectorization is a powerful technique for achieving peak computational performance. However, not all code is easily vectorizable by all compilers. In this post we are going to talk about vectorization of complex non-vectorizable loops. The idea is to split the loop into two loops, one for the vectorizable part and the other for the non-vectorizable […]
Trade a bit of precision for performance on hotspots with compiler vectorization directives
Most of the applications are fine when compiled with the -ffast-math compiler flag, which makes floating-point computations faster at the expense of some precision loss. However, in the scientific domain, floating-point precision is important so most of the time those codebases are compiled without this option. Still, the question of performance of such code remains […]
Run your floating-point calculations with both precision and speed
One of our customers has a mathematical simulation program where precision matters. We were given the code for evaluation and asked to make it run faster. They have a strict requirement that the source code is compiled without any optimization flags that can influence precision. Most compilers offer a fast-math compiler flag that significantly improves […]
Is your algorithm running at peak performance? The roofline model
There are worlds where performance matters. For example HPC world: faster software means less wait time for the scientists. Embedded world: faster software means we can use cheaper silicon to build our product. Game world: faster software means that our game will run on slower CPUs, thus making our game more interesting to people with […]
Case Study: How we made the Canny edge detector run faster? (part 2)
In the previous post we talked about the performance improvement we obtained for the Canny edge detection algorithm. Most of the changes we did there were focused on hot loops: making memory accesses sequential and making the loops longer, which in turn allowed the compiler to autovectorize them. This made our program run significantly faster […]
A touch of parallelism: example of NPB CG Benchmark
The ultimate goal of the Codee software suite is to help users achieve the peak performance of their software. One of the ways to do it is with a touch of parallelism. This post will talk about the NPB CG benchmark, a popular benchmark for comparing supercomputers, developed by NASA. We will talk about how […]
Case Study: How we made Canny edge detector algorithm run faster? (part 1)
Canny edge detector algorithm is a famous algorithm in image processing. One of our customers was inquiring about the performance of that algorithm, so our performance engineers took a look. As always when dealing with unfamiliar codebases, we didn’t know what to expect. Some algorithms have a lot of room for performance improvements, others don’t. […]
CESGAHACK5 returns to accelerate the execution time of applications of scientists and developers
The Galicia Supercomputing Center (CESGA) and Codee (formerly Appentra Solutions) will host the 5th CESGAHACK virtually, from 14th to 18th December 2020. The five-day virtual hackathon aims to help scientists and application developers to answer questions by speeding up their application runtime, and reducing how long they spend coding the improved runtime. This year the […]










This company is capitalized by INNVIERTE, AN INVESTMENT PROGRAM OF CDTI, E.P.E