Practico 1 ejercicio 2

Practico 1 ejercicio 2

de Lia Colombo Scaramelli -
Número de respuestas: 4

Buenas, hicimos muchas pruebas considerando el tamaño nuestra caché, calculamos para que entren al menos dos bloques en L1 (y en toda la caché) para poder probar lo que pide el ejercicio 2, parte 2. 

Somos dos en el grupo y el problema es que al correr el programa en una de las máquinas que tiene windows demora más en la multiplicación por bloques a no ser que pongamos -O1 (flag de optimización). 

En la otra que también tiene windows funciona como es esperado sin la flag. Por las dudas probamos en una máquina de la fing y también funciona como es esperado. 

No sabemos cómo justificar este tema en el informe ni si es parte del scope. 

Gracias, saludos.

En respuesta a Lia Colombo Scaramelli

Re: Practico 1 ejercicio 2

de Ernesto Dufrechou -

Es difícil darles una respuesta sin ver el código, saber los tamaños de matriz y bloque que están probando, ni ver los resultados concretos.

Si la variante a bloques demora más en matrices chicas (por ejemplo hasta size ~= 128) tiene sentido, ya que en estos tamaños se puede llegar a  explotar la caché sin necesidad de usar bloques, y usar bloques agrega overhead (más instrucciones, contadores, etc.). Sin embargo, si les pasa esto con tamaños más grandes de matriz pensaría que hay algún error o algo que no estamos teniendo en cuenta. Para tamaños como size ≃ 1024 deberían ver una diferencia clara.

Las flags de compilación pueden influir, pero tampoco sé qué compilador están usando. En algunos compiladores la flag por defecto es -O2. En recomiendo usar al menos -O2 en este tipo de código.

Saludos!

En respuesta a Ernesto Dufrechou

Re: Practico 1 ejercicio 2

de Lia Colombo Scaramelli -
Con respecto a los tamaño son exactamente las pruebas que estamos haciendo, así que seguimos por ese camino y vamos a seguir probando. Pensamos que tenía más sentido no usar ningún flag para que no influya la optimización en el uso de los recursos. Gracias por el comentario de -O2. Para compilar estamos usando g++

Gracias! saludos
En respuesta a Ernesto Dufrechou

Re: Practico 1 ejercicio 2

de Luciano Lacurcia Martino -
Buenas, una consulta, la idea es usar optimizaciones del compilador? yo había entendido que había que usar -O0 (en gcc usando c) para que el compilador no haga ninguna optimización y poder comparar los resultados de los distintos algoritmos de nuestro código
En respuesta a Luciano Lacurcia Martino

Re: Practico 1 ejercicio 2

de Ernesto Dufrechou -
Pueden seguir cualquiera de las dos estrategias. En la práctica siempre es mejor usar al menos -O2, pero si por los motivos que mencionan prefieren usar -O0 es válido también. En cualquiera de los casos hay que documentarlo en el informe.
Saludos!