Buscador

Arquitectura de Componentes - II

Servicio de datos 
El servicio de datos contiene bases de datos de soporte como almacenes persistentes y seguimiento para el tiempo de ejecución del flujo de trabajo. En esta arquitectura, también es probable que exista un almacén que contenga resultados o agregados a resultados. Es posible que los archivos de entrada y salida de datos se traten como archivos para mover de un modo más fácil los clústeres hacia los nodos de proceso respectivos. Finalmente, hay una base de datos que contiene un catálogo de los flujos de trabajo disponibles para su ejecución. 

Servicio de cómputos 
El servicio de cómputos es el “más simple” de la arquitectura y está compuesto de un clúster de x nodos en una configuración determinada. 

Comunicación 
La comunicación en todo el proceso de arquitectura se gestiona utilizando Windows Communication Foundation mediante un TCP (conexión remota) o un canal HTTP. Esto mantiene a la arquitectura escalable y desacoplada y ofrece beneficios para las interfaces de usuario diferentes, según requisitos del usuario (autoría, ejecución, emisión de informes).

Seguridad 
En una estructura distribuida orientada al servicio, que potencialmente pasa por varios dominios de seguridad, es fundamental la federación de identidades para permitir el control de acceso a nivel del usuario y el inicio de sesión único para todos los aspectos de la arquitectura de componentes. Las tecnologías que ofrecen estas capacidades son aquellas que están basadas en certificados, federación de directorio activo (junto con extensiones para integrarse con los sistemas Unix) y Windows CardSpace de Microsoft.

Arquitectura de Componentes - I

La arquitectura principal se parece a la conocida arquitectura de aplicación de n-capas y, en líneas generales, éste es de hecho el caso. La organización de la funcionalidad es bastante lógica. La Figura 1 muestra los componentes necesarios para la arquitectura. 
Interfaz de usuario 
La experiencia de la interfaz de usuario puede dividirse en tres partes. Cada una desempeña una función diferente de la solución general: 
• La experiencia de usuario principal para planificar y ejecutar un procesamiento puede proporcionarse mediante varias tecnologías. Algunos ejemplos podrían ser Windows Forms, Windows Presentation Foundation, ASP.NET o Microsoft Office SharePoint Server. La elección de la tecnología debe ser apropiada para las características de un entorno particular (por ejemplo, el uso de tecnologías de Web en las que se requiere amplia disponibilidad o WPF en el que se necesita una interacción muy variada). 
• La experiencia de autoría del flujo de trabajo es proporcionada por Visual Studio 2005 que utiliza la superficie de diseño de autoría del Windows Workflow Foundation (WF). El uso del modelo “code beside” (código al lado) de los flujos de trabajo en desarrollo permite utilizar una nueva interfaz API de Control de Código Fuente para enviar archivos “XAML” de WF hacia un depósito de bases de datos central, por ejemplo, para ejecutar en la interfaz de usuario. 
• Para los administradores informáticos, el Microsoft Operations Manager puede utilizarse para controlar el buen funcionamiento y el estado del clúster de HPC, si bien para los usuarios finales de un sistema HPC, se pueden poner a disposición observaciones más comprensibles para el usuario mediante el uso de Windows PowerShell. 
 Capa de aplicación 
La capa de aplicación está compuesta por el tiempo de ejecución del WF alojado como un servicio NT. Esta capa se utiliza principalmente para comunicarse con el programador de tareas del clúster, pero ofrece una variedad de funciones: 
• Biblioteca de flujos de trabajo y actividades para controlar el clúster y realizar movimientos de datos y otros pasos pre y post procesamiento. 
• Motor de reglas y políticas para administrar el acceso a un clúster y, potencialmente, proporcionar prioridades y capacidades de “metaprogramación” y seguridad. 
• Información de seguimiento para la ejecución de trabajos brindando información documentada, según sea necesario. 
• Información de persistencia que permita escalar la solución y proporcionar eficacia a los flujos de trabajo de larga duración y, potencialmente, la capacidad de volver a ejecutar un flujo de trabajo desde un estado en particular

Bibliotecas de actividades

Las bibliotecas de actividades son los bloques de construcción necesarios para la solución del HPC. Algunos ejemplos son los siguientes: 
• Comunicación del clúster. Es posible crear una actividad personalizada que utilice la interfaz de programación de la aplicación CCS para comunicarse con el programador de tareas y crear o cancelar trabajos en el clúster. Esta actividad personalizada puede entonces ser utilizada por cualquier flujo de trabajo que necesite comunicarse con el programador de tareas y proporcionar un nivel más alto de abstracción para los “usuarios avanzados” quienes pueden necesitar crear nuevos flujos de trabajo o corregir los existentes sin conocimiento detallado de programación

Lógica de aplicación con Windows Workflow Foundation

Ya que podemos considerar que el proceso informático total es una instancia de un flujo de trabajo de máquinas y personas de larga duración, podemos considerar a Windows Workflow Foundation (WF) como el punto de inicio para la construcción de una estructura y capa de aplicación de la solución de HPC. En realidad, HPC posee varios componentes que se pueden utilizar para proporcionar una capa de aplicación completa para la solución de HPC. Las áreas particulares (pero no exhaustivas) que puede cubrir el WF se muestran en la Figura 6. WF forma una parte fundamental del marco de trabajo .NET 3.0 y ofrece un motor de flujo de trabajo completo que se puede alojar en varios entornos. La sección de recursos de este artículo contiene varios vínculos para obtener más información sobre el Windows Workflow Foundation. Algunas de las características principales del WF para considerar son las siguientes: 
• Flujos de trabajo de estado y en secuencia: El tiempo de ejecución del WF puede administrar flujos de trabajo orientados al estado y secuenciales, por lo tanto, se pueden describir una gran variedad de procesos. Estos flujos de trabajo también pueden gestionar excepciones y reintentos. 
• Bibliotecas de actividades: Los flujos de trabajo están compuestos de “actividades” como toma de decisiones, ejecución de bucles y ejecuciones en paralelo, así como también, actividades de “código” arbitrario y varias de estas actividades están listas para usar en el .NET 3.0. Además, debido a que el WF se utiliza para productos de servidor muy eficaces (por ejemplo, Microsoft Office SharePoint Server 2007), estos productos poseen actividades básicas para utilizar dentro del WF. Finalmente, las actividades se pueden construir en la medida que sean necesarias para crear una biblioteca individualizada y cumplir con un requisito específico. 
• Motor de reglas: WF posee un variado motor de reglas de encadenamiento progresivo que se puede utilizar para la toma de decisiones dentro de un flujo de trabajo, pero también se puede ejecutar fuera de las instancias del flujo de trabajo. Las actividades se diseñan para que funcionen con este motor de reglas. 
• Diseñador y realojamiento: WF también posee una superficie de diseño completa de “arrastrar y soltar” que se utiliza dentro de Visual Studio 2005 pero también puede ser realojada dentro de, por ejemplo, una aplicación de formularios de Windows. 
• Servicios en tiempo de ejecución: El tiempo de ejecución del WF puede contar con servicios que han sido incluidos antes de la ejecución del flujo de trabajo para interceptar la ejecución de un flujo de trabajo y desempeñar acciones como persistencia o seguimiento. Los servicios también se pueden construir en la medida que sean necesarios. 
• Lenguaje de Marcado de Aplicaciones Extensible (XAML): Por último, WF utiliza en gran medida el XAML para describir flujos de trabajo y conjuntos de reglas, lo que significa que la serialización es trivial y que realmente es posible la generación de administradores de reglas y superficies de diseño individualizadas. Dadas estas características, podemos ahora ver el modo en el que WF ofrece capacidad a la arquitectura.

Workflow Foundation

Workflow Foundation puede brindar una capa de aplicación completa que abarque la mayoría de las áreas en los pasos de Solicitud, Proceso y Análisis.

Una cadena de valor mejorada

Proporcionar una solución basada en HPC utilizando una arquitectura similar a la descripta puede tener varios beneficios para la cadena de valor total. (Figura 2) Existen varias áreas que podrían estar afectadas inicialmente: 
• Planificación para un trabajo de larga ejecución. Las reducciones de tiempo y gastos son posibles mediante el uso de interfaces intuitivas, validación y otra lógica para garantizar la captura de información adecuada. Además, los administradores o codificadores especializados pueden ya no ser necesarios en esta instancia del proceso. 
• Publicar un trabajo de larga ejecución. Tanto el tiempo como los gastos se pueden reducir debido a que la información es capturada por el sistema y, por lo tanto, la publicación del trabajo puede automatizarse completamente 
• Costo de la informática. El costo se reduce mediante la especialización de las funciones – el monitoreo puede ocurrir desde la perspectiva de un usuario final– y el costo total entre varios trabajos puede reducirse mediante el reconocimiento mejorado de trabajos erróneos o fallas que pueden cancelarse antes de haber finalizado la ejecución. Este reconocimiento mejorado es nuevamente proporcionado por el uso del monitoreo y mecanismos de feedback que se presentan a la interfaz del usuario. 
• Análisis. El análisis se puede iniciar de un modo más rápido si la interfaz del usuario presenta información durante la ejecución del trabajo; puede estar disponible algún análisis automático que reduce los costos iniciales antes de que se necesite intervención especializada.
• Análisis paramétrico: Este tipo de trabajo podría ejecutar varias instancias de un único programa pero con una serie de parámetros diferentes, permitiendo varios resultados en el mismo período de tiempo como una tarea única.
• Tarea de interfaz de paso de mensajes: El trabajo más sofisticado sería el uso de una Interfaz de Paso de Mensajes (MPI) para paralelizar un algoritmo y dividir el trabajo del procesamiento entre varios procesadores que se coordinan para proporcionar aumentos de velocidad en procesamientos complejos y largos. Varios o todos estos tipos de trabajo se pueden encontrar dentro de un único proceso de informática. CCS debe poder ofrecer una plataforma sólida para cualquiera de las tareas de pre- o postprocesamiento así como también la tarea principal de procesamiento.

Consideración de la cadena de valor

Por lo general, los usuarios de soluciones de informática de alta productividad son altamente cualificados y son recursos muy preciados para los equipos de investigación y desarrollo. Sus habilidades y experiencia profesional son necesarias para brindar aportes en los procesos, algoritmos para los cálculos y el análisis del producto resultante. Sin embargo, se debe permitir que estos recursos trabajen lo más eficaz y eficientemente posible. La creación de soluciones poco claras, de un modo u otro, afectarían esto de varios modos posibles: 
• Es posible que el usuario deba tener cierto conocimiento del sistema que va más allá de lo que habitualmente se esperaría. Por ejemplo, necesito saber los principios básicos de un control remoto para poder operar mi televisor, pero para mirar televisión, no necesito saber el voltaje requerido para activar su pantalla de LCD. 
• Los expertos que han participado de una solución individual pueden encontrar difícil liberarse de eso. Por ejemplo, si Alicia ha codificado un algoritmo para la solución, puede encontrar que está muy involucrada en la operación diaria de la solución porque sólo ella comprende el mejor modo de interactuar con el sistema para utilizar el algoritmo. Ella debería realmente dedicarse a crear algoritmos aún mejores. El resultado después de una o dos creaciones de mejoras no sólo representa un alto costo en la operación de la solución, sino también un problema de riesgo ya que Alicia se ha vuelto un componente fundamental de la solución. 
• La solución también puede ser un problema en lo que respecta a la administración para los equipos fundamentales de informática. Una solución de HPC creada con gran destreza por expertos en dominio podría fácilmente ser análoga para las “soluciones de hojas de cálculo vinculadas” del equipo de ventas que puede ser problemático para cualquier desarrollo interno o para los equipos de soporte. El diagrama de la Figura 1 representa el proceso de alto nivel para la provisión y uso de una solución de HPC. La compresión de la cadena de valor en lo que respecta a tiempo y costo debe ser la inquietud principal para la provisión de la solución. 
Dados los problemas detallados con mejoras en la velocidad para el trabajo informático, las mejoras deben identificarse fuera de este ámbito y en otras áreas del proceso. Candidatos ideales para la reducción del costo en el proceso son, ampliamente, todos los aspectos de la cadena de valor con la probable excepción de la creación del algoritmo, que es la invención y propiedad intelectual de la solución. La reducción de costos se divide en dos partes: el costo para utilizar la solución y el costo de administración. Mejorar el proceso para la publicación y uso de algoritmos, y brindar soporte analítico podría reducir el costo total del proceso. A partir de la consideración de la cadena de valor, un conjunto de soluciones debe estar compuesto de herramientas que proporcionen dos características fundamentales: simplificar la finalización de la tarea y oportunidades para la interacción mejorada.

Informática de alto rendimiento con la edición de Microsoft "Compute Cluster Server”

