Computación distribuída

La computación distribuida  es una forma de resolver problemas computacionales que consumen mucho tiempo usando varias computadoras , la mayoría de las veces combinadas en un sistema de computación paralelo . [1] La computación distribuida también es aplicable en sistemas de control distribuido. [2]

Los cálculos secuenciales en sistemas distribuidos se realizan teniendo en cuenta la solución simultánea de muchos problemas. Una característica de los sistemas informáticos multiprocesador distribuido , en contraste con las supercomputadoras locales , es la posibilidad de un aumento ilimitado en el rendimiento debido a la escala. [2] :550 Los sistemas informáticos heterogéneos , débilmente acoplados, con un alto grado de distribución se distinguen en una clase separada de sistemas distribuidos: una cuadrícula .

Historia

El trabajo en computación distribuida con un propósito muy aplicado, para fines militares, es decir, la automatización de comunicaciones secretas y el procesamiento de información de inteligencia, se ha llevado a cabo intensamente en los Estados Unidos desde la década de 1960 . El desarrollo de tecnologías informáticas distribuidas y la creación de sistemas de información distribuidos en los Estados Unidos por orden de la Agencia de Proyectos de Investigación Avanzada de Defensa de los EE. UU. , Los tipos de fuerzas armadas y servicios (agencias) en la estructura del Departamento de Defensa de los EE. UU. Fueron llevados a cabo por unidades de investigación de empresas y universidades: [3]

Como parte del trabajo de investigación fundamental , investigación y desarrollo en curso, se desarrollaron los sistemas de software y hardware correspondientes para los lenguajes de programación de bajo nivel (orientados a máquina) ya existentes , software especial con protección criptográfica, etc. [3]

En 1973, John Schoch y John Hupp del centro de investigación Xerox PARC de California escribieron un programa que se conectaba a la PARC LAN por la noche y obligaba a las computadoras en funcionamiento a realizar cálculos [4] .

En 1977, en la NETI (NSTU, Novosibirsk), en el Departamento de Ingeniería Informática, bajo la dirección de V. I. Zhiratkov, se desarrolló un sistema de computación distribuida a partir de tres computadoras "Minsk-32" con hardware y software original que admite protocolos de la a nivel físico, de canal y de red, y asegurando la ejecución de tareas paralelas. Una máquina estaba en el Centro de Computación de la Universidad Técnica Estatal de Novosibirsk, y las otras dos estaban en el Centro de Computación del Instituto de Matemáticas de la Rama Siberiana de la Academia Rusa de Ciencias. La comunicación entre la NSTU y el Instituto de Matemáticas de la Rama Siberiana de la Academia Rusa de Ciencias se proporcionó a través de un canal de radio utilizando antenas direccionales. El sistema se probó mientras resolvía problemas de optimización en el campo de la economía utilizando paralelización de bloques grandes.

En 1978, el matemático soviético Viktor Glushkov estaba trabajando en el problema de la computación distribuida macrocanalizada . Propuso una serie de principios para distribuir el trabajo entre los procesadores . [2] :320 Basado en estos principios, desarrolló la computadora ES-2701 .

En 1988, Arjen Lenstra y Mark Menes escribieron un programa para factorizar números largos. Para acelerar el proceso, el programa podía ejecutarse en varias máquinas, cada una de las cuales procesaba su propio fragmento pequeño. [4] .

En 1994, David Gidi propuso la idea de organizar un proyecto masivo de computación distribuida que utiliza computadoras voluntarias (la llamada computación voluntaria ) - SETI@Home [5] . El anteproyecto científico del proyecto, desarrollado por David Gidi y Craig Kasnoff de Seattle, fue presentado en la Quinta Conferencia Internacional sobre Bioastronomía en julio de 1996 [6] .

En enero de 1996 se inició el proyecto GIMPS para la búsqueda de números primos de Mersenne , utilizando también los ordenadores de los usuarios ordinarios como red informática voluntaria.

El 28 de enero de 1997, se lanzó la competencia RSA Data Security para resolver el problema de la piratería simplemente enumerando una clave de cifrado de información RC5 de 56 bits . Gracias a una buena preparación técnica y organizativa, el proyecto, organizado por la comunidad sin fines de lucro distribuido.net , rápidamente se hizo ampliamente conocido [4] .

El 17 de mayo de 1999, SETI@home comenzó sobre la base de Grid y, a principios de 2002, se completó el desarrollo de la plataforma abierta BOINC (Berkeley Open Infrastructure for Network Computing) en la Universidad de California en Berkeley, desarrollada desde abril de 2000. , inicialmente para SETI@Home , pero el primero en la plataforma BOINC se convirtió en un proyecto Predictor@home lanzado el 9 de junio de 2004.

