Portals es una API de red de bajo nivel para redes de alto rendimiento en sistemas informáticos de alto rendimiento desarrollados por Sandia National Laboratories y la Universidad de Nuevo México . Portals es actualmente la interfaz de programación de red de nivel más bajo en la exitosa línea comercial de supercomputadoras XT de Cray .
Portals se basa en el concepto de bloques de construcción elementales que se pueden combinar para admitir una amplia variedad de semánticas de transporte de red de nivel superior. Portals proporciona operaciones de movimiento de datos unilaterales, pero a diferencia de otras interfaces de programación unilaterales, el objetivo de una operación remota no es una dirección virtual . En cambio, el destino final en la memoria de un mensaje entrante se determina en el receptor comparando el contenido del encabezado del mensaje con el contenido de las estructuras en el destino. Esta flexibilidad permite implementaciones eficientes de comunicaciones tanto unilaterales como bilaterales. En particular, Portals tiene como objetivo proporcionar las operaciones fundamentales necesarias para admitir una implementación escalable y de alto rendimiento del estándar Message Passing Interface (MPI). [1] También se utilizó como la capa de transporte de red inicial para el sistema de archivos Lustre .
Los portales comenzaron a desarrollarse a principios de los años 1990 como una extensión del sistema de paso de mensajes nX utilizado en los sistemas operativos SUNMOS y Puma. Primero se implementó para Intel Paragon en Sandia y luego se trasladó a la máquina Intel TeraFLOPS llamada ASCI Red . [1] La primera versión de Portals tenía cuatro bloques de construcción: el bloque único, el bloque dinámico, el bloque independiente y el bloque combinado. Todos los mensajes entrantes pasarían primero por una lista de coincidencias que permitía a los portales individuales responder a grupos específicos, rangos y un conjunto de bits de coincidencia especificados por el usuario. [1]
El concepto de Portals continuó evolucionando a lo largo de sucesivas generaciones de núcleos ligeros y sistemas masivamente paralelos. En 1999, se le dio a Portals una interfaz de programación operativa para que pudiera implementarse para interfaces de red inteligentes o programables fuera de un entorno de núcleo ligero. [2] Este estándar fue diseñado para sistemas donde el trabajo requerido para preparar, transmitir y entregar mensajes es más largo que el viaje de ida y vuelta a las estructuras de datos de Portals. Por ejemplo, en los sistemas modernos, este trabajo está dominado por el viaje de ida y vuelta a través del bus IO a la interfaz de red. El estándar ha sido revisado desde el lanzamiento inicial para hacerlo más adecuado para las computadoras modernas de alto rendimiento y masivamente paralelas. [3] La biblioteca MPI fue trasladada desde el retrógrado Portals 2 al nuevo Portals 3.0. [4]
La especificación Portals 3 se ha implementado varias veces, primero en ASCI Red , luego en CPlant sobre Myrinet , [5] Linux y la familia Cray XT . [6]
En vista de la aparición de lenguajes de espacio de direcciones globales particionados (PGAS), se han agregado varias características nuevas a la API de Portals como parte de Portals 4. Portals 4 también realizó varios cambios para mejorar la interacción entre el procesador y la interfaz de red (NIC) para implementaciones que brindan descarga. Finalmente, se agregó a Portals 4 una opción para admitir una forma de control de flujo. [7]
Portals 4 es la API de red de bajo nivel para la NIC Bull-Atos BXI. [8]
{{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda )