jueves, mayo 18, 2006

Cuidado con lo que miden las comparativas de velocidad

Hace no mucho leía esta comparativa de velocidad del uso del software estádistico R en Linux, Windows y MacOS X. En esta comparativa salía bastante mal parado MacOS X, siendo un software que fundameltalmente lo que hacía era tirar de CPU, y se ejecutaba sobre la misma máquina, no se entendía la falta de velocidad de MacOS X. Bien, pues la explicación está en este otro artíuclo. La clave es, cuando la implementación de malloc() de MacOS X pasa a usar mmap() en vez del heap de la aplicación (brk() o sbrk()). MacOS X cambia antes al uso de mmap, y por tanto llama mucho más al sistema con el uso de malloc y free. Además por el uso un poco extraño de la memoria de R, este efecto se multiplicaba. Al final, lo que se está haciendo es un micro benchmark de malloc() y free() ... y R no utiliza ninguna de las rutinas de las librerias por defecto ni en Windows ni en Linux. Un simple cambio en MacOS X, recompile y la velocidad es similar. Moraleja: cuidado con lo que medimos y como lo medimos.

Technorati Tags: , /, /

No hay comentarios: