3 research outputs found
Recommended from our members
High-performance data-parallel input/output
Existing parallel file systems are proving inadequate in two important arenas:
programmability and performance. Both of these inadequacies can largely be traced
to the fact that nearly all parallel file systems evolved from Unix and rely on a Unix-oriented,
single-stream, block-at-a-time approach to file I/O. This one-size-fits-all
approach to parallel file systems is inadequate for supporting applications running
on distributed-memory parallel computers.
This research provides a migration path away from the traditional approaches
to parallel I/O at two levels. At the level seen by the programmer, we show how
file operations can be closely integrated with the semantics of a parallel language.
Principles for this integration are illustrated in their application to C*, a virtual-processor-
oriented language. The result is that traditional C file operations with
familiar semantics can be used in C* where the programmer works--at the virtual
processor level. To facilitate high performance within this framework, machine-independent
modes are used. Modes change the performance of file operations,
not their semantics, so programmers need not use ambiguous operations found in
many parallel file systems. An automatic mode detection technique is presented
that saves the programmer from extra syntax and low-level file system details. This
mode detection system ensures that the most commonly encountered file operations
are performed using high-performance modes.
While the high-performance modes allow fast collective movement of file data,
they must include optimizations for redistribution of file data, a common operation
in production scientific code. This need is addressed at the file system level, where
we provide enhancements to Disk-Directed I/O for redistributing file data. Two
enhancements are geared to speeding fine-grained redistributions. One uses a two-phase,
or indirect, approach to redistributing data among compute nodes. The
other relies on I/O nodes to guide the redistribution by building packets bound for
compute nodes. We model the performance of these enhancements and determine
the key parameters determining when each approach should be used. Finally, we
introduce the notion of collective prefetching and identify its performance benefits
and implementation tradeoffs
Arquitectura multiagente para E/S de alto rendimiento en clusters
La E/S constituye en la actualidad uno de los principales cuellos de botella de los sistemas distribuidos
de propósito general, debido al desequilibrio existente entre el tiempo de cómputo y de E/S. Una de
las soluciones propuestas para este problema ha sido el uso de la E/S paralela. En esta área, se han
originado un gran número de bibliotecas de E/S paralela y sistemas de ficheros paralelos.
Este tipo de sistemas adolecen de algunos defectos y carencias. Muchos de ellos están concebidos
para máquinas paralelas y no se integran adecuadamente en entornos distribuidos y clusters. El uso
intensivo de clusters de estaciones de trabajo durante estos últimos años hace que este tipo de sistemas
no sean adecuados en el escenario de computación actual.
Otros sistemas, que se adaptan a este tipo de entornos, no incluyen capacidades de reconfiguración
dinámica, por lo que tienen una funcionalidad limitada.
Por último, la mayorÃa de los sistemas de E/S que utilizan diferentes optimizaciones de E/S, no
ofrecen flexibilidad a las aplicaciones para hacer uso de las mismas, intentando ocultar al usuario
este tipo de técnicas. No obstante, a fin de optimizar las operaciones de E/S, es importante que las
aplicaciones sean capaces de describir sus patrones de acceso, interactuando con el sistema de E/S.
En otro ámbito, dentro del área de los sistemas distribuidos se encuentra el paradigma de agentes,
que permite dotar a las aplicaciones de un conjunto de propiedades muy adecuadas para su adaptación
a entornos complejos y dinámicos. Las caracterÃsticas de este paradigma lo hacen a priori prometedor
para abordar algunos de los problemas existentes en el campo de la E/S paralela.
Esta tesis propone una solución a la problemática actual de E/S a través de tres lÃneas principales:
(i) el uso de la teorÃa de agentes en sistemas de E/S de alto rendimiento, (ii) la definición de un
formalismo que permita la reconfiguración dinámica de nodos de almacenamiento en un cluster y
(iii) el uso de técnicas de optimización de E/S configurables y orientadas a las aplicaciones