El servicio fundamental necesario para la solución es la capacidad de los clústeres de la Informática de Alto Rendimiento en sí. La edición de Microsoft “Compute Cluster Server” (CCS) ofrece capacidades de clústeres para cumplir con el paso “Proceso” del escenario del problema. (Ver Figura 5) CCS brinda capacidades de clústeres para una versión reducida de Windows Server 2003 que permiten, por ejemplo, el uso de procesamientos paralelizados, aprovechando varios procesadores para completar procesamientos particularmente complejos o intensivos como aquellos que se basan en estadísticas generales. El control de un clúster de CCS es realizado por un “nodo principal” que se comunica con los nodos del clúster para impartir instrucciones y coordinar una serie de tareas sobre un trabajo específico. Los nodos del clúster pueden estar en una red privada, para un desempeño óptimo, y probablemente sea una red de tiempo de espera mínimo para asegurar que el tiempo de espera de red no tenga un impacto sobre el tiempo del procesamiento. 
La sección de recursos al final de este documento contiene vínculos hacia artículos técnicos sobre la configuración e implementación del CCS. El nodo principal posee un “programador de tareas” que permite la inserción de una tarea de procesamiento dentro de una cola para que se ejecute cuando la cantidad necesaria o deseada de procesadores están disponibles para completar la tarea. Se proporciona una base de datos pequeña al nodo principal para mantener un seguimiento de la cola de tareas en curso. Se puede acceder al programador de tareas mediante una interfaz en el nodo principal, vía línea de comando, que se puede parametrizar o ejecutar con una definición de XML de los parámetros, o vía API (CCS API) para interacción programática. 
Un clúster CCS puede controlar diferentes tipos de trabajos como los que se detallan a continuación: 
• Trabajo en serie: Ésta es una tarea de procesamiento habitual que simplemente ejecuta un programa necesario. 
• Flujo de tareas: Varios trabajos en serie compuestos de múltiples tareas/programas en potencia.

Escenario de la solución

Después de haber detallado varios escenarios generales que pueden representar los requisitos para una solución de HPC y considerando el valor descripto al comienzo en la construcción de una solución de HPC, podemos ahora considerar algunos escenarios de la solución para cumplir con estos requisitos.

Escenario de administración.

Finalmente, se necesita la administración de la plataforma de HPC. En este caso, consideramos que las tareas principales para respaldar al usuario final comprenden el monitoreo y la contabilidad y excluyen otras tareas de administración básicas como configuración del clúster y otras actividades generales de infraestructura informática. (Ver Figura 4) El escenario de administración se puede describir de la siguiente manera: 
Publicación: 
• Monitoreo: Por lo general, los clústeres son recursos compartidos administrados por personal especializado. Ellos deben controlar que las instalaciones proporcionen funcionalidad y rendimiento, por ejemplo, analizar las colas de trabajo y las tendencias de consumo de recursos. 
• Cuenta: Es recomendable justificar el uso de la utilización de recursos por parte de ciertas cuentas. Esto ayuda cuando los clústeres son financiados y utilizados por varios grupos. 
• Facturación: Es posible crear modelos de cargo al usuario para facturar su uso de un modo explícito.

Escenario de autoría:

El escenario de autoría trata los aspectos del proceso total para proporcionar capacidades para que un usuario final complete un trabajo de cálculos. En términos generales, el autor de un proceso debe poder desarrollar nuevas capacidades y procesos y publicarlos para el consumo de los usuarios finales. La Figura 3 muestra el escenario de autoría para dos participantes: autores y usuarios avanzados. La diferencia entre estas funciones es que un autor probablemente desarrolle código, mientras que un usuario avanzado posiblemente configure el código existente. El escenario de autoría puede describirse de la siguiente manera: 
Desarrollo: 
• Actividades: Un desarrollador puede querer construir actividades o elementos del proceso diferenciados que puedan utilizarse como parte del proceso total de una tarea de informática. Un ejemplo podría ser una actividad genérica para llevar a cabo un FTP del conjunto de resultados.
• Algoritmos: El desarrollador puede crear los algoritmos reales para que se utilicen en el paso de cálculos del proceso del usuario final. 
 • Flujo de trabajo: Un desarrollador de usuarios avanzados puede definir flujos de trabajo de cálculos específicos mediante la unión de actividades y algoritmos para crear un paso de cómputos total compuesto de pre y post procesamientos así como también de la tarea de cómputos en sí. 
Publicación: 
• Catálogo: Después del desarrollo de actividades, algoritmos y flujos de trabajo, el autor deseará realizar un catálogo del desarrollo para que lo utilicen otros autores o usuarios finales. 
• Configuración: Es posible que se requiera la configuración de algunas actividades o flujos de trabajo, como restricción de acceso u otras normas que regulen el uso de la tarea desarrollada. 
• Publicación: Por último, el autor debe presentar la tarea desarrollada cuando esté lista para utilizar. Lo ideal sería que esto no requiera ningún esfuerzo de administración informática.

Escenario de informática.

El proceso informático se divide en cuatro pasos fundamentales para un usuario típico que aseguran la finalización de la tarea: acceso, solicitud, proceso y análisis. (Ver Figura 2) 
Acceso: 
• Inicio de sesión: El usuario debe poder iniciar la sesión de la solución y deberá identificarse como usuario válido. Es posible que entonces puedan ver sólo la información relevante a su función y/o grupo. 
• Inicialización: Antes de realizar una solicitud del trabajo, puede existir la necesidad de configurar un panel de control para ejecutar la tarea. Dada la naturaleza de la informática de larga ejecución, una ejecución del proceso puede considerarse un “proyecto”. 
Solicitud
• Carga: Un usuario debe poder cargar o acceder a grupos de datos que están previstos para ser utilizados como parte de un trabajo. Los grupos de datos pueden ser grandes, no homogéneos o de origen externo, por lo tanto, se necesita un paso específico en el flujo de trabajo para obtener estos datos y dividirlos entre el nodo del clúster de manera que equilibre la cantidad prevista de trabajo. 
• Inserción de datos: un usuario debe poder añadir parámetros y metadatos asociados para garantizar que el trabajo se ejecute exitosamente. Estos parámetros se capturan para reutilización y auditoría. 
• Aprobación: después de añadir parámetros y cualquier otra información requerida, es probable que se pida aprobación antes de presentar el trabajo. Entonces, probablemente se producirá algún tipo de flujo de trabajo de aprobación, seguido de una presentación del trabajo del usuario. 
Proceso 
• Preproceso: El paso de preproceso para un trabajo puede realizar diversas cosas. Probablemente traslade los grupos de datos a los nodos del clúster y tal vez realice un grupo de procesamientos iniciales, como la generación de medidas analíticas para ser utilizadas en el procesamiento principal. También puede inicializar estructuras de datos y evaluar todos los datos para su validación antes de ejecutarlos. 
• Proceso: Esta fase representa el procesamiento paralelo en sí. Cada nodo ejecutará una porción y puede ser necesario pasar resultados intermedios a otros nodos para que se complete el proceso total (trabajo de paso de mensajes). Otra opción es que los datos pueden ser propicios para ser computados dentro de porciones totalmente aisladas, como situaciones “que pasaría si” o un análisis paramétrico. Esta fase puede ocurrir durante un tiempo potencialmente significativo. Lo ideal sería que se proporcione algún comentario al usuario final durante este tiempo. 
• Post-proceso: El paso final en el procesamiento en sí es similar al del preprocesamiento en el sentido de que es posible que se complete algún trabajo con los datos obtenidos. Esto puede comprender movimientos de datos hacia almacenes, agregación de datos de nodos separados, operaciones de depurado, tareas de visualización, etc. 
Análisis: 
• Automático: Si bien es probable que los resultados de la tarea necesiten intervención especializada para comprenderlos verdaderamente, es posible realizar un análisis automático, en particular, en el caso de un análisis estadístico en el que los patrones son importantes y fáciles de automatizar. 
• Con conexión: El usuario debe poder realizar un análisis básico sin tener que solicitar todo el grupo de datos. Esto puede presentarse como herramientas con paradigmas de inteligencia comercial – segmentación y separación, etc. 
• Descarga: Por último, el usuario debe poder recuperar los grupos de resultados para la manipulación avanzada sin conexión, según sea necesario.

Ciencia ambiental de alta productividad integral

El proyecto de modelo del sistema Grid-ENabled Integrated Earth (GENIE) proporciona una estructura accesible por red que facilita la integración, ejecución y administración de los modelos componentes para el estudio del sistema terrestre sobre escalas de tiempo milenarias. Los simulacros basados en la estructura GENIE deben seguir procedimientos de operaciones complicados entre diferentes modelos y recursos informáticos heterogéneos. 
El proyecto GENIE ha desarrollado una estructura para la composición, ejecución y administración de modelos integrados del sistema terrestre. Los códigos componentes (océano, atmósfera, superficie terrestre, hielo marino, capas de hielo, biogeoquímica, y demás) de complejidad y resolución variada pueden unirse de un modo flexible para formar una serie de modelos del clima, eficaces, que sean capaces de simular sobre escalas de tiempo milenarias. El proyecto reúne un grupo distribuido de científicos del medio ambiente con un interés en común por el desarrollo y uso de los modelos GENIE para comprender el sistema terrestre. Los simulacros del sistema terrestre comprenden muchos datos así como también mucha informática. 
La estructura GENIE se ha diseñado para soportar la ejecución de estos simulacros entre múltiples recursos informáticos y datos distribuidos por un período de tiempo extenso. Aprovechamos la variedad de recursos heterogéneos, incluyendo la Red Nacional del Reino Unido de recursos informáticos en paralelo (que ejecuta Linux y Windows Compute Cluster Server) y el aprovechamiento de los ciclos de escritorio en sitios distribuidos. 
Nuestro almacén de datos de infraestructura informática utiliza Oracle 10G para almacenar metadatos sobre nuestros simulacros y el servidor SQL para coordinar el seguimiento de persistencia de nuestros flujos de trabajo en ejecución. (Ver Figura 1) En Supercomputing 2006, en Tampa, Fla., mostramos el modo en el que la aplicación de la metodología de flujo de trabajo descripta en el articulo puede proporcionar los simulacros de GENIE con un entorno de rápida composición de simulacros y un entorno de hosting eficaz para coordinar su ejecución. Los científicos que participan en la colaboración, están investigando el modo en el que la circulación termosalina en el Atlántico – la densidad del agua marina es controlada por la temperatura (termo) y la salinidad (salina) y las diferencias de densidad impulsan la circulación oceánica– responde a los cambios de niveles de dióxido de carbono en la atmósfera e intenta comprender, en particular, las estabilidad de las corrientes oceánicas más importantes bajo distintos contextos de cambios climáticos. 
Microsoft Institute of High Performance Computing: Matthew J. Fairman, Andrew R. Price, Gang Xue, Marc Molinari, Denis A. Nicole, Kenji Takeda, and Simon J. Cox Colaboradores externos:: Tim Lenton (Facultad de Ciencias Ambientales, Universidad de East Anglia) y Robert Marsh (Centro Nacional de Oceanografía, Universidad de Southampton)

