El algoritmo requerido para resolver un problema en una computadora secuencial se llama algoritmo secuencial . Los algoritmos escritos para resolver un problema en una computadora paralela se llaman algoritmos paralelos . El algoritmo secuencial está escrito en forma de pasos, que PE realiza secuencialmente, es decir, el algoritmo secuencial utiliza pasos secuenciales para resolver un problema. En un algoritmo paralelo, tenemos que ver dónde tiene lugar la comunicación, dónde tenemos que mover la salida de pasos particulares.
Los algoritmos escritos para una arquitectura en particular no se pueden aplicar a otra arquitectura, en otras palabras, para resolver el mismo problema en diferentes computadoras paralelas, se deben escribir diferentes algoritmos basados en arquitectura de computadoras paralelas.
Escribir algoritmos paralelos es una tarea compleja, para hacer frente a este problema se diseñaron hipotéticamente varios modelos paralelos llamados máquinas abstractas.
Las máquinas abstractas son solo nociones imaginarias, no existen en la realidad. Aquí podemos hacer inferencias para resolver un problema.
Hay dos tipos de Máquina Abstracta
- Máquina de acceso aleatorio (RAM)
- Máquina de acceso aleatorio paralelo (PRAM)
Máquina de acceso aleatorio (RAM)
El modelo de máquina de acceso aleatorio o RAM es una CPU. Es un banco de celdas de memoria potencialmente no unidas, cada una de las cuales puede contener un número o carácter arbitrario. Las celdas de memoria están numeradas y lleva tiempo acceder a cualquier celda en la memoria o decir que todas las operaciones (leer/escribir desde la memoria, aritmética estándar y operaciones booleanas) toman una unidad de tiempo. La RAM es un modelo teórico estándar de computación (memoria infinita e igual costo de acceso). El modelo de máquina de acceso aleatorio es fundamental para el éxito de la industria informática.
- El modelo de máquina de acceso aleatorio (RAM) es una computadora de una dirección.
- La memoria RAM es una máquina secuencial. La RAM consta de memoria, cinta de entrada de solo lectura, cinta de salida solo y escribe un programa.
- El programa no se almacena en la memoria y no se puede modificar.
- La cinta de entrada consta de una serie de números enteros. Cada vez que se lee un valor de entrada, el cabezal de entrada avanza un cuadrado.
- De manera similar, el cabezal de salida avanza después de cada escritura. La memoria consta de una secuencia infinita de registros, designados r0, r1, r2,….
- Cada registro puede contener un número entero. El registro r0 es el acumulador, donde se realiza el cálculo.
- La RAM debe tener las mismas instrucciones que CARGAR, ALMACENAR, LEER, ESCRIBIR, SUMAR, RESTAR, MULTIPLICAR, DIVIDIR, PRUEBA, SALTAR y DETENER.
- La función de complejidad de tiempo en el peor de los casos de un programa RAM es f(n), que es el tiempo máximo que tarda el programa en ejecutarse en todas las entradas de tamaño n.
- Suponemos que cada uno de estos pasos toma una constante, es decir, O(1) tiempo.
En RAM, aquí cada paso de un algoritmo consta de los siguientes pasos:
- Lectura : (Hasta) N procesadores simultáneamente (en paralelo) leen desde N ubicaciones de memoria (como en la memoria) y almacenan los valores en sus registros locales.
- Compute : (Hasta) N procesadores realizan operaciones aritméticas o lógicas básicas sobre valores en sus registros.
- Escritura : (hasta) N procesadores escriben simultáneamente desde sus registros en (hasta) N ubicaciones de memoria.
Se supone que cada paso, LEER, COMPUTAR, ESCRIBIR, toma un tiempo O(1) en el caso de la RAM. Cabe señalar que no todos los procesadores necesitan realizar un paso determinado del algoritmo. Cuando un subconjunto de procesadores da un paso, otros procesadores permanecen inactivos durante ese tiempo. Los algoritmos para PRAM deben especificar qué subconjunto de procesadores debe estar activo durante la ejecución de una fase.
Publicación traducida automáticamente
Artículo escrito por tanushree7252 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA