Digamos que tengo versiones lentas y rápidas de algún código, y quiero informar un número de aceleración comparando los dos. Ejecuto la versión lenta veces y la versión rápida m veces, produciendo tiempos ( s 1 , ... , s n ) y ( f 1 , ... , f m ) . La forma más simple de producir una aceleración es promediar los medios: ˉ s Sin embargo, esto no tiene en cuenta los valores atípicos.
Pregunta : ¿Cuál es la mejor estadística para usar cuando se informan números de aceleración?
statistics
publications
Geoffrey Irving
fuente
fuente
Respuestas:
Además de todo lo que Bill Barth ya ha dicho anteriormente, permítanme mencionar que las personas a menudo informan la más rápida de varias carreras. La razón es que el tiempo de ejecución real es el tiempo de ejecución ideal más cualquier cantidad de ralentizaciones resultantes de otros procesos en ejecución, retrasos del sistema operativo, retrasos de la red, etc. Dado que estos son todos ruidos que no nos interesan, usar el tiempo de ejecución más rápido viene más cercano al que realmente queremos saber.
fuente
yes A is theoretically only ~3x faster
¿no puede esperarse una aceleración ~ 3x no representativa de la aceleración en cuando se usa la implementación A en lugar de B? (Por cierto, este es un ejemplo de la vida real)Le sugiero que use la mediana para dar una estimación estadística. A diferencia de la media, la mediana no está corrompida por los valores atípicos.
fuente
Si la desviación estándar no es despreciable, puede usar dos diagramas de cajas uno al lado del otro, construidos cada uno con el tiempo de uno de los algoritmos. Por supuesto, no son estándar en el análisis numérico, pero hacen un gran trabajo al mostrar este tipo de información.
fuente