Buscador

Mostrando entradas con la etiqueta Arquitectura de Infraestructura. Mostrar todas las entradas
Mostrando entradas con la etiqueta Arquitectura de Infraestructura. Mostrar todas las entradas

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.