Blog
Parallel Virtual Machine, Maquina Virtual Paralela
24.10.2012 17:23
PVM
VENTAJAS
- Es una de las librerías de paso de mensajes mas fáciles de usar.
- Flexible: Control arbitrario de dependencia de estructuras. La
- aplicación decide:
- Donde y cuando ejecutar o terminar las tareas.
- Flexible: Control arbitrario de dependencia de estructuras. La
- Puede incorporar cualquier ordenador al esquema de la maquina virtual
DESVENTAJAS
- Al ser un esquema heterogéneo de ordenadores, el rendimiento depende de la capacidad de procesamiento de los ordenadores vinculados al esquema de la maquina virtual (lo que era una ventaja tiene una su desventaja).
- Es algo deficiente en cuanto al paso de mensajes se refiere.
CONFIGURACION
- Cada ordenador debe de estar ejecutando el demonio pvmd
- PVM requiere de cierta configuración para cada usuario. Es necesario crear un archivo .rhosts en el directorio HOME de cada usuario que quiera ejecutar programas bajo PVM.
- El archivo .rhosts debe contener una línea por cada ordenador que va formar parte de la maquina virtual. Además debe incluir el nombre de usuario que se utilizara en cada una de ellas.
- se debe crear el directorio pvm3/bin/LINUX en el directorio HOME y colocar ahí los programas.
- Para configurar la MV utilizamos el programa pvm en cualquiera de los ordenadores que forman parte de la MV.
- Nos aparecerá un promt donde podremos introducir comandos para interactuar con la MV.
- Los comandos mas interesantes son: add/delete hostname: Añade/Quita el ordenador con nombre hostname a la maquina virtual.
- q conf: Para ver la configuracion actual.
- q ps a: Para ver los procesos en ejecucion en la maquina virtual.
- q quit: Para salir de la consola pero dejar la maquina virtual activa.
- q halt: Para detener la maquina virtual y salir de la consola.
Ley de Moore Tri-Gate
23.10.2012 17:10Ley de Moore:
Ley de Moore: El número de transistores que pueden integrarse en un
Tri-Gate
GNU Parallel
22.10.2012 16:59una herramienta para el intérprete de comandos que permite la ejecución concurrente de tareas, tanto local como remotamente.
para comenzar a trabajar con GNU Parallel en Linux, sigue estos sencillos pasos:
1. Descarga la versión más reciente que encuentres en el sitio oficial. Al día de hoy es la 20101202:
$ wget http://ftp.gnu.org/gnu/parallel/parallel-20101202.tar.bz2
2. Descomprime e ingresa al directorio
$ tar jxf parallel-20101202.tar.bz2
$ cd parallel-20101202/
3. Sigue los tres pasos habituales: configura, compila e instala.
$ ./configure
$ make
$ sudo make install
VENTAJAS
- facilita la tarea de procesar múltiples archivos simultáneamente
- evita que se mezclen tareas entre si.
-
Al distribuir las tareas entre otras máquinas de la red, la opción --trc simplifica el proceso de envío
EJEMPLOS
¿Por qué la computación paralela?
La única esperanza para computadoras más rápidas casi todo cálculo realizado durante los primeros cuarenta años de la historia de la computadoras podrían llamarse secuencial. Una de las características de secuencial cálculo es que emplea un único procesador para resolver algún problema.
La unidad flop es una medida ampliamente utilizada de rendimiento de la memoria de acceso. Es igual a la velocidad a la que una máquina puede realizar flotante de precisión simple operaciones de punto, es decir, el número de este tipo de operaciones el equipo puede realizar en una unidad de tiempo - segundos en nuestro caso.
Paralelismoen la vida real
El mundode la informáticahasta hace pocoestaba dominada por elmodo secuencial
de pensar.De hecho, el procesamiento secuencialha sido muy exitosoy tiene
establecido altos estándares queel procesamiento en paralelotendrá queprobardifícil de igualar.
Un ejemplo más interesante
El trucode la canalizaciónque acabamos de mencionarprobablemente parecedemasiadoobvio yunapuede pensarque podríamosadaptarfácilmentelas máquinassecuencialesenunacadena de montajemodapara simularcanalización.De hecho, los primeros intentos para la construcciónparalelaordenadoresutilizanexactamenteestaidea, produciendo la llamadasistólicao linealmatrices.
Perola idea tienetambiénaplicacióndentro dela arquitectura del procesadorsecuencial.Considere la posibilidad deun"secuencial"procesadorde procesamiento deinstrucciones de códigode montaje. Típicamente, cada instrucciónse divideencinco piezasy se ejecutanenunductode la moda.De hecho,hoy en díacadaprocesador secuencialesfabricadoaprovechándosede paralelismo en laforma de instruccionespipelining.
Paralelosolucionesvssecuenciales -La mágicacaja
Probablemente elprimer enfoquepuede empezarpara diseñar unalgoritmoparalelo
es modificar yparalelizarununasecuenciaexistente.Seríabonito si
alguienhabía escrito uns2p.cprograma que tomacomo entrada unprogramasecuencial
y produceun programa equivalenteparalelo quefunciona mucho más rápido
y exhibeun buenequilibrio de carga. Después de todo,esto no es muy
difícil dehacer por elproblema de inicializaciónque vimosantes:no hay másyconvertirlo enun código equivalenteen paraleloque dividelasoperaciones
realizado por elnúmero de procesadores disponibles. Esta soluciónsimple,de
por supuesto, requierequeno hay dependenciasde datosentreoperationsassigned
a procesadores diferentes.
Para produciralgoritmossignificativamente más rápidoparalelas.Al mismo tiempo,
aúnmenos los quetienen modificacionesparalelosobvioso simples.Por otra parte,
problemas que ocurrena tenersolucionessimplesnonecesariamentesecuenciales
tiene una soluciónprácticaparalela, a veces no tienen unparaleloeficiente
solucióna todos.
Las redesde interconexión
La computación paralelallegóa la edaddemediados de los ochenta, cuando los fabricantes de chips
fueron capaces de producirgrandes cantidades dechips de procesadoreconómicamente. Por lo tanto,
de repente,tener un montón defichasque contienenlos procesadoresjunto conpequeño local
memorias (los elementos de procesamiento dellamadaso PES)no fue un problema.
Nuevos problemassurgieron, sin embargo:
1. ¿cómoconectartodosestos procesadores paracrearuna máquina rápidade
cooperandoelementosde procesamiento?
2. ¿Cómo se programauna máquina?
Los investigadoresy fabricantes, en los últimos diez años se havenido
convarios diseños deredes de interconexiónpara hacercomunicanlas empresas públicas.
Comerciales máquinas paralelas y simuladores
La última década vio un gran número de nuevas máquinas paralelas de mayor o menor éxito, capacidades, potencia de cálculo y las etiquetas de precios. Existe un informe en curso enumerando el máximo rendimiento de las 500 supercomputadoras en el mundo que se actualiza con regularidad. El funcionamiento máximo es el máximo rendimiento teórico de equipo. (También significa que el rendimiento mínimo que el fabricante
asegura que nunca se alcanzará.)
¿Quién necesitacomputadoras paralelas?
En el comienzo deeste capítulo,señaló que elapetito humano por
una mayorpotencia de cálculono termina nunca.Esto puede parecerque necesitajustificación;la mayoría dela gente considera quelas computadorasya extremadamentepotente yrápido.Siutilizar un ordenador personalpara escribir cartas, navegar por Internet, equilibrando su chequeray jugando al ajedrez, entonces usted probablemente no necesitamáspotencia de cálculo(a menos queusted es unjugador de ajedrezmuybueno).
Por la otramano, hay varias aplicaciones científicasque sin dudapodría utilizarmuchomáspotencia de cálculo.Entre ellos:
Gráficos: Representación de volumen,la realidadvirtual,el trazado de rayos.
Simulación:prediccióndel tiempo, la verificación Chip,la exploración petrolera.
Procesamiento de imágenes: Mejora de la imagen, la extracción de características.
InteligenciaArtificial:reconocimientode imagen, reproducción de juegos (ajedrez, GO, etc.)
ParaleloI /O -El próximo desafío
A pesar de que el rendimiento de procesamiento de los ordenadores han aumentado
considerablemente en los últimos años, de entrada / salida (I / O) dispositivos no se han mantenido con esta tendencia. Mientras que la velocidad del procesador recibe aproximadamente ocho veces más rápido cada diez años, el acceso a la memoria principal y el disco disminución del tiempo de ciclo por sólo un tercio en el mismo período de tiempo. Como te das cuenta, esta se ensancha la brecha entre E / S y los tiempos de procesamiento.
Por lo tanto, nuestra capacidad de utilizar ordenador muy rápido eficiente, depende de nuestra
capacidad para alimentar con datos suficientemente rápido.
PARALELISMO
11.10.2012 17:17
Paralelismo
El paralelismo en la informática es una función que realiza el procesador para ejecutar varias tareas al mismo tiempo, es decir puede realizar varios cálculos simultáneamente, basado en el principio de dividir los problemas grandes para obtener varios problemas pequeños que son posteriormente solucionados en paralelo
Aplicaciones
El empleo de la computación paralela se convierte cada da en mas grande y rápida muchos problemas considerados anteriormente muy largos y costosos se han podido solucionar. El paralelismo se ha utilizado para muchas tematicas diferentes, desde bioinformatica para hacer plegamiento de proteínas hasta economía para hacer simulaciones en matematica financiera
Tipos de paralelismo informática
Ø Nivel de bit
Ø Nivel de instrucción
Ø Nivel de datos
Ø Nivel de tarea
Nivel de bit
Una operación bit a opera sobre números binarios a nivel de sus bits individuales. Es una acción primitiva rápida, soportada directamente por los procesadores. En procesadores simples de bajo costo, las operaciones de bit a bit, junto con los de adición y sustracción, son típicamente sustancialmente más rápidas que la multiplicación y la división, mientras que en los modernos procesadores de alto rendimiento usualmente las operaciones se realizan a la misma velocidad
Nivel de instrucción
Este mecanismo consiste en romper el flujo secuencial de instrucciones para simultanear la ejecución de varias en el mismo procesador. Existen diferentes estrategias para lograrlo.
Segmentación
Las instrucciones se dividen en etapas de igual duración y que utilizan una unidad funcional diferente cada una.
Superescalaridad
Consiste en la replicación de unidades funcionales de manera que se puedan ejecutar varias instrucciones a la vez en el mismo chip. Es compatible con la segmentación.
Supersegmentación
Es aquél que presenta varios niveles de segmentación. Así algunas de las etapas que mencionamos para los procesadores segmentados, es dividida a su vez en dos o más etapas de manera que se permite que haya dos instrucciones a la vez dentro de la misma etapa y unidad funcional sin tener que replicar esta.
Nivel de datos
es un paradigma de la programación concurrente que consiste en subdividir el conjunto de datos de entrada a un programa, de manera que a cada procesador le corresponda un subconjunto de esos datos. Cada procesador efectuará la misma secuencia de operaciones que los otros procesadores sobre su subconjunto de datos asignado
Nivel de tarea
es un paradigma de la programación concurrente que consiste en asignar distintas tareas a cada uno de los procesadores de un sistema de cómputo. En consecuencia, cada procesador efectuará su propia secuencia de operaciones.
En su modo más general, el paralelismo de tareas se representa mediante un grafo de tareas, el cual es subdividido en subgrafos que son luego asignados a diferentes procesadores
El paralelismo también se utiliza en los simuladores aéreos que utilizan en las escuelas de aviación.
Desventajas
Ø Requieren de una gran numero de ciclos de Procesamiento o acceso a una gran cantidad de datos
Ø Encontrar un hardware y un software que permitan brindar estas utilidades comúnmente proporciona inconvenientes de costos seguridad y disponibilidad
Ventajas
Ø Brinda a las empresas, instituciones y usuarios en general en beneficios de la velocidad
Ø Ventaja competitiva, provee una mejora de los tiempo para lo producción de nuevos productos y servicios
Ø Colaboración y flexibilidad operacional
Clasificación de los sistemas paralelos en los sistemas informáticos
Ø SISD
Ø SIMD
Ø MISD
Ø MIMD
Ø FLUJO DE CONTROL
Ø FLUJO DE DATOS
SISD
SISD (siglas en inglés de Single Instruction, Single Data, en español: "una instrucción, un dato") es un término que se refiere a una arquitectura en la que un sólo procesador, un uniprocesador, ejecuta un sólo flujo de instrucciones, para operar sobre datos almacenados en una única memoria.
SIMD
SIMD (siglas en inglés de Single Instruction, MultipleData, en español: Una Instrucción, Múltiples Datos) es una técnica empleada para conseguir paralelismo a nivel de datos.
Los repertorios SIMD consisten en instrucciones que aplican una misma operación sobre un conjunto más o menos grande de datos. Es una organización que influye muchas unidades de procesamiento bajo la supervisión de una unidad de control común.
MISD
MISD (siglas en inglés de MultipleInstruction, Single Data, en español: Múltiples Instrucciones, Un Dato) es un tipo de arquitectura de computación paralela donde muchas unidades funcionales realizan diferentes operaciones en los mismos datos
MIMD
MIMD (del inglés MultipleInstruction, Múltiple Data o Múltiples instrucciones, Múltiples datos) es una técnica empleada para lograr paralelismo. Las máquinas que usan MIMD tienen un número de procesadores que funcionan asíncronos e independientemente. En cualquier momento, cualquier procesador puede ejecutar diferentes instrucciones sobre distintos datos.
LLAMADAS A PROCEDIMIENTOS
20.09.2012 13:58
Permiten a programas o sistemas invocar procedimientos localizados en otras computadoras un proceso x localizado en una maquina “A” pueden llamar a un procedimiento localizado en una maquina llamada “B”.la transmisión de la información puede llevarse entre procesos por medio de parámetros (valor o referencia investigar).
Variable por Referencia
Los tipos creados por referencia almacenan la dirección de memoria en la que se encuentra un dato determinado de manera que usaremos esa dirección de memoria para acceder de forma indirecta al dato.
Variable por Valor
Los tipos por valor almacenan datos a los que se puede acceder de forma directa
Existen varios tipos de RPC los siguientes son los más comunes:
ONC desarrollado por sunmacrosystem que trabaja en sistemas Linux
DCE: trabaja en OSF
D-COM: utilizado en Windows
ONC RPC
Abreviación del inglés Open Network Computing Remote Procedure Call, es un protocolo de llamada a procedimiento remoto (RPC) desarrollado por el grupo ONC de Sun Microsystems como parte del proyecto de su sistema de archivos de Red NFS, algunas veces se lo denomina Sun ONC o Sun RPC. Trabaja sobre los protocolos TCPy UDP. La codificación de datos se realiza utilizando el protocolo XDR (presentación de datos).
DCE
Remote Procedure es un sistema de llamada a procedimiento remoto del conjunto de software OSF DCE. "Distributed Computing Environment, es el sistema de llamada a procedimiento remoto desarrollado para el entorno de la informática distribuida (DCE). Este sistema permite a los programadores escribir software distribuido como si fuera todos los que trabajan en el mismo equipo, sin tener que preocuparse por el código de red subyacente.
D-COM
Distributed Component Object Model (DCOM), en español Modelo de Objetos de Componentes Distribuidos, es una tecnología propietaria de Microsoft para desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre sí. Extiende el modelo COM de Microsoft y proporciona el sustrato de comunicación entre la infraestructura del servidor de aplicaciones COM+ de Microsoft. Ha sido abandonada en favor del framework .NET.
PROBLEMAS AL IMPLEMENTAR SISTEMAS “RPC”
1. Homogeneidad. Los sistemas se enfrentan a cambios en las arquitecturas o versiones de los sistemas operativos
2. Trabajan en el modelo cliente servidor por lo que la caída de cualquiera de los dos provocara perdida de los datos
3. El mensaje de petición del cliente se pierde al establecer una comunicación
4. El mensaje de respuesta del servidor se pierde al responder a la petición
..
14.09.2012 17:49
Diferencia entre sistema operativo distribuido, un sistema operativo multiprocesador y un sistema operativo de red.
La diferencia fundamental de un sistema distribuido con los sistemas en red es que la ubicación del recurso es transparente a las aplicaciones y usuarios, por lo que, desde este punto de vista, no hay diferencia con un sistema de tiempo compartido.
Diferencia entre un sistema operativo distribuido y un sistema distribuido
Existe una diferencia vital entre los sistemas operativos distribuidos y los sistemas distribuidos. Podríamos llamar a un Sistema Distribuido una capacidad del Sistema operativo Distribuido, es decir: Un sistema distribuido es la relación que existe entre una computadora independiente y un servidor de archivos o dispositivos compartidos. Cada computadora ejecuta sus programas en su memoria propia haciendo uso de su único
.
14.09.2012 17:47
Sistemas Distribuidos:
• Pueden ser considerados redes convencionales de computadores independientes.
• Los mismos tienen múltiples imágenes del sistema, a partir de que cada nodo tiene su propio sistema operativo,
Cluster
• Una colección de estaciones de trabajo o PCs que están conectadas mediante alguna tecnología de red.
• Para fines de computación paralela estas PCs o estaciones de trabajo estarán conectadas mediante una red de muy alta velocidad.
• Un cluster trabaja como una colección integrada de recursos y pueden tener una imagen simple del sistema abarcando todos sus nodos.
Grid
• Un gran conjunto de Sitios que están conectadas mediante una red global de alta velocidad
(10 Gb/s) que tienen una alta capacidad de procesamiento (entre 1000 a 10000 GFLOPS)
y un gran capacidad de almacenamiento (entre 1000 a 10000 TB)
• Los Sitios interconectados utilizan Procesamiento Distribuido y P2P (Peer to Peer Architecture) con desarrollos de SW novedosos adicionales con interfaces estándar abiertas.
• Utiliza nuevas técnicas de Autoadministración, auto escalabilidad y auto reparación
Clasificación de los sistemas operativos
14.09.2012 17:38
Respecto al modo de trabajo
Se pueden clasificar los sistema operativos, partiendo de este punto de vista, en on line (o interactivos) y off line (o batch o por lotes).
Respecto al número de usuarios
Si se tiene en cuenta el número de usuarios se puede hablar de sistemas monousuario y multiusuario (o multiacceso). En los primeros se puede acceder al ordenador mediante un único terminal, frente a los varios terminales de acceso simultáneo que permiten los segundos.
Respecto al propósito
Atendiendo al uso que quieran dar los usuarios al ordenador, los sistema operativos se pueden dividir en sistemas de propósito específico y sistemas de propósito general.
Un ejemplo de sistema de propósito específico es un sistema de tiempo real.
Los sistemas de propósito general se caracterizan por tener un gran número de usuarios trabajando sobre un amplio abanico de aplicaciones
Al existir varios procesadores
Los ordenadores con más de una CPU se clasifican en multiprocesadores y en sistemas distribuidos (o multicomputadores). En un multiprocesador los procesadores comparten memoria y reloj (son síncronos).
Ejemplos de Sistemas Distribuidos
- Solaris
- Mach
- Chorus
- Amoeba
Clasificaciones del Hardware de los SOD
MPP
• Es un gran sistema de procesamiento paralelo con una arquitectura que no comparte nada.
• Consiste en cientos de elementos de procesamiento los cuales están interconectados por un Switch o red de alta velocidad.
• Cada nodo puede tener una variedad de componentes de hardware, pero generalmente consisten de una memoria central y de uno o varios procesadores.
SMP
• Poseen desde 2 a 64 procesadores y pueden ser considerados como una arquitectura que comparte todo.
• En estos sistemas todos los procesadores comparten todos los recursos globales disponibles (bus del sistema, memoria, sistemas de I/O, etc.);
• Una copia sencilla del Sistema Operativo corre en estos sistemas.
CC-NUMA
• Es un sistema multiprocesador escalable.
• Como en SMP, cada procesador en un sistema CC-NUMA tiene una vista global de toda la memoria.
• Este tipo de sistema consigue su nombre (NUMA) a partir de los tiempos no uniformes que le toma para acceder ya sea a la parte memoria más cercana, así como a la más remota.
CONCEPTOS
05.09.2012 16:35
Sistema operativo distribuido
Es un sistema en el cual componentes conectados comparten sus recursos trabajando en coordinación como si fuera uno solo
Sistema de archivos distribuidos
Es un sistema que permite compartir tanto archivos como recursos dentro de los host de una red
Sistema basado en objetos distribuidos
Permite realizar múltiples y simultaneas escrituras teniendo una gran coordinación entre cada uno de ellas
Sistema distribuido basado en web
Permite guardar todas las tareas en servidores dispersos geográficamente para brindar servicios a los clientes, siendo esto transparente para ellos
SISTEMAS OPERATIVOS DISTRIBUIDOS
04.09.2012 15:18
Introducción
Su misión principal consiste en facilitar el acceso y la gestión de los recursos distribuidos en la red. Los usuarios pueden acceder a recursos remotos de la misma manera en que lo hacen para los recursos locales.
Sistema Distribuido: colección de componentes hardware y/o software situados en ordenadores autónomos unidos por una red
El Software de un Sistema Distribuido permite a los ordenadores:
- Coordinar sus actividades
- Compartir los recursos del sistema
Los sistemas operativos distribuidos están basados en las ideas básicas:
- Transparencia
- Eficiencia
- Flexibilidad
- Escalabilidad
Transparencia
El concepto de transparencia de un Sistema operativo distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red.
Eficiencia
La idea base de los sistemas operativos distribuido es la de obtener sistemas mucho mas rápidos que los utilizados de procesador único.
Flexibilidad
La Flexibilidad dentro de sistema operativo distribuido, describe su capacidad para soportar cambios, actualizaciones y mejoras que le permitan irse desarrollando al mismo ritmo de la evolución tecnológica
Escalabilidad
Un sistema operativo distribuido debería funcionar tanto para una docena de computadoras como para mil en una sola red.
Ventajas:
- Economía
- Velocidad
- Confiabilidad
- Crecimiento por incrementos.
Desventajas:
- Existe poco Software para este tipo de sistemas
- Saturación de la red
- Poca seguridad