Se muestran los artículos pertenecientes al tema concurso.
Efectivamente los tiempos de CPU todavia no estan siendo muy precisos, el limite de 300 creditos era demasiado bajo.
Un participante, Jesus, ha propuesto como ejercicio que le echemos un vistazo al host 2242 que ha sido evaluado con 7 dias y no parece que pueda tenerlos. Y no los tiene. Veamos
Lo primero sacamos del backup todos los resultados que han sido retirados de la base de datos activa por llevar mas de cuatro dias sin alteracion. Estos resultados estan en xml (lo pongo sin los brakets porque blogia los quita):
result_archive_1176991725.xml: result_archive
result_archive_1176991725.xml: hostid 2242 /hostid
result_archive_1176991725.xml: sent_time 1176648072 /sent_time
result_archive_1176991725.xml: cpu_time 1.937385820000000e+02 /cpu_time
result_archive_1176991725.xml: validate_state 1 /validate_state
result_archive_1176991725.xml: /result_archive
etc. En total ese host tiene 84 resultados con validate_state = 1 y sent_time > 1176368365 (el momento de inicio, asi a ojo porque para este ejercicio no lo he buscado en los logs). A esos hay que sumarle 168 resultados validos que estan vivos en la base de datos y son los que vosotros veis en las busquedas (en este caso, SELECT hostid, sent_time, validate_state, cpu_time FROM Zivis.result WHERE hostid=2242). Sumando ambos sectores, tengo 136915,6550450+296006.125904 segundos. Por tanto con exactitud son 5,01 dias de cpu_time y no los siete con los que aparece en el listado.
¿que ocurre? Que el listado, que por algo tiene la palabra "provisional", se calcula mediante un metodo mas rapido que es estadistico. Este metodo comienza a tener validez a partir de muchas horas de cpu acumuladas. Por otro lado es el metodo estandar de BOINC, y no nos hemos atrevido a tocar el codigo fuente para implementar la suma directa, nos limitamos a guardarla y como os digo, a partir de las dos semanas verificaremos con mucho cuidado si el metodo estadistico y la suma coinciden. De momento la primera medida de precaucion fue no admitir a la lista rapida nadie que no tuviera mas de 300 creditos; esta visto que pusimos este limite demasiado bajo, pero en caso contrario las oscilaciones habrian sido mas descaradas.
En resumen, las alternativas eran: a) modificar la base de datos y el codigo de validacion de BOINC para tener el rastro exacto de la CPU en todo momento. b) mantener todos los resultados en la base de datos para poderlos sumar de golpe en cada consulta. c) confiar en el metodo estadistico de BOINC, que lleva años en funcionamiento, y verificar contra los backups. Descarte (a) porque no me atrevi a tocar el codigo de validacion en otros puntos diferentes de los que ya tenemos que tocar para la aplicacion nuestra, y descartamos (b) porque mysql petaria si no sacamos los resultados caducados hacia el backup. Asi que por eliminacion estamos bailando con c. Si despues de dos semanas el metodo estadistico falla entonces sacaremos un script que haga automaticamente lo que acabo de hacer a mano, pero entonces los resultados no seran instantaneos sino que habra que calcularlos cada 6 horas como mucho.
Por cierto, me parece que legalmente (ley organica de proteccion de datos) teneis derecho a pedime que os envie los logs correspondientes a los datos de los cuales seais propietarios... pero porfa de momento no me agobieis en esto, que hay mas cosas que hacer.
Alejandro

En estos días se ha podido ver cómo gente que no aparecía en la clasificación por tiempo de CPU ha dado unos saltos enormes en el tiempo o ha aparecido de repente.
El motivo por el que esto ocurre es porque para entrar en la esa lista, se está considerando un mínimo de 300 créditos. Como la cantidad de créditos que se otorga a un trabajo depende de la potencia del ordenador que los realiza, pueden encontrarse situaciones en las que alguien que lleve 5 días con el ordenador encendido a tiempo completo no aparezca de la lista y luego aparezca de repente.
Imaginemos alguien, un usuario A con un ordenador último modelo, por darle un nombre, supongamos que tiene un Core2 Duo, a 3 GHz. E imaginemos a otro usuario B con un ordenador muy viejo, un Pentium III a 1.2 GHz, por ejemplo. ¿Qué ocurriría?
Que debido a la mayor potencia de cálculo del usuario A, podría acumular estos 300 créditos en poco tiempo, 1 día, por ejemplo, entrando en la clasificación con 1 día de CPU y contando a partir de ese punto. El usuario B, sin embargo, no reuniría los 300 créditos mínimos hasta los 6 días, por ejemplo, entrando en la clasificación de repente, con ese tiempo de CPU.
En la gráfica adjunta se intenta aclarar un poco más la idea.
María
A peticion popular, he aqui un dump del offset de creditos calculados a las 11 de la mañana del dia de comienzo de concurso.
http://zivis.bifi.unizar.es/offsets.txt
En las clasificaciones en la pagina municipal, las del concurso, este offset aparece ya restado. En las estadisticas estandar BOINC, en atencion a los no concursantes, los creditos son los totales desde que empezo el concurso, sin restarlo.
Los creditos y las horas de CPU son *validados*. Esto es, no se contabilizan hasta que el resultado coincide con el enviado a otra maquina. Asi no os extrañe que en diez minutos uno pueda incrementar una hora su CPU, porque es simplemente resultado de que se ha recibido el resultado que la valida.
Como veis en la pagina principal, hemos finalmente parido el reglamento del concurso. Lo importante es que se cuentan los creditos desde el dia 12 de abril y estamos a 10, asi que los que vean que su configuracion actual les perjudica tienen un par de dias (bueno, unas horas menos) para ajustarse. Como en cuarenta horas no da tiempo a que los grupos se pongan de acuerdo, estos tienen hasta el 25 de abril para juntarse y escindirse sin penalizacion.