Honestly, I would expect the main reason my wc is faster is that mmap()ing the file and then reading it in a huge chunk is about as fast as the kernel's IO can go. GNU wc cannot do this in general because it's supposed to work on pipes as well, and I doubt anyone cared enough about the tiny performance difference to exploit the case where the input file is mmap()able.
(I had actually hoped Futhark would be slower sequentially, just so this wouldn't be the focus of the discussion!)
(I had actually hoped Futhark would be slower sequentially, just so this wouldn't be the focus of the discussion!)