Escenarios del problema

Es difícil generalizar completamente una solución de HPC debido a las necesidades específicas de un dominio individual y a los procesos comerciales que surgen como parte de los desafíos de ingeniería que se presentan normalmente. Sin embargo, podríamos considerar tres situaciones posibles para la solución. La primera es la situación básica del usuario: finalizar una tarea de informática. Las otras dos situaciones posibles son administración y creación y soporte para este proceso.

Definir el problema y la solución

Utilizar la cartera disponible de tecnologías de Microsoft nos permite crear una arquitectura más completa para una solución de HPC y posibilita la realización de funciones que brindan valor adicional a los equipos que utilizan la solución. Además, el uso de estas tecnologías puede construir de un modo integrado e interactuar con las infraestructuras existentes. Esta sección del artículo describe una arquitectura posible y algunas características de esta arquitectura así como también el valor que proporcionan.

Mejorar el valor de las soluciones de informática de alta productividad

Debido a la complejidad de los problemas de dominio y los requisitos descriptos anteriormente, la conclusión final es que las soluciones generalmente se diseñan para obtener resultados. Esto, es en cierto modo un logro y, en primer lugar, deja de lado el esfuerzo intelectual que implica el desarrollo de algoritmos informáticos y soluciones conceptuales. Existe, por supuesto, un modo simple de mejorar el valor de una solución de HPC: 
Hacerla más rápido. Sin embargo, para problemas de suficiente complejidad informática, en cierto punto, pasa a ser poco provechoso continuar el intento de mejorar la solución debido a las limitaciones de la tecnología. Los esfuerzos para intentar mejorar la velocidad de los procesamientos se pueden representar mediante el ciclo que se muestra en el Figura 1. Para mejorar la velocidad de los procesamientos, un equipo de desarrollo debe: 
• Utilizar más o mejor hardware. Los beneficios de los procesadores más rápidos, discos más rápidos, mayor memoria, etc., podrían estar limitados por la capacidad del software o los algoritmos para utilizar el hardware disponible. También, está limitado por los ciclos de lanzamiento de hardware de nueva generación y probablemente esté muy limitado por el presupuesto. 
• Utilizar más o mejor software. Es más probable que los algoritmos en sí mismos sean un problema que el software subyacente, pero a veces, pueden existir mejoras en la manipulación de datos u otras funciones para proporcionar un avance útil. Esto también puede estar afectado por restricciones presupuestarias. 
• Utilizar mejores algoritmos. Mejores algoritmos requieren invención que simplemente puede no ser posible y es probablemente menos predecible que las mejoras de software o hardware, aunque cuando ocurre puede brindar la mejora más importante de todas. 
Por lo tanto, el desafío ante mejoras continuas de plataforma sobre un nivel básico es fácil de comprender pero difícil de lograr. Como resultado, los equipos que utilizan soluciones de HPC tienden a ser pragmáticos respecto de la cantidad de tiempo que les lleva completar los cálculos ya que comprenden que están aprovechando al máximo las tecnologías disponibles y, como mencionamos anteriormente, pueden sentirse satisfechos por al menos haber completado la operación. Una vez que se han reducido los tiempos informáticos hasta ser lo más prácticos posible, entonces, mejorar el valor de estas soluciones es cuestión de considerar el proceso total y las repercusiones de realizar cálculos para reducir aún más el tiempo total en nuevas comprensiones científicas o de la industria. Dada la naturaleza de la investigación/ingeniería de los problemas, entonces el proceso total generalmente implica un flujo de trabajo humano antes o después de la tarea informática. También se trata del desarrollo de un grupo de soluciones para proporcionar interfaces y controles que posibiliten una ejecución eficaz del proceso total, permitiendo a los investigadores e ingenieros realizar sus tareas de un modo más rápido y eficaz.

Requisitos para la información documentada

En áreas de investigación, existe una necesidad muy importante de registrar la información por varios motivos. Puede simplemente existir la necesidad de volver a ejecutar algoritmos para asegurar que se produzcan los mismos grupos de resultados como un ejercicio de “tranquilidad”, pero muy probablemente, esto será requerido como parte de prueba y de backup científico para publicar una investigación. Pueden también existir razones estatutarias para esta información documentada: en la industria aeroespacial, en el caso de una investigación de accidente aéreo, los ingenieros que toman decisiones determinadas de ingeniería pueden ser responsables de la causa del accidente y estar sometidos a procesos penales. 
Por lo tanto, la necesidad de recrear estados específicos y grupos de resultados según sea necesario y de seguir los pasos de decisión hacia estas elecciones es de extrema importancia. La complejidad de estas tareas es aún mayor cuando uno considera que el ciclo de vida del diseño de un avión podría ser de 50 años. Volúmenes significativos de datos y movimiento de datos Deep Thought desempeñó una de las tareas más grandes de HPC en los últimos tiempos (de ficción). Dada una pregunta simple (“¿Cuál es la respuesta a la vida, el universo y todo lo demás?”), arrojó una respuesta simple (“42”), aunque, después de varios millones de años de procesamiento y una pequeña pausa desconcertadora al final del proceso.
Sin embargo, la realidad es que es muy probable que los cálculos significativos que requieren una gran cantidad de procesamiento impliquen importantes cantidades de datos a lo largo de todo el ciclo de vida del cálculo. Aún, con la simplicidad del ingreso de datos y el resultado del estilo de Deep Thought, los grupos de datos operativos dentro del espacio de problema durante el cálculo, pueden ser significativos. Se deben desarrollar estrategias para administrar estos datos y sus metadatos. Dada la necesidad de la información documentada, estas estrategias deben ser flexibles y eficaces, y deben estar integradas dentro procesos de flujo de trabajo utilizados para coordinar los cálculos.

Procesos y cálculos de larga ejecución

El avance tecnológico de la infraestructura requerida para realizar procesamientos a gran escala y administrar cantidades masivas de datos ha brindado oportunidades para desempeñar procesos que anteriormente eran poco prácticos desde el punto de vista de la informática. El desarrollo de nuevos algoritmos y la paralelización del código para que se ejecuten de modo simultáneo sobre varios clústeres informáticos pueden tener un efecto radical, reduciendo el tiempo de procesamiento en diversos órdenes de magnitud. Por lo tanto, un procesamiento interminable, tal vez, podría ejecutarse en varias semanas o meses. Este éxito ha permitido a las industrias lograr importantes resultados y aprovechar estas posibilidades para ofrecer más orientación a los desarrollos.

Diseñada para una solución a un problema específico

Debido a que las interacciones de la industria y los cálculos son diversos, no hay proveedores de soluciones particulares para un problema determinado, lo que da como resultado soluciones altamente individualizadas que surgen de empresas o departamentos de investigaciones que necesitan estos cálculos. Esta individualidad se compone de una pequeña cantidad de equipos que realmente buscan resolver estos problemas y tal vez necesitan mantener la propiedad intelectual de los algoritmos u otros aspectos de procesos específicos. La individualidad en sí misma no es un problema –puede ser algo muy bueno– pero debido a que las soluciones técnicas son medios para lograr un objetivo, es probable que estas soluciones individuales no sean “productizadas” y por lo tanto, probablemente sean difíciles de relacionar y poco claras.

Requisitos para soluciones de informática de alta productividad

En los dominios de ingeniería y ciencia, las soluciones HPC pueden utilizarse para resolver problemas matemáticos complejos en una diversidad de áreas, como cálculos estadísticos para epidemiología genética, cálculos de dinámica de fluidos para la industria aeroespacial y modelado del medio ambiente global. Cada vez más, el desafío está en integrar todos los componentes requeridos para componer, procesar y analizar los resultados de problemas de manipulación de datos e informática de gran escala. Aún con diferencias tan diversas en los problemas, los requisitos para las soluciones poseen las mismas características debido al contexto del dominio y la complejidad del problema en cuestión.

Brindar informática integral de alta productividad

