acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Iterating in batches over data structures can be much faster…
From Daniel Lemire's Blog

Iterating in batches over data structures can be much faster…

We often need to iterate over the content of data structures. It is surprisingly often a performance bottleneck in big-data applications. Most iteration code works...

Introducing GapminderVR: Data Visualization in Virtual Reality
From Daniel Lemire's Blog

Introducing GapminderVR: Data Visualization in Virtual Reality

I am a big fan of sites such as Gapminder and Our World in Data. Such data visualization sites are like intellectual pornography. You want to know which countries...

Science and Technology links (April 13th, 2018)
From Daniel Lemire's Blog

Science and Technology links (April 13th, 2018)

Somewhat depressingly, there is very little evidence that you can improve people’s overall cognitive abilities: Although cognitive ability correlates with domain...

For greater speed, try batching your out-of-cache data accesses
From Daniel Lemire's Blog

For greater speed, try batching your out-of-cache data accesses

In software, we use hash tables to implement sets and maps. A hash table works by first mapping a key to a random-looking address in an array. In a recent series...

Science and Technology links (April 7th, 2018)
From Daniel Lemire's Blog

Science and Technology links (April 7th, 2018)

Mammals have a neocortex, some kind of upper layer on top of our ancestral brain. It is believed to be the key evolutionary trick that makes mammals smarts. Yet...

Caching hash values for speed (Swift-language edition)
From Daniel Lemire's Blog

Caching hash values for speed (Swift-language edition)

In my posts Should you cache hash values even for trivial classes? and When accessing hash tables, how much time is spent computing the hash functions?, I showed...

Science and Technology links (March 30th, 2018)
From Daniel Lemire's Blog

Science and Technology links (March 30th, 2018)

People who score higher on intelligence tests tend to have larger brains. Twin studies suggest the same genetic factors influence both brain size and intelligence...

Should you cache hash values even for trivial classes?
From Daniel Lemire's Blog

Should you cache hash values even for trivial classes?

Hash tables are a fundamental data structure in computing, used to implement maps and sets. In software, we use hash values to determine where objects are located...

When accessing hash tables, how much time is spent computing the hash functions?
From Daniel Lemire's Blog

When accessing hash tables, how much time is spent computing the hash functions?

Suppose that you create a large set of objects that you store in a hash table. Let us take 10 millions objects. It is large enough that it probably will not fit...

When shuffling large arrays, how much time can be attributed to random number generation?
From Daniel Lemire's Blog

When shuffling large arrays, how much time can be attributed to random number generation?

It is well known that contemporary computers don’t like to randomly access data in an unpredictible manner in memory. However, not all forms of random accessesContinue...

Science and Technology links (March 23rd, 2018)
From Daniel Lemire's Blog

Science and Technology links (March 23rd, 2018)

Sending your kids to highly selective schools is maybe less useful than you think: “However, once we controlled for factors involved in pupil selection, (…) the...

Science and Technology links (March 16th, 2018)
From Daniel Lemire's Blog

Science and Technology links (March 16th, 2018)

From the beginning of the 20th century to 2010, the life expectancy at birth for females in the United States increased by more than 32 years. The 3 major causes...

Iterating over hash sets quickly in Java
From Daniel Lemire's Blog

Iterating over hash sets quickly in Java

There are many ways in software to represent a set. The most common approach is to use a hash table. We define a “hash function” that takes as an input our elements...

Science and Technology links (March 9th, 2018)
From Daniel Lemire's Blog

Science and Technology links (March 9th, 2018)

The Audi A8, which goes on sale this year, will be the first car to offer Level 3 autonomy, which means that as a driver, you are expected to be able to relinquish...

Iterating over set bits quickly (SIMD edition)
From Daniel Lemire's Blog

Iterating over set bits quickly (SIMD edition)

Suppose that you have a long sequence of bits 10101011100000… you want to visit all the bits set to 1. That is, given 10101011100000, you would like to get theContinue...

Science and Technology links (March 2nd, 2018)
From Daniel Lemire's Blog

Science and Technology links (March 2nd, 2018)

Flashing lights might cure Alzheimer’s, according to Nature. There is no paradox: being obese is definitively bad for you. Class attendance predicts success inContinue...

Vectorized shifts: are immediates faster?
From Daniel Lemire's Blog

Vectorized shifts: are immediates faster?

Our processors are all equipped with vector instructions also called SIMD (single instruction multiple data). One common instruction is the “shift”. Roughly speaking...

Science and Technology links (February 24th, 2018)
From Daniel Lemire's Blog

Science and Technology links (February 24th, 2018)

Samsung is manufacturing and will sell 30TB hard drives. That’s huge. It is enough to record everything you see and hear for three years. Of the cases of early-onset...

Iterating over set bits quickly
From Daniel Lemire's Blog

Iterating over set bits quickly

A common problem in my line of work is to iterate over the set bits (bits having value 1) in a large array. My standard approach involves a “counting trailing zeroes...

Science and Technology links (February 16th, 2018)
From Daniel Lemire's Blog

Science and Technology links (February 16th, 2018)

In all countries, in all years–without exception–girls did better than boys in academic performance (PISA) tests. Vinod Khosla said: There are, perhaps, a few hundred...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account