Técnicas de optimización de la localidad para códigos irregulares sobre arquitecturas multiprocesador y multithreading