stringtranslate.com

Modelo de programación

Un modelo de programación es un modelo de ejecución acoplado a una API o un patrón particular de código. En este estilo, en realidad hay dos modelos de ejecución en juego: el modelo de ejecución del lenguaje de programación base y el modelo de ejecución del modelo de programación. Un ejemplo es Spark , donde Java es el lenguaje base y Spark es el modelo de programación. La ejecución puede basarse en lo que parecen ser llamadas a bibliotecas . Otros ejemplos incluyen la biblioteca POSIX Threads y MapReduce de Hadoop . [1] En ambos casos, el modelo de ejecución del modelo de programación es diferente al del lenguaje base en el que está escrito el código. Por ejemplo, el lenguaje de programación C no tiene ningún comportamiento en su modelo de ejecución para la entrada/salida o el comportamiento de los subprocesos. Pero dicho comportamiento se puede invocar desde la sintaxis de C, haciendo lo que parece ser una llamada a una biblioteca de C normal.

Lo que distingue a un modelo de programación de una biblioteca normal es que el comportamiento de la llamada no se puede entender en términos del lenguaje en el que está escrito el programa. Por ejemplo, el comportamiento de las llamadas a la biblioteca de subprocesos POSIX no se puede entender en términos del lenguaje C. La razón es que la llamada invoca un modelo de ejecución que es diferente del modelo de ejecución del lenguaje. Esta invocación de un modelo de ejecución externo es la característica definitoria de un modelo de programación, en contraste con un lenguaje de programación .

En computación paralela , el modelo de ejecución a menudo debe exponer características del hardware para lograr un alto rendimiento. La gran cantidad de variación en el hardware paralelo provoca una necesidad concurrente de un número similarmente grande de modelos de ejecución paralela. No es práctico crear un nuevo lenguaje para cada modelo de ejecución, por lo que es una práctica común invocar los comportamientos del modelo de ejecución paralela a través de una API. Por lo tanto, la mayor parte del esfuerzo de programación se realiza a través de modelos de programación paralela en lugar de lenguajes paralelos. La terminología en torno a dichos modelos de programación tiende a centrarse en los detalles del hardware que inspiró el modelo de ejecución, y en ese mundo insular se forma la creencia errónea de que un modelo de programación es solo para el caso en que un modelo de ejecución se corresponde estrechamente con las características del hardware. [2]

Referencias

  1. ^ IBM. «¿Qué es MapReduce?». IBM . Consultado el 19 de abril de 2020 .
  2. ^ Barcelona Supercomputing Center. "Modelo de Programación Superescalar COMP".