Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Yonny Teixeira
Wilsen Hernandez
Julio, 2016.
Universidad de Carabobo.
Facultad de Ciencias y Tecnología.
Departamento de Computación.
Arquitectura del Computador.
2
Introducción
Con el paso de los años el hombre moderno ha encontrado distintas maneras de mejorar el
rendimiento y capacidad de sus creaciones, innovando desde artefactos comunes del hogar
hasta armas de guerra avanzadas. Consecuentemente con los avances científicos el desarrollo
de invenciones viene dado por descubrimientos importantes que den paso a la posterior
fabricación de las mismas y estos hallazgos se generan gracias a estudios, investigaciones o
creativas ideas surgidas desde laboratorios pero en ocasiones existen ideas que surgieron hace
siglos atrás y que al contextualizarla en algún área tecnológica específica puede conllevar a
tener una nueva perspectiva que represente el inicio de una técnica para el progreso de estas
invenciones.
La frase: “Divide y Vencerás” es una antigua frase que ha sido puesta en práctica a través del
tiempo como una táctica de guerra, en sociología y política, o como un método para resolver
problemas buscando solucionar partes pequeñas de los mismos como principio para luego
pasar a partes más complejas. Este método ha sido utilizado en el mundo de la computación
de distintas maneras, incluidos están los Clusters. Están conformados de tal manera que en un
grupo de computadores interconectados se les asigna una tarea la cual es ejecutada
dividiéndola en partes que se procesan y resuelven de forma paralela, lo cual mejora en gran
manera el rendimiento que podría tener un solo computador. A continuación se presenta
información más detallada acerca de los clusters y sus aplicaciones.
3
Los Supercomputadores
Las computadoras pueden definirse de forma simple y sencilla como una máquina que
recibe datos y los convierte o transforma en información con una mayor complejidad o
utilidad para el usuario, internamente se dan otras series de procesos, destacándose la entrada/
salida de datos, carga de datos en memoria, lectura y escritura en memoria son ejemplos de
las operaciones más básicas y esenciales realizadas por un computador. Estas operaciones
permiten que los programas se ejecuten para hacer distintas tareas del sistema, correr
software de aplicación, entre otros, de forma secuencial, siendo este método es uno de los
aspectos resaltantes al momento de diferenciar un computador de un supercomputador, ya
que el último trabaja con un método distinto basado en paralelismo.
Los Supercomputadores son diseñados para trabajar en ciertos tipos de problemas
sobre los cuales su primera restricción es velocidad de cálculo. Conducen grandes cantidades
de cálculos complejos y muy rápidos en datos almacenados en memoria. Estos computadores
son construidos con el propósito de correr simulaciones complejas.
Impulsan los límites de velocidad de cómputo, descubriendo lo que es posible para un
computador hacer. Son los exploradores del mundo de la computación.
Taxonomía de Flynn
Clusters
Se puede hacer un supercomputador llenando una caja gigante con procesador y
haciendo que cooperen en resolver un problema complejo a través de procesamiento masivo
en paralelo. Alternativamente, puedes comprar muchos computadores, ponerlos en la misma
habitación e interconectarlos usando una rápida red de área local (LAN) para que funcionen
de forma similar. Ese tipo de supercomputador es llamado un Cluster. Un clúster es un grupo
5
de ordenadores débilmente acoplados que trabajan en estrecha colaboración, de modo que en
algunos aspectos pueden considerarse como un solo equipo. Los clústeres se componen de
varias máquinas independientes conectadas por una red
Concurrencia
Las aplicaciones distribuidas serán utilizadas por un alto número de usuarios por lo
que hay que tener presente los bloqueos de recursos o el uso de CPU, para lograr la máxima
eficiencia.
7
Paralelismo
El paralelismo permite dividir una tarea en partes que pueden ser ejecutadas
independientemente, con lo cual se logra obtener resultados en forma más expedita. El
paralelismo se puede implementar a nivel de hardware y a nivel del software.
A nivel del hardware se implementa mediante el uso de múltiples unidades
funcionales, pipeline, caches, etc. Este paralelismo es básicamente transparente, sin embargo,
conocer cómo opera puede permitirle al usuario optimizar su código de forma de sacarle el
máximo provecho a este paralelismo. Nótese que estas optimizaciones son muy específicas a
la arquitectura de la máquina. El paralelismo de software es aquel en el que dividimos una
tarea en subpartes que serán distribuidas y correrán en distintos procesadores. La labor de
particionamiento puede resultar fácil o ser un verdadero reto.
Middleware
Durante años, el Middleware ha sido una parte de muy bajo perfil en el mercado del
software. Si la gente pensara acerca del middleware, pensaría que es solo una capa
transparente de pegamento ó la plomería de las aplicaciones distribuidas. A pesar todo, el
Middleware ha crecido gracias al auge de Internet, redes privados y comercio en línea.
Middleware es un término que generalmente se utiliza para nombrar aquellos software
que “unen” programas, normalmente muy complejos y ya existentes. Algunos componentes
8
de software que frecuentemente son conectados con middleware incluye aplicaciones
empresariales y servicios web.
El middleware a veces se sitúa entre el sistema operativo y las aplicaciones en
distintos servidores y simplifica el desarrollo de aplicaciones que necesitan el servicio de
otras aplicaciones. Esto permite a los programadores crear aplicaciones empresariales sin
necesidad de crear nuevas integraciones a medida para cada nueva aplicación.
Middleware provee servicios de paso de mensajes para que diferentes aplicaciones
puedan comunicarse utilizando frameworks como Representational State Transfer (REST) o
JavaScript Object Notation (JSON).
Paso de Mensajes
Objetos distribuidos
Soportan pedidos de objetos distribuidos. La comunicación entre los objetos puede ser
sincronizada, sincronizada diferida o no sincronizada. Soportan múltiples pedidos similares
realizados por múltiples clientes en una transacción. Las ventajas son que permiten generar
reflexión y escalabilidad, que opera con múltiples tipos de información y estados y que
soporta procesos múltiples. Las desventajas consisten en obtener la existencia de vínculos
antes de la ejecución y de un código contenedor para algunos sistemas heredados.
Agentes móviles
Groupware
OpenMP
CUDA
Heterogeneidad
Sitios diferentes utilizan diferentes DBMS, siendo cada uno esencialmente autónomo.
Es posible que algunos sitios no sean conscientes de la existencia de los demás y quizás
proporcionen facilidades limitadas para la cooperación en el procesamiento de transacciones.
Extensibilidad
Escalabilidad
Concurrencia
Las aplicaciones distribuidas serán utilizadas por un alto número de usuarios por lo
que hay que tener presente los bloqueos de recursos o el uso de CPU, para lograr la máxima
eficiencia.
Cluster Beowulf
Es un cluster de computadores compuesto de computadores de uso personal
conectados a una pequeña red de área local, con librerías y programas instalados que
permiten compartir el poder de procesamiento entre ellas. Esto resulta en una red de
computación paralela con hardware de uso personal de bajo costo.
11
Ventajas
Aplicaciones Empresariales
Conclusión
Referencias
Siewiorek, D., Koopman, P. (1991). The Architecture of Supercomputers: Titan, a case study.
United Kingdom. Academic Press, Inc.
http://es.slideshare.net/rosluck29/clasificacin-de-flynn-arquitectura-del-computador
Díaz, G; Hoeger, H; Núñez, L. (2002) Clusters de PCs. Universidad de Los Andes, Mérida,
Venezuela.