La importancia del parámetro HASHEXP

16 Nov

La última entrada (de momento) sobre objetos HASH en SAS. Quiero analizar la importancia que tiene el parámetro hashexp a la hora de crear el objeto hash cuando deseamos ordenar un conjunto de datos. Para ello he realizado un experimento con SAS cuyo código podéis descargaros .aquí. Es un código de calidad muy baja pero que da como resultado el siguiente gráfico:

ejecuciones-hashexp-distintas.png

Se trata de un experimento en el que ordenamos un dataset con 7 variables y diferentes tamaños, se miden los tiempos de ordenación para exponentes 2, 5, 10 y 20. Se realizan 2 réplicas del experimento para evitar algún problema con el equipo (deberían hacerse más pero tarda mucho) y el resultado de la combinación entre tamaño-exponente nos da como resultado un tiempo de ejecución que graficamos. En el eje y del gráfico tenemos los tiempos de ejecución y en el eje x el tamaño en miles del dataset ordenado. Para cada combinación exponente-tamaño se han realizado dos ordenaciones y se han medido los tiempos. El resultado obtenido, como cabía esperar, indica que el exponente, el parámetro hashexp, tiene mucha importancia a la hora de realizar ordenaciones mediante objetos hash con SAS. En nuestro experimiento las diferencias las encontramos a partir de los 2 millones de registros y se van incrementando en función del tamaño del dataset, sin embargo en la última ejecución las diferencias parecen reducirse. Las líneas 2, 5 y 10 obtienen resultados muy similares siendo el exponente 20 el que mejores resultados ofrece.

No parece deducirse una norma para determinar el número de tablas que empleará el algoritmo a la hora de realizar la ordenación sin embargo si parece que en datasets medianos no es muy influyente y es en el momento en el que trabajamos con datasets muy grandes cuando debemos utilizar un mayor número de tablas.

El experimento hay que mejorarlo y analizar si la diferencia es significativa, eso se lo dejo a mis lectores ya que muchos de ellos disponen de potentes servidores y no dejan inútiles sus equipos cuando ejecutan este tipo de procesos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *