HDF5: Self-describing data in modern storage architectures

In today’s post, we will discuss the advantages of self-describing data formats. As a case study, we will examine the popular self-describing data format HDF5. After a description of HDF5’s basic features and its data model, we will follow the development of support for modern storage architectures through history.

Read full post gblog_arrow_right

Clang/LLVM overview

Compilers are complex programs with complex requirements. The two most widespread C compilers, GCC and Clang/LLVM, are 10–15 million lines of code behemoths, designed to produce optimal machine code for whatever arbitrary target the user desires. In this blog post I’m going to give an overview of how the Clang/LLVM C compiler works; from processing the source code to writing native binaries.

Read full post gblog_arrow_right

An introduction to performance analysis and understanding profilers

Where performance matters, we want to make sure we know what to look for and what to optimize. For that we need to measure our code by analyzing its performance with tools either provided by the language or external ones called “profilers”. This post intends to give an overview on both of these methods while introducing some tools – like Google Benchmark and perf – and explaining their functionality.

Read full post gblog_arrow_right