Incremento de la localidad de datos en sistemas de ficheros
- Camacho Cruz, Hugo Eduardo
- Mancia Anguita López Directora
- Antonio Francisco Díaz García Codirector
Universidad de defensa: Universidad de Granada
Fecha de defensa: 18 de julio de 2012
- Julio Ortega Lopera Presidente
- Manuel Rodríguez Álvarez Secretario
- Andres Ortiz García Vocal
- Antonio Martínez Álvarez Vocal
- Consolación Gil Montoya Vocal
Tipo: Tesis
Resumen
Los principales objetivos del trabajo presentado en esta memoria son los siguientes: La implementación de una cache en el sistema de ficheros paralelo PVFS2 que permita incrementar las prestaciones de aplicaciones de uso intensivo de datos (procesamiento de imágenes, simulaciones de ingeniería, bioinformática en computadores multi-núcleo (multi-core). Obsérvese que, al usar la aplicación un único computador, el mantenimiento de coherencia entre caches de distintos computadores (clientes) no es un requisito crítico para esta implementación de cache. Pueden aprovechar la implementación de cache tanto aplicaciones distribuidas en varios programas que usen ficheros para trasferir entre ellos los datos como aplicaciones con código paralelo que trabajan con un flujo continuo de datos (streaming), es decir, que leen y escriban datos en ficheros sin usarlos para comunicación. Se puede obtener un buen partido de los núcleos presentes actualmente en cualquier computador de propósito general sin tener que modificar el código aprovechando el sistema de ficheros en red o NAS, más concretamente, aprovechando su cache. La cache en PVFS permitirá: - Para aplicaciones del primer tipo, mejorar la comunicación entre los programas de la aplicación al poder encontrar los datos de entrada en la cache local del sistema de ficheros. Estos programas de la aplicación se podrían ejecutar uno detrás de otro o en paralelo, cada uno en un núcleo distinto del computador. - Adicionalmente, la presencia de cache en el sistema de ficheros puede incrementar las prestaciones de aplicaciones con código paralelos, el segundo tipo de aplicaciones comentado más arriba, sin que el programador tenga que modificar el código ni añadir comunicación/sincronización extra entre los núcleos. Las prestaciones en la escritura de resultados en ficheros mejora porque la cache del sistema de ficheros se puede utilizar como buffer o almacenamiento para combinar escrituras de distintos núcleos o del mismo núcleo antes de enviarlos a los servidores de datos. Las lecturas de datos de ficheros mejora porque los datos de entrada para diferentes núcleos se pueden pre-captar por anticipado a la cache del sistema de ficheros. El acceso a datos de fichero de un núcleo del computador podría también traer del servidor hasta la cache del cliente datos que otros núcleos van a leer a continuación, por lo que estos núcleos los encontrarían en cache ahorrando el tiempo de trasferencia desde el servidor y disminuyendo la cogestión del servidor. - Si los sistemas de ficheros tienen en cuenta en su implementación el hardware disponible actualmente, las aplicaciones mejorarán sus prestaciones. Otro objetivo en esta implementación es que se pueda utilizar en aplicaciones con ejecución distribuida o paralela en varios computadores, para ello, como no incluye mantenimiento de coherencia, la implementación debe ofrecer al programador funciones para que explícitamente mantenga el mismo la coherencia cuando resulte necesario. La implementación de cache de metadatos y datos en servidores y en clientes, manteniendo coherencia cuando se escribe en las caches de distintos nodos clientes evitando tener que añadir capas extras en el sistema de ficheros para la implementación de cache. Con ello se pretende conseguir unas buenas prestaciones eliminando los retardos extra de las capas de software para compensar en parte los retardos extra requeridos por las transferencias para garantizar coherencia en las escrituras. El mantenimiento de coherencia en las escrituras supone trasferir paquetes adicionales a través de la red antes de dar por terminada un acceso de entrada/salida, esto hace que se incremente el tiempo que requiere un acceso. Mientras que evitar incluir capas extras de software ahorra tiempo de procesamiento del software del sistema de ficheros. Para poder realizar esta implementación se ha utilizado un sistema de ficheros, AbFS, en el que se tiene total control ya que se está desarrollando en nuestro grupo de investigación,. Las implementaciones de cache coherente ocasionan una sobrecarga de los servidores debido a que se los clientes tienen que informarles siempre que realizan una escritura haya o no acierto en la cache. Un objetivo adicional en la implementación es disminuir las sobrecargas de los servidores de datos debido al mantenimiento de coherencia.