multithreaded gather/scatter