2.11 Computación Paralela y Distribuida (PDC)

La programación paralela y distribuida organiza, coordina y controla múltiples cálculos que ocurren al mismo tiempo en diferentes lugares. La ubicuidad del paralelismo y la distribución son consecuencias inevitables del creciente número de puertas en los procesadores, procesadores en las computadoras y computadoras en todas partes que pueden usarse para mejorar el rendimiento en comparación con los programas secuenciales, al mismo tiempo que se hace frente a la interconectividad intrínseca del mundo y la posibilidad de que algunos componentes o conexiones fallen o se comporten de manera maliciosa. La programación paralela y distribuida elimina las restricciones de la programación secuencial que requieren que los pasos computacionales ocurran en un orden serial en un solo lugar, revelando distinciones, técnicas y análisis adicionales que se aplican en cada capa de los sistemas informáticos.

En la mayoría de los usos convencionales, la programación "paralela" se centra en establecer y coordinar múltiples actividades que pueden ocurrir al mismo tiempo, la programación "distribuida" se centra en establecer y coordinar actividades que pueden ocurrir en diferentes lugares, y la programación "concurrente" se centra en las interacciones de las actividades en curso entre sí y con el entorno. Sin embargo, los tres términos pueden aplicarse en la mayoría de los contextos. El paralelismo generalmente implica alguna forma de distribución porque múltiples actividades que ocurren sin restricciones de orden secuencial suceden en múltiples lugares físicos (a menos que dependan de cambios de contexto o efectos cuánticos). Por el contrario, las acciones en diferentes lugares no necesitan tener un orden secuencial específico entre sí en ausencia de restricciones de comunicación.

Las técnicas de programación paralela, distribuida y concurrente forman el núcleo de la Computación de Alto Rendimiento (HPC), los sistemas distribuidos y, cada vez más, casi todas las aplicaciones informáticas. El área de conocimiento PDC ha evolucionado desde un conjunto diverso de temas avanzados hasta un cuerpo central de conocimiento y práctica, que impregna casi todos los demás aspectos de la informática. El crecimiento del campo ha ocurrido de manera irregular en los diferentes subcampos de la informática, a veces con diferentes objetivos, terminología y prácticas, ocultando la superposición considerable de ideas y habilidades básicas que son el foco principal de esta área de conocimiento. Casi todos los problemas con una solución secuencial también admiten soluciones paralelas y/o distribuidas; surgen problemas y soluciones adicionales solo en el contexto de la concurrencia. Casi todos los dominios de aplicación de la computación paralela y distribuida son un área de estudio y/o ingeniería bien desarrollada, demasiado grande para enumerarla.

KA Core Tier1 Core Tier2 Electivo
2.11.1 Programas: Paralelismo Declarativo     No
2.11.2 Programas: Inicio de Actividades     No
2.11.3 Programas: Propiedades de Ejecución     No
2.11.4 Programas: Distribución     No
2.11.5 Programas: Mapeos de Implementación     No
2.11.6 Programación GPU     No
2.11.7 Comunicación     No
2.11.8 Comunicación: Propiedades y Extensiones     No
2.11.9 Memoria y Consistencia     No
2.11.10 Coordinación     No
2.11.11 Coordinación: Sincronización y Atomicidad     No
2.11.12 Coordinación: Propiedades Avanzadas     No
2.11.13 Evaluación     No
2.11.14 Evaluación: Métodos Formales     No
2.11.15 Evaluación: Pruebas y Medición     No
2.11.16 Algoritmos     No
2.11.17 Algoritmos: Dominios de Aplicación     No
2.11.18 Algoritmos: Dominios Algorítmicos     No



Subsecciones
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM