acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Ridiculously fast base64 encoding and decoding
From Daniel Lemire's Blog

Ridiculously fast base64 encoding and decoding

Computers store data as streams of bits. Binary files like image, audio or video files are allowed to contain just about any sequence of bits. However, we alsoContinue...

Microbenchmarking calls for idealized conditions
From Daniel Lemire's Blog

Microbenchmarking calls for idealized conditions

Programmers use software benchmarking to measure the speed of software. We need to distinguish system benchmarking, where one seeks to measure the performance of...

Science and Technology links (January 12th, 2018)
From Daniel Lemire's Blog

Science and Technology links (January 12th, 2018)

A few years ago, researchers in Danemark expressed concerns regarding high concentrations of pesticides that are showing up in urine samples of Danish mothers and...

How fast can you bit-interleave 32-bit integers? (SIMD edition)
From Daniel Lemire's Blog

How fast can you bit-interleave 32-bit integers? (SIMD edition)

In a previous post, I asked how fast one could interleave the bits between two 32-bit integers. That is, given 0b1011 (11 in decimal) and 0b1100 (12 in decimal)...

How fast can you bit-interleave 32-bit integers?
From Daniel Lemire's Blog

How fast can you bit-interleave 32-bit integers?

A practical trick in software is to “bit-interleave” your data. Suppose that I have two 4-bit integers like 0b1011 (11 in decimal) and 0b1100 (12 in decimal). I...

Science and Technology links (January 5th, 2018)
From Daniel Lemire's Blog

Science and Technology links (January 5th, 2018)

You still have to burn more energy creating solar panels than solar panels can give back in a useful lifetime. Tyler Cowen writes: There is now a doctrine of what...

Can 32-byte alignment alleviate 4K aliasing?
From Daniel Lemire's Blog

Can 32-byte alignment alleviate 4K aliasing?

In my previous post, I considered some performance problems that can plague simple loops that read and write data… for (int i = 0; i < a.length; ++i) { a[i] +=Continue...

Don’t make it appear like you are reading your own recent writes
From Daniel Lemire's Blog

Don’t make it appear like you are reading your own recent writes

Richard Statin recently published a Java benchmark where the performance of a loop varies drastically depending on the size of the arrays involved. The loop isContinue...

Year 2017: technological highlights
From Daniel Lemire's Blog

Year 2017: technological highlights

DeepStack and Libratus become the first computer programs to beat professinal poker players. We are using synthetic cartilage to help people with arthritis. Stem...

Multicore versus SIMD instructions: the “fasta” case study
From Daniel Lemire's Blog

Multicore versus SIMD instructions: the “fasta” case study

Setting aside graphics processors, most commodity processors support at least two distinct parallel execution models. Most programmers are familiar with the multicore...

Science and Technology links (December 29th, 2017)
From Daniel Lemire's Blog

Science and Technology links (December 29th, 2017)

It is often believed that, in the developed world, more land is used for human beings (cities, agriculture) as time goes by. That is not true: Forests are spreading...

Personal reflections on 2017
From Daniel Lemire's Blog

Personal reflections on 2017

Year 2017 is coming to an end. As a kid, I would have surely imagined that by 2017, I would be living in space. But then I can chat with Amazon’s servers through...

Science and Technology links (December 22nd, 2017)
From Daniel Lemire's Blog

Science and Technology links (December 22nd, 2017)

Bitcoins are electronic records that are meant to be used as currency. They have become increasingly popular and expensive. Reportedly, the famous investment bank...

Science and Technology links (December 15th, 2017)
From Daniel Lemire's Blog

Science and Technology links (December 15th, 2017)

Scientists found a human gene which, when inserted into mice, makes their brain grow larger. David Brin has a series of classical sci-fi books where we “uplift”...

If all your attributes are independent two-by-two… are all your attributes independent?
From Daniel Lemire's Blog

If all your attributes are independent two-by-two… are all your attributes independent?

Suppose that you are working on a business problem where you have multiple attributes… maybe you have a table with multiple columns such as “age, gender, income...

No, a supercomputer won’t make your code run faster
From Daniel Lemire's Blog

No, a supercomputer won’t make your code run faster

I sometimes consult with bright colleagues from other departments who do advanced statistical models or simulations. They are from economics, psychology, and so...

Science and Technology links (December 8th, 2017)
From Daniel Lemire's Blog

Science and Technology links (December 8th, 2017)

Facebook’s leading artificial-intelligence researcher Yan Lecun wrote: In the history of science and technology, the engineering artifacts have almost always preceded...

Simplistic programming is underrated
From Daniel Lemire's Blog

Simplistic programming is underrated

I was a nerdy kid who liked to spend a lot of time reading. Back then, we did not have the Internet, we could not even imagine it… so I ended up reading the dictionary...

Science and Technology links (December 1st, 2017)
From Daniel Lemire's Blog

Science and Technology links (December 1st, 2017)

Chollet has a piece on the impossibility of intelligence explosion. He is responding to the theory that smart machines will build even smarter machines, and that...

Bit hacking versus memoization: a Stream VByte  example
From Daniel Lemire's Blog

Bit hacking versus memoization: a Stream VByte example

In compression techniques like Stream VByte or Google’s varint-GB, we use control bytes to indicate how blocks of data are compressed. Without getting into theContinue...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account