acm-header
Sign In

Communications of the ACM

Blogroll


bg-corner

Intel will add deep-learning instructions to its processors
From Daniel Lemire's Blog

Intel will add deep-learning instructions to its processors

Some of the latest Intel processors support the AVX-512 family of vector instructions. These instructions operate on blocks of 512 bits (or 64 bytes). The benefit...

A case study in the performance cost of abstraction (C++’s std::shuffle)
From Daniel Lemire's Blog

A case study in the performance cost of abstraction (C++’s std::shuffle)

Statisticians and machine-learning experts sometimes need to shuffle data quickly. There is one standard and simple algorithm to shuffle an array, the so-called...

Variable-length strings can be expensive
From Daniel Lemire's Blog

Variable-length strings can be expensive

Much of our software deals with variable-length strings. For example, my name “Daniel” uses six characters whereas my neighbor’s name (“Philippe”) uses 8 characters...

Can Swift code call C code without overhead?
From Daniel Lemire's Blog

Can Swift code call C code without overhead?

Swift is the latest hot new language from Apple. It is becoming the standard programming language on Apple systems. I complained in a previous post that Swift 3...

Sorting already sorted arrays is much faster?
From Daniel Lemire's Blog

Sorting already sorted arrays is much faster?

If you are reading a random textbook on computer science, it is probably going to tell you all about how good sorting algorithms take linearithmic time. To arrive...

Swift versus Java : the bitset performance test
From Daniel Lemire's Blog

Swift versus Java : the bitset performance test

I claimed online that the performance of Apple’s Swift was not yet on par with Java. People asked me to back my claim with numbers. I decided to construct one test...

My thoughts on Swift
From Daniel Lemire's Blog

My thoughts on Swift

Swift is a new programming language produced by Apple for its iOS devices (primarily the iPhone). It first appeared two years ago and it has been gaining popularity...

The rise of dark circuits
From Daniel Lemire's Blog

The rise of dark circuits

The latest iPhone 7 from Apple has more computing peak power than most laptops. Apple pulled this off using a technology called ARM big.LITTLE where half of the...

The memory usage of STL containers can be surprising
From Daniel Lemire's Blog

The memory usage of STL containers can be surprising

C++ remains one of the most popular languages today. One of the benefits of C++ is the built-in STL containers offering the standard data structures like vector...

The new C standards are worth it
From Daniel Lemire's Blog

The new C standards are worth it

The C language is one of the oldest among the popular languages in use today. C is a conservative language. The good news is that the language is aging well and...

Starting high school in 2016
From Daniel Lemire's Blog

Starting high school in 2016

My oldest boy started high school this year. He goes to an accessible private school nearby. We went to a parent’s meeting last night. Personal electronics is banned...

Function signature: how do you order parameters?
From Daniel Lemire's Blog

Function signature: how do you order parameters?

Most programming languages force you to order your function parameters. Getting them wrong might break your code. What is the most natural way to order the parameters...

Are there too many people?
From Daniel Lemire's Blog

Are there too many people?

Without immigration, most developed countries would face massive depopulation. In fact, half the population of the Earth lives in countries with sub-replacement...

The rate-of-living theory is wrong
From Daniel Lemire's Blog

The rate-of-living theory is wrong

The rate-of-living theory is popular on the Internet. The intuition is that all animals are born with some “budget” that they burn out over time according to their...

Innovation as a Fringe Activity
From Daniel Lemire's Blog

Innovation as a Fringe Activity

What do these people have in common: Marconi, Alexander Graham Bell, and the Steves Wozniak and Jobs? At least one commonality is that approximately nobody listened...

Faster dictionary decoding with SIMD instructions
From Daniel Lemire's Blog

Faster dictionary decoding with SIMD instructions

A particularly fast and effective compression technique is dictionary coding. Intuitively, it works as follow. Suppose you are given a long document made of millions...

How many reversible integer operations do you know?
From Daniel Lemire's Blog

How many reversible integer operations do you know?

Most operations on a computer are not reversible… meaning that once done, you can never go back. For example, if you divide integers by 2 to get a new integer,Continue...

Let us talk about the Luddite problem…
From Daniel Lemire's Blog

Let us talk about the Luddite problem…

This morning I woke up to an interview on the radio (yes, I still have a radio somehow) with pharmacists who decided (gulp!) to try to fulfill prescriptions byContinue...

Combine smart people with crazily hard projects
From Daniel Lemire's Blog

Combine smart people with crazily hard projects

Back in college, professors assigned crazily hard problems… and I was forced to talk with my peers to figure out how they fared… and eventually teaming up withContinue...

Common sense in  artificial intelligence… by 2026?
From Daniel Lemire's Blog

Common sense in artificial intelligence… by 2026?

Lots of people want to judge machine intelligence based on human intelligence. It dates back to Turing who proposed his eponymous Turing test: can machines “pass”...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account