Informática de gestión de trabajos

El problema de distribuir varias tareas computacionales dentro de un sistema distribuido se refiere al problema de la toma de decisiones bajo incertidumbre . Este problema se considera en la teoría de la toma de decisiones y en la teoría de la incertidumbre .

Sistemas operativos distribuidos

Un sistema operativo distribuido, al asignar trabajo de forma dinámica y automática a diferentes máquinas en el sistema para su procesamiento, obliga a un conjunto de máquinas en red a procesar información en paralelo. El usuario de un sistema operativo distribuido, por lo general, no tiene conocimiento de la máquina en la que se realiza su trabajo. [una]

Un sistema operativo distribuido existe como un único sistema operativo en un sistema informático. Cada computadora en una red que ejecuta un sistema operativo distribuido realiza parte de las funciones de este sistema operativo global. Un sistema operativo distribuido une todas las computadoras en una red en el sentido de que trabajan en estrecha cooperación entre sí para utilizar de manera eficiente todos los recursos de una red informática.

Como resultado, un sistema operativo de red puede verse como un conjunto de sistemas operativos de computadoras individuales que conforman la red. Diferentes computadoras en la red pueden ejecutar el mismo o diferentes sistemas operativos. Por ejemplo, todas las computadoras en una red pueden ejecutar el mismo sistema operativo UNIX . Una opción más realista es una red que ejecuta diferentes sistemas operativos, por ejemplo, algunas de las computadoras ejecutan UNIX, algunas ejecutan NetWare y el resto ejecuta Windows NT y Windows 98 . Todos estos sistemas operativos funcionan independientemente unos de otros en el sentido de que cada uno de ellos toma decisiones independientes sobre la creación y finalización de sus propios procesos y la gestión de recursos locales. Pero en cualquier caso, los sistemas operativos de las computadoras que operan en la red deben incluir un conjunto de protocolos de comunicación mutuamente acordados para organizar la interacción de los procesos que se ejecutan en diferentes computadoras en la red y compartir los recursos de estas computadoras entre los usuarios de la red.

Si el sistema operativo de una sola computadora le permite trabajar en una red y puede compartir sus recursos y / o usar los recursos de otras computadoras en la red, entonces dicho sistema operativo de una sola computadora también se denomina sistema operativo de red.

Por lo tanto, el término "sistema operativo de red" se utiliza en dos sentidos: como un conjunto de sistemas operativos de todas las computadoras en la red y como el sistema operativo de una sola computadora que puede funcionar en la red. De esta definición se deduce que sistemas operativos como, por ejemplo, Windows NT, NetWare, Solaris, HP-UX, son sistemas operativos de red, ya que todos tienen los medios que permiten a sus usuarios trabajar en red.

Véase también

Notas

  1. 1 2 Andrew Tanenbaum , Martin van Steen. sistemas distribuidos. Principios y Paradigmas = Andrew S. Tanenbaum, Maarten van Steen. "Sistemas distribuidos. Principios y paradigmas". - San Petersburgo: Piter, 2003. - 877 p. — (Clásicos de la informática). - ISBN 5-272-00053-6 .
  2. 1 2 3 Dictionary of Cybernetics / Editado por el académico V. S. Mikhalevich . - 2do. - Kyiv: Edición principal de la Enciclopedia soviética ucraniana que lleva el nombre de M. P. Bazhan, 1989. - 751 p. - (C48). — 50.000 copias.  - ISBN 5-88500-008-5 .
  3. 12 Declaración del Dr. Stephen J. Lukasik, Director, Agencia de Proyectos de Investigación Avanzada . / Asignaciones del Departamento de Defensa para el año fiscal 1972. - 30 de abril de 1971. - P. 736-737 - 1090 p.
  4. 1 2 3 With the world on a string: Supercomputer "Popular Mechanics magazine" . Fecha de acceso: 10 de junio de 2011. Archivado el 29 de diciembre de 2009.
  5. La computadora al servicio de la ciencia: entrevista con el director de SETI@Home y BOINC, David P. Anderson . Archivado el 30 de agosto de 2011.
  6. Ilyin Yu. SETI para inteligencia extraterrestre: 24 horas en busca de \\[[MEMBRANA]], 12 de marzo de 2003 (enlace inaccesible) . Consultado el 30 de agosto de 2011. Archivado desde el original el 7 de octubre de 2011.