Síntesis 
En la actualidad, realizar un cálculo informático complejo científico y de ingeniería significa mucho más que simplemente comprar una gran supercomputadora. Si bien tradicionalmente HPC significa “High Performance Computing” (Informática de Alto Rendimiento), creemos que la solución integral real debería ser “Informática de Alta Productividad”. A lo que queremos referirnos con “Informática de Alta Productividad” es a toda la estructura de manipulación de datos e informática y también a las herramientas, tecnologías y plataformas necesarias para coordinar, procesar y monitorear este cálculo integral. Muchos desafíos están asociados con la producción de una solución general de Informática de Alta Productividad (HPC) para problemas de dominio científicos y de ingeniería. En este artículo tratamos estos desafíos basados en los requisitos típicos de estos problemas, proponemos varias soluciones y demostramos el modo en el que han sido implementados para usuarios a través de un modelo científico específico del entorno, siguiendo el proceso desde el comienzo hasta el final. Nuestra solución técnica general se podrá poner en práctica para cualquier solución que requiera capas de interfaz y control para un servicio de HPC orientado al servicio distribuido.

Conclusión

Los proveedores de servicios deben enfrentar continuamente desafíos para cumplir con la creciente demanda de los clientes de nuevos servicios que ofrecen mayor valor para las pequeñas y medianas empresas, desarrolladores, consumidores y diseñadores. 
Deben brindar un alto grado de servicio para mantener la lealtad del cliente y lograr sus objetivos comerciales. Los proveedores de servicios buscan la forma de producir la plataforma de Web “milagrosa” que ayude a reducir el costo total de propiedad (TCO) y brindar a sus clientes una respuesta de forma efectiva y eficaz. Cuando hacemos referencia a una solución de plataforma de Web compuesta de servicios de Web, almacenamiento de datos y almacenamiento de bases de datos, inevitablemente ocurre un problema dentro de alguno de estos componentes. Una solución es tan sólida como su punto más débil. Fundamentalmente, cada componente de una solución debe ser escalable a nivel exterior y de forma ascendente y también debe ser rentable. Este artículo no trata las tecnologías (código abierto o código cerrado) que pueden cumplir el objetivo o lo han cumplido en algunas áreas, sino que trata los problemas básicos de arquitectura que no se tienen en cuenta como “primordiales” cuando se desarrollan tecnologías. En la actualidad, no es suficiente crear tecnología porque sí con el objeto de ocupar una posición. Sólo mediante la estrategia, planificación y desarrollo de soluciones de gran escala podremos respaldar requisitos de gran escala. El mundo está creciendo, las necesidades son cada vez mayores y sólo tiene sentido que las infraestructuras también.

Clúster de SQL

SQL es un servicio importante que ofrecen varios hosters a la mayoría de sus clientes. Sin embargo, es una de las áreas claves que muchos hosts no implementan como un clúster. Existen varias razones para esto y la más importante es el costo y la licencia. No obstante, los hosts que eligen un cluster de SQL altamente disponible deben diseñar su arquitectura de modo que seleccionen el tipo correcto de metodología de clúster que soporte diversas bases de datos. A diferencia de otras empresas en las que el clúster de SQL está compuesto de una cantidad relativamente pequeña de bases de datos, las compañías de hosting implementarán cientos, sino miles, de bases de datos para un único clúster de base de datos. Este clúster debe ser resistente tanto en rendimiento como en tiempo de actividad. Debido a que las compañías de hosting no tienen control sobre la forma en la que sus clientes escriben sus aplicaciones, se presentan algunos problemas únicos al diseñar un clúster para un hosting masivo. En un entorno de hosting, cada cliente posee 1-n bases de datos asignadas a él. Estas bases de datos pueden almacenarse en un único clúster o distribuirse entre múltiples clústeres. El clúster más común que un hoster construiría para un hosting SQL masivo es el clúster de SQL activo-pasivo estándar. Sin embargo, en la medida que los hosts entran en un hosting de software como servicio (SaaS), los requisitos del clúster de SQL se convierten de redundancia del nodo a redundancia de datos. Esto agrega más problemas ya que estos mismos sistemas aún alojarán numerosas bases de datos. 
No existe un modo rentable de construir una plataforma de clúster de SQL compacta, de alta disponibilidad y escalable. Cada topología del clúster tiene sus desventajas junto con el hecho de que los hosts no tienen control sobre el diseño de la aplicación de los clientes. El clúster de SQL ideal permitiría a los hosts realizar una distribución de carga, además de duplicar la base de datos, sin tener que ocuparse de los problemas de colisión de datos mientras mantienen una gran cantidad de bases de datos entre los clústeres.