Paralelismo implícito


En informática , el paralelismo implícito es una característica de un lenguaje de programación que permite a un compilador o intérprete explotar automáticamente el paralelismo inherente a los cálculos expresados ​​por algunas de las construcciones del lenguaje. Un lenguaje puro implícitamente paralelo no necesita directivas, operadores o funciones especiales para permitir la ejecución paralela, a diferencia del paralelismo explícito .

Los lenguajes de programación con paralelismo implícito incluyen Axum , BMDFM , HPF , Id , LabVIEW , MATLAB M-code , NESL , SaC , SISAL , ZPL y pH. [1]

Si un problema en particular implica realizar la misma operación en un grupo de números (como tomar el seno o el logaritmo de cada uno por turno), un lenguaje que proporcione paralelismo implícito podría permitir al programador escribir la instrucción así:

El compilador o intérprete puede calcular el seno de cada elemento de forma independiente, repartiendo el esfuerzo entre varios procesadores si están disponibles.

Un programador que escribe código implícitamente paralelo no necesita preocuparse por la división de tareas o la comunicación del proceso, sino que se centra en el problema que su programa pretende resolver. El paralelismo implícito generalmente facilita el diseño de programas paralelos y, por lo tanto, da como resultado una mejora sustancial de la productividad del programador.

Muchos de los constructos necesarios para respaldar esto también añaden simplicidad o claridad incluso en ausencia de un paralelismo real. El ejemplo anterior, de comprensión de listas en la función sin (), es una característica útil en sí misma. Al usar el paralelismo implícito, los lenguajes tienen que proporcionar efectivamente construcciones útiles a los usuarios simplemente para admitir la funcionalidad requerida (un lenguaje sin un bucle for () decente, por ejemplo, es uno de los pocos programadores que usarán).