Gather-scatter (direccionamiento vectorial)


Gather-scatter es un tipo de direccionamiento de memoria que a menudo surge cuando se direccionan vectores en operaciones de álgebra lineal escasa . Es el equivalente vectorial del direccionamiento indirecto de registro , con recopilación que involucra lecturas indexadas y escrituras indexadas dispersas. Los procesadores vectoriales (y algunas unidades SIMD en las CPU ) tienen soporte de hardware para operaciones de recopilación y dispersión, proporcionando instrucciones como Load Vector Indexed para recopilación y Store Vector Indexed para dispersión.

Un vector escasamente poblado que contiene elementos no vacíos puede representarse mediante dos vectores de longitud densamente poblados ; que contiene los elementos no vacíos de y proporciona el índice en el que se encuentra el elemento. La reunión de into , denotada , se asigna con haber sido ya calculada. [1] Asumiendo que no hay alias de puntero entre x[], y[],idx[], una implementación en C es

La dispersión escasa, indicada es la operación inversa. Copia los valores de en las ubicaciones correspondientes en el vector escasamente poblado , es decir, .