use mmap to sort the individual runs
Use real pointers instead of shared_ptr and vector