Programación grafo-simbólica

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 6 de julio de 2022; la verificación requiere 1 edición .

La tecnología de programación grafo-simbólica  es una tecnología para diseñar y codificar algoritmos de software basados ​​en una representación gráfica de programas, con el objetivo de automatizar total o parcialmente los procesos de diseño, codificación y prueba de software .

La tecnología de programación gráfica simbólica es un lenguaje de programación gráfico que permite describir algoritmos paralelos utilizando un gráfico de control y generar códigos de programa automáticamente.

Descripción conceptual del modelo

El modelo está representado por un cuádruple , donde  es un conjunto de datos de un área temática determinada,  es un conjunto de operadores definidos sobre datos de un área temática,  es un conjunto de predicados que actúan sobre estructuras de datos de un área temática,  es un conjunto dirigido gráfico etiquetado.  es el conjunto de vértices del gráfico. Cada vértice está etiquetado con un operador local . El gráfico tiene un conjunto de arcos de control y un conjunto de arcos de sincronización .  es una relación sobre conjuntos de vértices y arcos que determina la forma en que están conectados. Un arco de control que conecta dos vértices y tiene tres etiquetas: predicado , prioridad y tipo de arco . Cada arco de sincronización está marcado con un mensaje .

Un tipo de arco se define como una función cuyos valores tienen la siguiente semántica:


El funcionamiento del modelo comienza con la ejecución de un operador que marca el vértice inicial . El desarrollo del proceso computacional descrito por el modelo está asociado con transiciones de vértice a vértice a lo largo de arcos de control. En este caso, la transición a lo largo del arco de control solo es posible si el predicado con el que se marca es verdadero. Si varios predicados que marcan arcos que salen de un vértice se cumplen al mismo tiempo, la transición se realiza a lo largo del arco de mayor prioridad.

Para describir el paralelismo, se introduce el concepto de rama paralela  : un subgrafo de un grafo que comienza con un arco paralelo (el tipo de este arco es ) y termina con un arco que termina (el tipo de este arco es ). , donde  es el conjunto de vértices de rama,  es el conjunto de arcos de control de rama,  es la relación entre los conjuntos de vértices de rama y arcos que determina la forma en que están conectados. Los arcos que emanan de los vértices de la rama paralela , también pertenecen a la rama . Al codificar el algoritmo descrito utilizando el modelo propuesto, cada rama paralela genera un proceso separado: un conjunto de subrutinas ejecutadas secuencialmente en uno de los procesadores del sistema de computación paralela. El modelo gráfico generalmente contiene varias ramas paralelas, cada una de las cuales forma un proceso separado. En este sentido, el modelo de computación paralela se puede representar como una unión de varias ramas paralelas. Por lo tanto, la paralelización de los cálculos solo es posible en el nivel del modelo gráfico. Los cálculos dentro de cualquier actor se realizan secuencialmente.

Máquina gráfica

En la tecnología GSP para objetos, agregados, se utiliza un esquema de monitoreo para organizar los cálculos. El método se basa en el control centralizado del proceso informático, realizado por un programa especial: una máquina gráfica.
La máquina gráfica es universal para cualquier algoritmo. La información inicial para la máquina gráfica es el modelo del gráfico de control de proceso computacional descrito anteriormente. A medida que analiza el modelo, ejecuta actores y agregados en el orden apropiado, evalúa valores predicados y administra el tiempo. Para cada rama paralela, se lanza una copia de la máquina gráfica, que es un proceso separado en el sistema informático.

  1. El trabajo de la máquina gráfica comienza con la ejecución del actor en el nodo raíz.
  2. Luego se construye una lista de arcos provenientes del vértice actual. Esta lista es escaneada por la máquina gráfica secuencialmente, comenzando con el arco de mayor prioridad. Se calcula el valor del predicado que marca el arco, y si es verdadero, se procesa el siguiente vértice. Como resultado del procesamiento de un arco paralelo en un proceso separado, se lanza otra máquina gráfica que procesa la rama paralela generada por este arco.
  3. Después del lanzamiento de todas las ramas paralelas, se produce una transición al vértice, donde terminan.
  4. La máquina gráfica principal espera a que todas las máquinas gráficas secundarias completen la ejecución, a menos que se especifique una condición alternativa.

Interfaz entre módulos para el intercambio de datos en paralelo

Estándar de uso y almacenamiento de datos SGP

La tecnología GSP utiliza un estándar para organizar una interfaz de información entre módulos. El estándar está garantizado por la implementación de siete reglas básicas:

  1. Se está introduciendo un único repositorio de datos para toda el área temática de programación (POP) que es relevante para toda el área. Una descripción completa de los datos está disponible en el Diccionario de datos del EPP. Las variables no descritas en el diccionario de datos se consideran datos locales para aquellos objetos GSP donde se utilizan.
  2. Dentro del GSP, la descripción de los tipos de datos se coloca centralmente en el archivo de tipos de datos.
  3. Los datos que son relevantes para la aplicación de software generada se combinan en una única estructura universal: la clase TPOData.
  4. En los módulos base, el único mecanismo de acceso a datos permitido es pasar parámetros a una dirección que se refiere a una estructura de datos genérica.
  5. La vinculación de estos objetos POP a los parámetros formales de los módulos básicos se implementa en los pasaportes de los objetos POP.
  6. En la tecnología GSP, no se recomienda utilizar otros métodos para organizar las comunicaciones entre programas de acuerdo con los datos.
  7. Los datos en POP pueden ser compartidos o locales. La memoria para los datos compartidos se asigna en el administrador de memoria y todos los procesadores tienen acceso a esta variable. La memoria para una variable local se asigna en cada procesador y solo ese procesador puede leer y cambiar su valor.

Cómo se implementa la memoria compartida en GSP

El entorno de ejecución del programa selecciona la máquina en la que se lanzará el proceso responsable de almacenar las variables POP globales. Dadas las características del hardware y la topología del CS, este puede ser el nodo con la mayor cantidad de RAM o el nodo central, que tiene el tiempo de acceso mínimo desde cualquiera de los otros nodos del clúster. La ventaja de este enfoque es que el recurso de memoria en los nodos informáticos se ahorra significativamente, ya que la memoria se asigna a los nodos solo para aquellas variables que se utilizan.

La idea presentada de organizar el almacenamiento e intercambio de datos entre procesos paralelos está orientada al modelo de paso de mensajes, en el que cada proceso trabaja con datos locales. Por ejemplo, el estándar MPI implica que los procesos intercambian datos solo como resultado de enviarlos en forma de mensajes.

El método descrito de intercambio de datos requiere la introducción del concepto de un administrador de datos, una subrutina que realiza las funciones de almacenamiento, lectura y modificación de datos de dominio.

Administrador de memoria

El administrador de datos se ejecuta en un proceso separado del programa paralelo. En ramas paralelas del modelo gráfico, para leer o escribir algunos datos, se accede al administrador de memoria mediante un conjunto de mensajes. El primer mensaje envía una solicitud para leer o escribir un dato en particular. Cada variable del POP recibe un número único por el cual el administrador de memoria puede identificarla. En el caso de una lectura, la rama paralela procede a esperar una respuesta del administrador de datos. Al escribir, el segundo mensaje envía el nuevo valor de la variable. El administrador de datos por turnos recibe y procesa solicitudes de sucursales paralelas.

Véase también