La computación distribuida es un método de tratamiento por ordenador en qué diversas partes de un programa se funcionan con simultáneamente en dos o más computadoras que están comunicando con uno a sobre una red. La computación distribuida es un tipo de dividido en segmentos o la computación paralela, pero el 3ultimo término es el más de uso general referir al proceso en qué diversas partes de un programa funcionan simultáneamente en dos o más procesadores que son parte de la misma computadora. Mientras que ambos tipos de proceso requieren que un programa dividir-esté dividido en las secciones que pueden funcionar simultáneamente, la computación distribuida también requiere que la división del programa considera los diversos ambientes en los cuales las diversas secciones del programa funcionarán. Por ejemplo, dos computadoras son probables tener diversos sistemas de ficheros y diversos componentes de hardware.

Un ejemplo de la computación distribuida es el BOINC, un marco en el cual los problemas grandes se puedan dividir en muchos pequeños problemas que se distribuyan a muchas computadoras. Más adelante, los pequeños resultados se vuelven a montar en una solución más grande.

La computación distribuida es un resultado natural de usar redes para permitir a las computadoras comunicar eficientemente. Pero la computación distribuida es distinta del establecimiento de una red o hecho fragmentos de la computadora que computa. Este 3ultimo refiere a dos o más computadoras que obran recíprocamente con uno a, pero no, típicamente, compartiendo el proceso de un solo programa. El World Wide Web es un ejemplo de una red, pero no un ejemplo de la computación distribuida.

Hay tecnologías numerosas y estándares usados para construir cómputos distribuidos, incluyendo alguno que se diseñen y se optimicen especialmente para ese propósito, tal como llamadas de procedimiento alejado (RPC) o invocación alejada (RMI) del método o .

Organización

La organización de la interacción entre cada computadora es de gran importancia. Para poder utilizar la gama y los tipos posibles más anchos de computadoras, el protocolo o el canal de comunicaciones no debe contener o utilizar ninguna información que no se pueda entender por ciertas máquinas. El cuidado especial debe también ser tomado que los mensajes están entregados de hecho correctamente y que los mensajes inválidos están rechazados que derribarían de otra manera el sistema y quizás el resto de la red.

Otro factor importante es la capacidad de enviar software a otra computadora de una manera portable de modo que pueda ejecutar y obrar recíprocamente con la red existente. Esto puede siempre no ser posible o práctico al usar el hardware y recursos de diferenciación, en este caso otros métodos se deben utilizar por ejemplo la cruz-compilación o manualmente virar de este software hacia el lado de babor.

Metas y ventajas

Hay muchos diversos tipos de sistemas de cálculo distribuido y muchos desafíos a superar en con éxito el diseño de uno. El objetivo principal de un sistema de cálculo distribuido es conectar usuarios y recursos en un manera escalable transparente de, abierta, y . Este arreglo es ideal drástico más avería y más de gran alcance tolerantes que muchas combinaciones de sistemas informáticos independientes .

Franqueza

La franqueza es la característica de sistemas distribuidos tales que cada subsistema está continuamente abierto a la interacción con otros sistemas (véase las referencias). Los protocolos de los servicios de Web son los estándares que permiten a sistemas distribuidos ser extendidos y ser escalados. Un sistema abierto que escala tiene generalmente una ventaja sobre un sistema perfectamente cerrado y autónomo.

Por lo tanto, abrir los sistemas distribuidos se requieren para hacer frente a los desafíos siguientes:

;
que algo se publica una vez en un sistema abierto, él del
de Monotonicity no puede ser retirado. ; Subsistemas del del pluralismo diversos de un sistema distribuido abierto incluyen heterogéneo, el traslapo y la información posiblemente que está en conflicto. No hay árbitro central de la verdad en sistemas distribuidos abiertos. ; El
ilimitado del
del nondeterminism asincrónico, diversos subsistemas puede subir e ir abajo y los enlaces de comunicaciones pueden venir adentro y salir entre los subsistemas de un sistema distribuido abierto. Por lo tanto el tiempo que tomará para terminar una operación no puede ser limitado por adelantado (véase el nondeterminism ilimitado ).

Desventajas y desventajas

Errores de la computación distribuida

Ediciones técnicas

Si no planeado correctamente, un sistema distribuido puede disminuir la confiabilidad total de cómputos si la disponibilidad de la O.U de un nodo puede causar la interrupción de los otros nodos. El Leslie Lamport quipped famoso eso: " Un sistema distribuido es uno en el cual la falta de una computadora usted incluso no sabía que existido puede rendir su propia computadora unusable."

La localización de averías y los problemas del diagnóstico en un sistema distribuido pueden también llegar a ser más difíciles, porque el análisis puede requerir la conexión con los nodos alejados o la inspección de la comunicación entre los nodos.

Muchos tipos del cómputo no están bien adaptados para los ambientes distribuidos, típicamente debido a la cantidad de la comunicación o de sincronización de la red que sería requerida entre los nodos si la anchura de banda, el estado latente, o los requisitos de comunicación son demasiado significativos, después las ventajas de la computación distribuida pueden ser negadas y el funcionamiento puede ser peor que un ambiente non-distributed.

Problemas relacionados con el proyecto

Los proyectos de la computación distribuida pueden generar los datos que son propietarios a la industria privada, aunque el proceso de generar esos datos implica los recursos de voluntarios. Esto puede dar lugar a controversia mientras que la industria privada se beneficia de los datos que se genera con la ayuda de voluntarios. Además, algunos proyectos de la computación distribuida, tales como biología proyectan esa puntería para desarrollar millares o millones de " molecules" del candidato; para solucionar varios problemas médicos, puede crear cantidades extensas de informaciones en bruto. Esta información en bruto puede ser inútil por sí mismo sin el refinamiento de las informaciones en bruto o de la prueba de los resultados del candidato en experimentos del mundo real. Tal refinamiento y experimentación pueden ser tan costosos y desperdiciadores de tiempo que puede literalmente tomar a décadas para tamizar con los datos. Hasta que se refinen los datos, ningunas ventajas se pueden adquirir del trabajo computacional.

Otros proyectos sufren de la carencia de la planificación a nombre de sus autores bienintencionados. Estos proyectos mal previstos pueden no generar los resultados que son palpables, o pueden no generar datos que el resultado en innovaciones reales en el campo ellos fue realizado en última instancia adentro. Detectando que un proyecto puede no generar datos útiles, los gestores de proyecto pueden decidir terminar precipitadamente el proyecto sin resultados definitivos, dando por resultado el despilfarro de los recursos de la electricidad y de computación usados en el proyecto. Los voluntarios pueden sentir decepcionantes y abusados por tales resultados. Hay un coste de oportunidad obvio de dedicar tiempo y energía a un proyecto que sea en última instancia inútil, cuando ese poder de computación se habría podido dedicar a un mejor proyecto previsto de la computación distribuida que generaba resultados útiles, concretos.

Otro problema con proyectos de la computación distribuida es que pueden dedicar recursos a los problemas que pueden en última instancia no ser solubles, o a los problemas que son mejor perseguido más adelante en el futuro, cuando el poder de computación de escritorio se convierte rápidamente bastante para hacer la búsqueda de tales soluciones práctica. Algunos proyectos de la computación distribuida pueden también intentar utilizar las computadoras para encontrar soluciones por los modelos matemáticos o físicos de cómputo. Con tales proyectos hay el riesgo que el modelo no se puede diseñar bien bastante para generar eficientemente soluciones concretas. La eficacia de un proyecto de la computación distribuida por lo tanto es determinada en gran parte por la sofisticación de los creador del proyecto. -

Arquitectura

Las varias arquitecturas del soporte físico y de los programas se utilizan para la computación distribuida. En un nivel inferior, es necesario interconectar las CPU múltiples con una cierta clase de red, sin importar si esa red está impresa sobre una tarjeta de circuitos o compuesta de dispositivos y de cables débilmente acoplados. En un de alto nivel, es necesario interconectar los procesos que funcionan en esas CPU con una cierta clase de sistema de comunicación.

La programación distribuida típicamente baja en una de varias arquitecturas básicas o categorías: El servidor de cliente, arquitectura, arquitectura, de la grada 3 de la N-grada distribuyó el acoplador flojo de los objetos, o el acoplador apretado .
&mdash del servidor de cliente ; El código de cliente elegante entra en contacto con el servidor para los datos, después los formatos y las exhibiciones él al usuario. La entrada en el cliente está confiada de nuevo al servidor cuando representa un cambio permanente.
&mdash de la arquitectura de la grada 3; Tres sistemas de la grada mueven la inteligencia del cliente a una grada media para poder utilizar clientes apátridas. Esto simplifica el despliegue de uso. La mayoría de las aplicaciones web son 3-Tier.
&mdash de la arquitectura de la N-grada; La N-Grada se refiere típicamente a las aplicaciones web que más adelante sus peticiones a otros servicios de empresa. Este tipo de uso es el que está más responsable del éxito de los servidores de aplicaciones
El juntó firmemente el &mdash de (arracimado); se refiere típicamente a un sistema de las máquinas alto integradas que funcionan con el mismo proceso paralelamente, subdividiendo la tarea en las piezas que son hechas individualmente por cada uno, y después pone detrás junto para hacer el resultado final.
&mdash entre iguales ; una arquitectura donde no hay máquina o máquinas especial que proporcionan un servicio o maneja los recursos de red. En lugar todas las responsabilidades se dividen uniformemente entre todas las máquinas, conocidas como pares. Los pares pueden servir ambos como clientes y servidores.
&mdash espacial ; refiere a una infraestructura que cree la ilusión (virtualización) de un solo tratar-espacio. Los datos transparente se repliegan según necesidades del uso. Desemparejando a tiempo, se alcanza el espacio y la referencia.

Otro aspecto básico de la arquitectura de la computación distribuida es el método de comunicar y de coordinar el trabajo entre procesos concurrentes. A través del vario mensaje que pasa protocolos de, los procesos pueden comunicar directo el uno con el otro, típicamente en una relación maestro/satélite . Alternativo, un " base de datos-centric" la arquitectura puede permitir la computación distribuida que se hará sin ninguna forma de la comunicación entre procesos directo, utilizando una base de datos compartida .

Concurrencia

La computación distribuida ejecuta una clase de la concurrencia . Correlaciona firmemente con la programación concurrente tanto que no están enseñados a veces como temas distintos.

Sistemas de multiprocesador

Un sistema del multiprocesador es simplemente una computadora que tiene más de una CPU en su placa madre. Si el sistema operativo se construye para aprovecharse de esto, puede funcionar con diversos procesos (o diversos hilos de rosca que pertenecen al mismo proceso) en diversas CPU.

Sistemas multifilares

Las CPU de Intel a partir de la última era del Pentium 4 (los corazones de Northwood y del Prescott) emplearon una tecnología llamada el Hyperthreading que permitió más de un hilo de rosca (generalmente dos) al funcionamiento en la misma CPU. El T1 más reciente, Athlon de UltraSPARC de Sun de AMD 64 X2, Athlon FX, Opteron, Pentium D, Intel de AMD de AMD de Intel quita el corazón a, el Intel quita el corazón a 2 corazones múltiples del procesador de la característica de los procesadores de Xeon de y de Intel también para aumentar el número de hilos de rosca concurrentes que pueden funcionar con.

Sistemas de Multicomputer

Un multicomputer se puede considerar para ser una computadora débilmente acoplada NUMA o un racimo firmemente juntado . Multicomputers es de uso general cuando la energía fuerte del cálculo se requiere en un ambiente con el espacio físico restricto o la corriente eléctrica.

Los surtidores comunes incluyen los sistemas informáticos del Mercury, las computadoras de CSPI, y del CIELO.

Las aplicaciones comunes incluyen los dispositivos de proyección de imagen médicos 3D y el radar móvil.

Taxonomías computacionales

Los tipos de sistemas distribuidos se basan en la taxonomía de Flynn de sistemas; sola instrucción, solos datos (SISD), instrucción sola, datos múltiples (SIMD), instrucción múltiple, solos datos (MISD), e instrucción múltiple, datos múltiples (MIMD). Otras taxonomías y arquitecturas disponibles en la arquitectura de computadora y en : Categoría: Arquitectura de computadora .

Racimos de la computadora

considera también: Racimo que computa el

Un racimo consiste en las máquinas independientes múltiples que actúan paralelamente a través de una red de alta velocidad local. La computación distribuida diferencia del racimo que computa en que las computadoras en un Distributed Computing Environment no están funcionando típicamente exclusivamente el " group" tareas, mientras que las computadoras arracimadas generalmente se juntan mucho más firmemente. La computación distribuida también consiste en a menudo las máquinas que se separan extensamente geográficamente.

Computación de la rejilla

considera también: Rejilla que computa el

Una rejilla utiliza los recursos de muchas computadoras separadas, conectados libremente por una red (generalmente el Internet), para solucionar problemas en grande del cómputo. Las rejillas públicas pueden utilizar tiempo ocioso en muchos millares de computadoras en el mundo entero. Tales arreglos permiten la dirección de los datos que requerirían de otra manera la energía de los superordenadores costosos o habrían sido imposibles de analizar.

Idiomas

Casi cualquier lenguaje de programación que tenga acceso al hardware lleno del sistema podría manejar la programación distribuida dada bastante tiempo y código. Las llamadas de procedimiento alejado distribuyen comandos del sistema operativo sobre una conexión de red. Los sistemas tienen gusto CORBA, DCOM de Microsoft, Java RMI y de otros, intento de trazar diseño orientado al objeto a la red. Los sistemas débilmente acoplados comunican a través de los documentos intermedios que son típicamente legibles (e. el XML, HTML, SGML, el X.

Las idiomas adaptaron específicamente para la programación distribuida son:
Lenguaje de programación del Ada
Lenguaje de programación de Alef
Lenguaje de programación E
Lenguaje de programación del Erlang
Lenguaje de programación Limbo
Lenguaje de programación de la onza
ZPL (lenguaje de programación)
Lenguaje de programación de la orca

Ejemplos

Proyectos

considera también: La lista de computación distribuida proyecta el

Una variedad de proyectos de la computación distribuida han crecido estos últimos años. Muchos se funcionan sobre una base voluntaria, e implican a usuarios que donan su energía de cómputo inusitada de trabajar en problemas de cómputo interesantes. Los ejemplos de tales proyectos incluyen el proyecto de Folding@home del departamento de la química de la Universidad de Stanford, que se centra en simulaciones del plegamiento de proteína para encontrar las curaciones de la enfermedad y para entender sistemas biofísicos; Rejilla, un esfuerzo de la comunidad del mundo para crear la rejilla computacional pública más grande del mundo para abordar los proyectos de investigación científica que benefician a humanidad, funcionados con y financiados por IBM ; El SETI@home, que se centra en analizar datos del radio-telescopio para encontrar la evidencia de señales inteligentes del espacio, recibió por el laboratorio de ciencias de espacio en la Universidad de California, Berkeley ; y Distributed.net, que se centra en la fractura de varias cifras criptográficas. Los proyectos de la computación distribuida también implican a menudo la competición con otros sistemas distribuidos. Esta competición puede estar para el prestigio, o puede ser una cuestión de usuarios de tentación para donar capacidad de cálculo a un proyecto específico. Por ejemplo, las razas del stat son una medida del trabajo que un proyecto de la computación distribuida ha podido computar durante el último día o semana. Esto se ha encontrado para ser tan importante en la práctica que virtualmente todos los proyectos de la computación distribuida ofrecen los análisis estadísticos en línea de sus funcionamientos, actualizados por lo menos diariamente si no en tiempo real.

Ver también


errores la computación distribuida
: Categoría: Lenguajes el de programación concurrente
Lista de las publicaciones de la computación distribuida
Computación paralela
Agilidad de la red
Servidor de aplicaciones
Componentry del software
Distributed Computing Environment
Alto-Rendimiento de procesamiento que computa
Lista de los proyectos de la computación distribuida

.

  • Zenithic
  • Robert Gunter
    Random links:El hombre de la luz tenue | El municipio de Pillsbury, Minnesota | Lengua Romani | Araña Jerusalén | Douglas F.C. real.

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">