Blogia
Blog de Ibercivis

¿Cómo evitar las paradas?

La gran cosa de que BOINC sea multiproyecto es que aun cayendo Ibercivis los clientes pueden seguir calculando en otros puntos hasta que volvemos a estar arriba. Ahora, ¿Como evitar estas caidas? No nos sirve da nada tener hardware de alta disponibilidad, porque lo que se desconecta son habitaciones o lineas de comunicacion completas. Por ello desde un principio optamos por nodos distribuidos, pero eso no resuelve el asunto.

¿Por qué? Porque si el scheduler (que podriamos tener duplicado en otro nodo) sigue activo, puede seguir recibiendo confirmaciones de entrega y mandando nuevos resultados. Y aqui tenemos dos problemas;

  • si al validador se le informa que hay datos preparados para validar pero estos han sido recibidos en uno de los nodos caidos, entonces el validador da un falso error de validacion.
  • si al cliente se le informa de una nueva workunit para calcular pero sus ficheros de input estan solo en una de las unidades caidas, el cliente no puede leerlas y se atasca.

Por ello, un sistema de ficheros distribuido es solo ser parte de la solucion y quizas ni siquiera la unica. Se puede retrasar el arranque de validadores a traves de un programa de control intermedio, el "transitioner". Y los datos de input se pueden duplicar desde el principio. Pero despues de más un año de funcionamiento no tenemos aun claro cual es la mejor idea para automatizar el proceso.

11 comentarios

Alejandro Rivero -

Hola victor. Se ha quemado el disco duro que contenia las moleculas de docking, un USB externo. Lo hemos reemplazado por uno de esos que ya no llevan carcasa de plastico pero durante los ultimos dias se crearon workunits con mal checksum. Aparte de ello, y las pruebas en BETA de amiloide, no he detectado cosa grave.

Victor -

Buenas Tardes,
llevo un par de días con muchos "errores de calculo", ¿sucede algo o es mi equipo?
Un saludo, gracias

Jose -

Por lo que he entendido, tu principal problema es la red. Se puede construir un sistema de archivos distribuido y duplicado, de modo que si cae alguno nodo no suponga un problema. Pero esto sólo funciona bien con redes rápidas. Si dispones de buena comunicación entre dos ubicaciones distintas, se me ocurre una posible solución que conlleva replicación de nodos para HA. Mándame mail si te interesa.

Saludos

Emmanuel -

Otro detalle sobre la biblioteca de informacion es que la informacion podeis dejarla intacta o comprimida,al comprimir aseguraos que no se pierde calidad en los documentos y no se vuelven los datos corruptos al moverlos dentro de las ubicaciones de los discos duros,a veces ciertos sistemas de compresion crean corrupcion por ejemplo las letras del alfabeto o numeros,poniendo A en vez de v y O en vez de cero.
Aun siendo un sistema aislado una biblioteca podria haber la posiblidad de ejecutar codigo malicioso,ejemplo formatear discos de manera remota,ampliando las capacidades del kernel (autoinstalacion de programas)en caso de Linux y autoejecutando un archivo de pocos bits en un nuevo lenguaje de programacion que podria ser bastante destructivo,mi consejo es que la biblioteca solo tenga un compresor de archivos no descompresor y se saquen datos,cuando se apague el sistema siempre desconectar el soporte fisico de los discos duros del sistema,asi te olvidas de problemas,el sistema operativo no tiene control en las unidades de disco duro y no puede ejecutar ningun archivo o modificacion posterior sin vuestra presencia.

Emmanuel -

