Vector processor virtualization: distributed memory hierarchy and simultaneous multithreading