gstvrmrlpz / energy

Energy consumption of EC implementations in several programming languages
GNU General Public License v3.0
1 stars 0 forks source link

We need to establish a format for result file names #13

Open JJ opened 1 week ago

JJ commented 1 week ago

For instance machineid-compileroptions-date, so that we differentiate different experiments and can refer to specific states in the repository.

For instance, this file https://github.com/JJ/energy-ga-icsoft-2023/blob/main/code/scripts/run-pinpoint-command.pl establishes a preffix that can be configured and a suffix that's created from the date.

gstvrmrlpz commented 1 week ago

hay que pensarlo bien porque en el nombre deberían aparecer:

Esto deberíamos dejarlo para el final cuando tengamos claro que conjunto de opciones resulta interesante investigar.

JJ commented 1 week ago

Los tres últimos pueden ser columnas en el fichero CSV.

gstvrmrlpz commented 1 week ago

debería haber otra columna para explicitar el número de ejecución puesto que hemos dicho en otro issue que habría que separarlas, no? Como múmero de ejecición puede servir la fecha. Recapitulando: máquina, problema, longitud, optimización, compilador, fecha Se nos olvida algo?

JJ commented 1 week ago

debería haber otra columna para explicitar el número de ejecución puesto que hemos dicho en otro issue que habría que separarlas, no? Como múmero de ejecición puede servir la fecha. Recapitulando: máquina, problema, longitud, optimización, compilador, fecha Se nos olvida algo?

No hace falta, el número de fila ya es suficiente. R le mete automáticamente a los dataframes un número de fila de todas formas. Si se ha ejecutado el primero o el n no es relevante, salvo efectos raros que se han observado (y que habría que tratar de eliminar en la metodología)

Y una vez más, la longitud es parte también del fichero CSV, como la optimización y el compilador.

Hay dos cosas

  1. Nombre del fichero: máquina, problema (generación cromosomas, xover+mutation+maxones o HIFF), fecha
  2. contenido del fichero: longitud, tipo de dato, optimización, compilador, energía (diferentes columnas si el ordenador lo permite), tiempo

En la creación de cromosomas se pone directamente el resultado, en las otras dos se tiene que restar de las columnas de mediciones la media obtenida con la generación de cromosomas.

gstvrmrlpz commented 5 days ago

Formato definitivo en makefile. Puede controlarse mediante la variable OUT para escoger CSV o texto así:

make init OUT=csv
make full OUT=txt
JJ commented 5 days ago

¿Por qué no intentas poner cosas como #13 en el mensaje de commit? Así los cambios se ve de donde vienen...

gstvrmrlpz commented 1 day ago

Reabro este "issue" porque al empezar a pintar gráficas me he dado cuenta de que es más sencillo procesar los datos si cada experimento está junto en un fichero en lugar de estar repartido en varios.

Estoy probando la siguiente configuración: 1) para el nombre del fichero: máquina-fecha.csv 2) para los datos en su interior: #compiler;optimización;programa;semilla aleatoria;longitud del cromosoma;trabajo={i,g,h};energy(J);time(s)

¿Qué te parece @JJ?

JJ commented 1 day ago

Dentro de un mismo fichero deben ir cosas que se vayan a comparar. No se van a comparar diferentes tipos de programas (HIFF, SGA e inicialización; la inicialización se va a tratar aparte para hallar medias y restarlas). Tampoco se van a meter todas las operaciones en una segunda fase, porque de la primera se eliminarán combinaciones, así que no hace falta ejecutarlo todo. Si no quieres meter en ficheros diferentes opciones de compilación diferentes, me da un poco igual, pero sí es cierto que como más fácil es para tratar los datos es que programas diferentes vayan en ficheros diferentes (y que decidamos qué vamos a descartar para una segunda fase según la primera)

gstvrmrlpz commented 1 day ago

El problema con los ficheros separados es que la hora sirve mal para agruparlos. En cambio ahora puedes hacer grep o lo que prefieras para separar lo que te interese del interior de un experimento. Otra cosa que he cambiado es la cantidad de repeticiones de un mismo experimento a 100 en lugar de 15 porque las nubes de puntos quedan mucho más monas y las medias y desciaciones mucho más precisas.

JJ commented 1 day ago

No hace falta que se ejecuten tanto tiempo. Puedes poner 20 en vez de 15, pero la precisión a partir de 15 no aumenta prácticamente nada. Y si pones más ejecuciones tampoco podemos comparar con las que se han hecho. Si quieres cambiar alguna cosa, abre un issue y lo vemos, porque cada cosa que se ha hecho tiene su razón de ser y hacer cosas sin una buena razón al final conduce a trabajo malgastado.