Te entendi perfectamente,lo que queria expresar es que lo mas importante no es la caida de los nodos,es que la informacion con la que se trabaja es fiable y esta en una buena biblioteca alejada de peligros(de eso dependera la calidad de los resultados),respecto a los nodos lo ideal es mandar solo un grupo de tareas por nodo,si quieres incluso repartirlo entre 2 nodos perfecto,lo importante es que los datos que se envien y reciban de esos nodos no se repitan en ambos y aqui viene lo importante,caidas de nodos las vas a tener mas o menos,es inevitable pero al menos asi puedes validar el trabajo parcialmente y al cabo de unos dias tener el resultado completo.En definitiva distribuir las tareas de una manera mas directa y unica pudiendo saber en todo momento que tareas se encomendaron y cuales no se ejecutaron,para mandarlas a posteriori y concluir el trabajo.El proceso de validacion sin tener el nodo activo es como de risa,un nodo que esta off automaticamente se le encomiendan todas las tareas que tenia programadas para ese dia de nuevo,para evitar errores,aparte para validar tareas correctamente no basta con decir que como la mayoria dice que el resultado es 50 pues es correcto,eso no funciona asi,yo puedo tener 40 ordenadores con boinc y copiar unos resultados de ordenadores a ordenadores que no tienen porque estar correctos,y piensa que son automaticamente 40 o 50 resultados iguales,para saber si una tarea y su resultado es correcto no llega por que la mayoria da 50 resultados,eso se soluciona mandando las tareas por duplicados o triplicado a diferentes rangos de ip.ejemplo 192.300
203.567
213.400 con ello te aseguras que no mandais las mismas tareas a un zona determinada o localidad y aseguras muchisimo mejor la calidad del resultado.

Respecto a la input debeis tener un input central que maneje todas las entradas ajeno a los nodos,si se cae el input central se fastidian todos...

Y recordad que no hay nada validado hasta que se reciben esos datos en la base o biblioteca donde salvais lo importante.

Alejandro Rivero -

Er... insinuas que no se me entiende cuando hablo?? Me temo que asi es :-(

Emmanuel -

Esto tambien tiene aplicacion por ejemplo para un galvanizado,quiero mejorarlo y resulta que en una parte del proceso necesito someter las piezas a -40º y en la segunda a +80 y con un iman que genere una polaridad determinada en el proceso de secado.Para darle unas aristas o pequeñas agujas.

Emmanuel -

En conportamiento molecular una molecula de agua cambia su estructura y tamaño dependiendo de la temperatura a la que es sometida y de los agentes que lo rodean,aire,etc,al hacer una tarea deben ejecutarse todas las variables moleculares de cada molecula o material con el que trabajemos sometiendolos a diferentes temperaturas y temperaturas de intercambio,ejemplo un barniz con base de cera de miel y otro de base de resina de pino quemada,la polilla le encanta la cera,el mueble tratado con resina aun dañado ni lo tocan.

Emmanuel -

Para el iter lo ideal seria paso frame a frame por segundo en red de modo que los ordenadores reciban los datos de colision,para poder hacer las modificaciones a tiempo,montar despues los resultados en una especie de video a mas velocidad.

Nadie dijo que fuera facil

Emmanuel -

Pongamos una simulacion para el iter,mandas un programa ejecucion 5 tarde tiempo 20 minutos,necesario gpu 7600,y ejecutas en cada 4 o 5 ordenadores una secuencia del iter que quieres visualizar,anulas el resto que no estan conectados o salvas sus datos y montas esos datos despues simultaneamente en tu propia red interna que presuponemos que es mucho mas potente graficamente.Necesitas una gran conexion de entrada,programa informatico y gestor de ips gobernado por el programa.Problema,es complicado decirle a los ordenadores resultantes que las trayectorias varian por colision,pero para otras aplicaciones que no son iter tienen muchisima mas validez.

Emmanuel -

Lo primero es tener varios ordenadores sin conexion a internet con los datos correctos y probados de que es DIN y ISO,son normales y estan correctos no contaminados con errores ni virus ni rootkits,eso se le llama trabajar de base,solo se amplian fisicamente a traves de soporte fisico.Deben comprender la mayor informacion posible,ejemplo:cambios de estado a tales temperaturas(solido,liquido,gaseoso,plasma,gel,transmision termica,transmision electrica,magnetica,volumen cm" procesos asociados.Tener bibliotecas de datos que sean fiables y seguras.

Para los procesos ejemplo un galvanizado del metal y su metodo,teneis que tener exactamente lo mismo,para leyes matematicas desde el pi a ley universal igual,de esa manera podreis poner a trabajar los ordenadores centrales aislados y seguros en un trabajo determinado.La computacion distribuida lo que haria es ayudaros a conseguir que vuestras bibliotecas sean las mas serias y cientificas molecularmente,viricamente,bacteriologicamente,nanotecnologicamente,medicamente,tambien conociendo las lineas de internet activas casi permanentemente se podrian hacer calculos en red masivos online,mandando diversas ordenes por repetido a diversos ordenadores distribuidos y anulando las tareas repetidas enviadas online simultaneamente desde el mismo dentro anulando las ips temporalmente.