[Tres áreas principales de investigación de la informática de alto rendimiento] Contenido de investigación en el campo de la informática de alto rendimiento
La informática científica, el procesamiento y la recuperación masiva de información y las cada vez más populares computadoras personales multinúcleo son las principales áreas de investigación de la informática de alto rendimiento. Debido a los diferentes campos, cada uno tiene un enfoque de investigación diferente sobre el alto rendimiento. computación. La NASA es uno de los mayores usuarios de supercomputadoras
Desde el origen, la demanda original de sistemas informáticos provino del ejército. Por ejemplo, la primera computadora ENIAC fue invertida y desarrollada por el ejército estadounidense para calcular balística. . En los siguientes 30 años, las computadoras se utilizaron principalmente en campos relacionados con la seguridad nacional, como el diseño de armas nucleares, descifrado de códigos, etc. A finales de la década de 1970, las computadoras de alto rendimiento comenzaron a utilizarse en industrias con uso intensivo de capital, como la industria petrolera y la industria del automóvil. Posteriormente, las computadoras de alto rendimiento comenzaron a ingresar ampliamente en diversas industrias para ayudar en el diseño de productos, análisis de usuarios, etc. Por ejemplo, las compañías farmacéuticas utilizan computadoras de alto rendimiento para ayudar en el diseño de medicamentos, lo que puede ahorrar en gran medida los gastos de investigación y desarrollo de nuevos medicamentos; los supermercados usan computadoras de alto rendimiento para analizar los patrones de consumo de los usuarios para lanzar medidas promocionales apropiadas, etc. En estas áreas, un mayor rendimiento informático significa ventajas competitivas en productos y servicios. En el campo de la investigación científica, los métodos de simulación numérica se han convertido en una parte importante de los métodos científicos modernos, donde un mayor rendimiento informático significa un descubrimiento científico más rápido. En la actualidad, la tecnología informática de alto rendimiento se ha convertido en un medio importante para promover la innovación científica y tecnológica y el desarrollo económico, y es una parte importante de la fortaleza nacional integral de un país. Este artículo presentará algunas de las áreas de aplicación más importantes de alto rendimiento.
Uso de computadoras de alto rendimiento para resolver desafíos científicos
Muchos problemas científicos importantes son muy complejos y requieren computadoras muy poderosas para realizar simulaciones numéricas. Estos problemas se consideran desafíos científicos importantes. se puede dividir en las siguientes categorías:
1. Química cuántica, mecánica estadística y física relativista;
2. Cosmología y astrofísica
3. dinámica y turbulencia;
4. Diseño de materiales y superconductividad;
5. Biología, investigación farmacéutica, análisis de secuencia del genoma, ingeniería genética, plegamiento de proteínas, actividad enzimática y modelado celular; p>
6. Modelado de medicamentos, huesos y órganos humanos;
7.
La mayoría de estos importantes desafíos pueden verse como una extensión de las aplicaciones informáticas tradicionales de alto rendimiento, que se caracterizan por: La mayoría de ellas son aplicaciones intensivas en punto flotante y los algoritmos paralelos requieren una ejecución frecuente entre múltiples aplicaciones paralelas. comunicación y sincronización en lugar de un simple paralelismo entre múltiples casos de uso informático, por lo que es imposible utilizar varios sistemas más pequeños para reemplazar un sistema a gran escala.
Estos problemas de gran desafío requieren una potencia informática que supera con creces las capacidades de las computadoras de alto rendimiento existentes. Tomando como ejemplo los cálculos químicos cuánticos, se requiere una potencia informática continua de 20T a 100Tflops para predecir los resultados de los experimentos reales actuales. En el campo de la investigación de la fusión nuclear, se requieren 20 Tflops de potencia informática continua para realizar simulaciones de sistemas a gran escala. El cálculo del plegamiento de proteínas requiere una velocidad de cálculo continuo de 1Tflops. Por otro lado, los grandes desafíos también plantean mayores requisitos para el almacenamiento de datos. Tomando como ejemplo la biología computacional, un espectrómetro de masas utilizado para el análisis de proteínas puede generar 100 GB de datos cada día, y 50 espectrómetros de masas1 pueden generar 5 TB de datos cada día. .
Actualmente, el IBM BlueGene/L más rápido del mundo tiene 131.072 procesadores y una velocidad Linpack de 280,6TFlops, alcanzando el 76,5 de su velocidad máxima (datos de noviembre de 2005). Sin embargo, los algoritmos paralelos generales se comunican con más frecuencia que Linpack y la localidad de acceso a la memoria no es tan buena como Linpack. Esto hace que su eficiencia paralela sea bastante baja, generalmente solo alcanza el 10% de la velocidad máxima del sistema, o incluso menos.
Para resolver eficazmente los principales problemas mencionados anteriormente, es necesario desarrollar un sistema informático petaflop de alto rendimiento, lo que requiere superar muchas dificultades, como la estructura del sistema, las herramientas de software y los algoritmos paralelos:
1. Control del consumo
A medida que aumenta la frecuencia de los procesadores modernos, su potencia también aumenta significativamente. El consumo de energía de los últimos procesadores ha superado los 100W. Esto hace que el problema del consumo de energía del propio sistema informático de alto rendimiento sea muy grave. Al mismo tiempo, debido a la gran cantidad de calor emitido por el sistema, se debe utilizar un sistema de aire acondicionado de alta potencia en la sala de computadoras para mantener la temperatura normal de la sala de computadoras del sistema. Estos dos factores hacen que el consumo total de energía del sistema sea muy grande y el costo de mantenimiento muy alto. Los resultados del análisis muestran que el principal costo de mantenimiento del futuro sistema provendrá del consumo de energía del sistema. Al desarrollar sistemas informáticos petaflop de alto rendimiento, debemos prestar atención al consumo de energía del sistema.
Actualmente existen varios métodos para abordar los problemas de consumo de energía del sistema. Uno es establecer un voltaje de funcionamiento más bajo para el procesador y obtener un alto rendimiento a través del paralelismo. Por ejemplo, la frecuencia de funcionamiento del procesador BlueGene/L. Solo hay 700 Mhz, por lo que la potencia de procesamiento de un solo núcleo es mucho menor que la de otros procesadores de alta frecuencia. Sin embargo, BlueGene/L utiliza una gran cantidad de procesadores para compensar la falta de capacidades de un solo procesador, logra un alto rendimiento general del sistema y obtiene una relación optimizada entre rendimiento y consumo de energía. Otro método es utilizar sensores de software y hardware para determinar y predecir las piezas que deben usarse y las que no, y luego reducir el consumo de energía de las piezas que no necesitan usarse inmediatamente a través de algunos medidas, como reducir la frecuencia o apagarlo por completo, logrando así el propósito de reducir el consumo de energía de todo el sistema. El trabajo en esta área se puede dividir en nivel de chip, nivel de placa base/BIOS y nivel de nodo según la diferente granularidad de control.
2. Software y algoritmos informáticos de alto rendimiento
Los sistemas de hardware de procesamiento paralelo a gran escala solo proporcionan una plataforma para la informática de alto rendimiento, y las funciones reales deben completarse mediante alto rendimiento. software de computación de alto rendimiento. El trabajo principal del software y algoritmos informáticos de alto rendimiento se puede dividir en tres categorías:
(1) Proponer algoritmos en serie con menor complejidad teórica o mejor rendimiento práctico
Aunque puede ser paralelo La informática se utiliza para acelerar las operaciones, pero el procesamiento paralelo a menudo requiere mayores costos de desarrollo de software y hardware. Por lo tanto, antes de desarrollar algoritmos paralelos, es necesario examinar si existe un mejor algoritmo en serie que pueda resolver el problema. Tomando el problema de clasificación de números enteros como ejemplo, usar el algoritmo de clasificación de burbujas paralelas no es tan efectivo como usar el algoritmo de clasificación rápida en serie. Por lo tanto, el estudio de algoritmos seriales eficientes es un tema importante en la investigación de algoritmos de alto rendimiento. Los algoritmos famosos incluyen el método simplex para problemas de programación lineal, FFT, clasificación rápida, algoritmo QR para valores propios de matrices, algoritmo multipolar rápido, etc. Los avances en algoritmos de los últimos años han llevado a los académicos indios a proponer algoritmos de complejidad polinómica sobre el problema de la determinación de números primos.
(2) Optimizar los algoritmos existentes
Los algoritmos solo proporcionan un rendimiento teórico. Para obtener un alto rendimiento en sistemas reales, se debe optimizar la implementación del algoritmo. La mayoría de los procesadores modernos utilizan caché multinivel para ocultar retrasos en el acceso a la memoria, por lo que el comportamiento de acceso a la memoria del algoritmo debe optimizarse de acuerdo con los parámetros de caché del sistema de destino. Además, muchos procesadores también proporcionan instrucciones SIMD y el uso razonable de estas instrucciones puede lograr un mayor rendimiento. Muchas bibliotecas matemáticas optimizadas, como ATLAS y MKL de Intel, se han optimizado especialmente para diferentes arquitecturas, especialmente configuraciones de caché, que pueden lograr una mayor eficiencia de ejecución y proporcionar una buena ayuda para la implementación de algoritmos de optimización.
(3) Desarrollo de algoritmos paralelos y aplicaciones paralelas
La investigación sobre algoritmos paralelos está relacionada pero también es diferente de los algoritmos en serie. Los algoritmos en serie excelentes no son necesariamente adecuados para la paralelización. A veces, los algoritmos que no son óptimos entre los algoritmos en serie pueden mostrar mayores ventajas cuando se implementan en paralelo. Para una computadora petaflop, la cantidad de procesadores (núcleos) es más de 100,000 y el paralelismo de aplicaciones paralelas requiere decenas de miles de procesos paralelos para utilizar efectivamente la computadora petaflop. Los tres objetivos principales de optimización de los algoritmos paralelos son: optimización de la comunicación, equilibrio de carga y maximización del área paralela.
El objetivo de la optimización de la comunicación es minimizar la cantidad de comunicaciones y la cantidad de comunicaciones, y reducir la degradación del rendimiento causada por la limitación del ancho de banda de comunicación entre procesadores. En programas paralelos a gran escala, el problema del equilibrio de carga también es muy importante. Una pequeña cantidad de tareas desequilibradas provocarán una fuerte caída del rendimiento. De manera similar, de acuerdo con la ley de Amdahl, el límite superior del índice de aceleración de la aplicación es el recíproco de la proporción del área en serie. Es decir, el 1% del área en serie en la aplicación hará imposible el índice de aceleración de toda la aplicación. superar los 100. Por lo tanto, lograr una tasa de aceleración ideal con decenas de miles de procesos paralelos plantea un gran desafío para el desarrollo de algoritmos paralelos.
3. Fiabilidad y capacidad de gestión del sistema
A medida que aumenta el número de nodos en el sistema, también aumenta la posibilidad de fallo del sistema. La característica de los programas paralelos es que mientras falle un proceso paralelo, todo el programa paralelo no se ejecutará con éxito. Una forma de abordar los problemas de confiabilidad es intentar mejorar la estabilidad del sistema, lo que incluye la confiabilidad del sistema de hardware y la confiabilidad del sistema de software. Sin embargo, la conclusión actualmente reconocida es que el fallo de los sistemas a gran escala es un requisito previo que debe considerarse durante el diseño, más que un problema que pueda resolverse por medios técnicos. Por lo tanto, es necesario considerar cómo garantizar que la calidad del servicio del sistema no disminuya significativamente incluso cuando falla un nodo del sistema.
La tecnología de monitoreo de fallas y la tecnología de reconstrucción dinámica del sistema se pueden usar para reducir o eliminar el impacto de las fallas del sistema en las aplicaciones, es decir, aislar los nodos problemáticos lo antes posible para que los usuarios puedan usar los nodos en estado normal. para cálculos. Tecnologías similares a la tecnología de reconstrucción dinámica del sistema incluyen la tecnología de partición dinámica del sistema, que se utiliza principalmente para proporcionar conjuntos de nodos independientes a diferentes usuarios, lo que hace que la gestión y el uso de todo el sistema sean más efectivos y seguros.
Sin embargo, la tecnología anterior solo puede resolver el problema de calidad del servicio del sistema para nuevas aplicaciones y no puede garantizar el procesamiento de aplicaciones ya ejecutadas cuando ocurre un problema en un determinado nodo informático. Algunas aplicaciones paralelas, como el procesamiento de datos petroleros, deben ejecutarse continuamente durante decenas de días. Una vez que ocurre un error en un determinado nodo, todos los cálculos anteriores se desperdiciarán y será necesario comenzar el cálculo desde cero. La tecnología de puntos de control paralelos proporciona principalmente tolerancia a fallas a nivel de aplicación, es decir, puede registrar automática y periódicamente el estado de los programas paralelos (llamados puntos de control). Después de que un nodo falla durante el proceso de cálculo, se puede recuperar a partir de los puntos de control registrados del programa paralelo. ejecución, evitando la necesidad de volver a ejecutar todo el programa.
Computación de alto rendimiento y procesamiento masivo de información
La cantidad de información generada por los humanos está creciendo a un ritmo exponencial. Cómo almacenar, recuperar y utilizar esta información plantea importantes desafíos para la tecnología de la información. . Desde la década de 1990, el rápido desarrollo de Internet ha brindado nuevas oportunidades para la difusión de información y los servicios. Los sistemas de servicios de información tradicionales se centran en bases de datos y una aplicación típica es OLTP (procesamiento de transacciones en línea). Los servicios masivos de recuperación y procesamiento de información representados por Google son otra aplicación importante, y los sistemas representados por los sistemas de clúster de Google representan otra dirección de desarrollo de los sistemas informáticos de alto rendimiento.
Las características de los sistemas de servicios de procesamiento y recuperación de información son muy diferentes de las de la informática científica, y también plantean diferentes requisitos para el sistema de procesamiento:
1. acceso frecuente a dinámicas La estructura de datos contiene muchas ramas impredecibles, lo que hace que muchas tecnologías en los procesadores superescalares existentes, como la predicción de ramas, la captación previa de datos, las funciones de ejecución especulativa y fuera de orden, no puedan funcionar bien y el nivel de instrucción de la aplicación paralelismo Pobre.
2. La mayoría de las aplicaciones de servicios y procesamiento de información tienen un buen paralelismo de datos y pueden ejecutarse fácilmente en sistemas distribuidos. Tomando la recuperación de información como ejemplo, una solicitud de recuperación de información se puede distribuir a múltiples servidores para su recuperación en paralelo y, finalmente, los resultados de la búsqueda se procesan de manera uniforme y se devuelven al usuario. La mayor parte del acceso en este proceso son datos de solo lectura, hay muy poca comunicación entre tareas paralelas y la eficiencia paralela es relativamente alta.
3. Los indicadores de rendimiento del sistema generalmente no se miden por el tiempo de respuesta de una única solicitud de servicio, sino que se centran más en el rendimiento general del sistema.
Tomando como ejemplo los motores de búsqueda, los sistemas de servicios de información prestan más atención al número de búsquedas de usuarios que se pueden completar en 1 minuto y no son particularmente sensibles a si una sola búsqueda se completa en 0,5 segundos o 1 segundo.
4. El sistema requiere alta confiabilidad y mantenibilidad. La confiabilidad se refiere a los servicios, es decir, el sistema debe poder brindar servicios a los usuarios de manera casi ininterrumpida. La mantenibilidad significa que el reemplazo y la reparación del sistema se pueden completar de manera simple y rápida, y que los nodos recién reemplazados se pueden agregar rápidamente al sistema.
5. Esto incluye tanto el costo de construcción del sistema como el costo total de propiedad. La escala del sistema necesaria para el procesamiento y los servicios masivos de información es extremadamente grande. Google Cluster alcanzó una escala de 15.000 computadoras en 2003. Para un sistema de tan gran escala, es necesario reducir el costo tanto como sea posible.
Para cumplir eficazmente con los requisitos anteriores de los sistemas de servicios y procesamiento de información, las personas también han llevado a cabo investigaciones y prácticas sobre cómo construir eficientemente los sistemas de servicios correspondientes:
1. La tecnología para pasar El software proporciona confiabilidad
En sistemas a gran escala, la falla de un solo nodo del sistema es inevitable. Los métodos existentes para mejorar la confiabilidad del sistema a través de hardware subyacente redundante, como fuentes de alimentación redundantes y tecnología RAID, son costosos y tienen una mala relación rendimiento-precio. Por el contrario, el software puede utilizarse ampliamente en sistemas de servicios de información para proporcionar confiabilidad a nivel de servicio. El método principal es utilizar réplicas, es decir, replicar servicios y datos en múltiples nodos del sistema. Incluso si la confiabilidad de un solo nodo del sistema no es muy alta, múltiples réplicas brindan la confiabilidad requerida del servicio. Otra ventaja de utilizar tecnología de réplica es que mejora la confiabilidad y el rendimiento del sistema, es decir, múltiples nodos del sistema que almacenan réplicas pueden brindar servicios a los usuarios al mismo tiempo.
2. Preste atención a la relación rendimiento/precio del sistema.
Debido a las características de fácil paralelización de las aplicaciones del sistema de servicios de información, el método de utilizar una gran cantidad de aplicaciones de bajo costo. Los sistemas finales son más rentables que usar una pequeña cantidad de sistemas de alta gama. Tiene más ventajas en términos de rendimiento (el sistema de gama baja aquí se refiere a una PC o servidor de nivel básico con 1 o 2 CPU, y el El sistema de alta gama se refiere a un servidor de procesador a gran escala, como el servidor Superdom de HP, el servidor P690 de IBM, etc.). Además, los sistemas de servicios de información enfrentan los mismos desafíos que los sistemas de alto rendimiento para la computación científica: problemas de consumo de energía. En los sistemas de servicio y procesamiento de información a gran escala, los costos de electricidad (incluido el consumo de energía del propio sistema y el consumo de energía del sistema de aire acondicionado) representarán una gran parte del costo total de propiedad. Por lo tanto, al seleccionar un sistema, también es un principio importante elegir un sistema con una alta relación rendimiento/consumo de energía.
(3) Utilizar procesadores multinúcleo
Debido a las características del programa de servicios de información, es más adecuado utilizar un procesador compuesto por múltiples núcleos simples, que solo necesitan ejecutarse en secuencia y utilizar canalizaciones más cortas. Dado que el paralelismo a nivel de instrucciones de las aplicaciones de servicios de información es deficiente, la ejecución en orden no causará demasiada degradación del rendimiento, pero puede salvar circuitos unitarios de ejecución complejos fuera de orden, reduciendo así el consumo de energía. Por otro lado, un proceso más corto puede reducir la sobrecarga de las predicciones erróneas de las sucursales.
Computación paralela y ordenadores personales
Con el desarrollo de la tecnología de semiconductores, el número de componentes que se pueden integrar en un único chip seguirá creciendo exponencialmente en los 5 a 10 años siguientes a la revolución de Moore. Ley. . Sin embargo, la tecnología actual de disipación de calor del chip ya no puede soportar un mayor aumento en la frecuencia del chip, y los métodos para mejorar aún más la velocidad de ejecución de un solo subproceso en la arquitectura aumentando el ancho de emisión, mejorando la eficiencia de predicción de rama y la captación previa de datos se han perdido gradualmente. su eficacia. Los chips multinúcleo se han convertido en la principal tendencia de desarrollo de los microprocesadores al integrar múltiples núcleos de procesador en un chip y utilizar el paralelismo a nivel de subprocesos para mejorar el rendimiento del procesador. IBM lanzó chips Power de doble núcleo hace unos años, y los chips de doble núcleo lanzados por Intel y AMD en 2005 marcaron la entrada de la tecnología multinúcleo en la etapa de popularización.
También están surgiendo rápidamente chips de procesador que admiten más núcleos. Por ejemplo, Sun lanzó un chip Nigeria de 8 núcleos para aplicaciones de servidor que mejoran el rendimiento; IBM ha unido fuerzas con Sony y Toshiba para lanzar un chip Cell de 9 núcleos para aplicaciones de entretenimiento. . Intel incluso está planeando procesadores con más de 100 núcleos.
La aparición de los procesadores multinúcleo ha traído nuevos retos al uso de los ordenadores. A medida que los procesadores multinúcleo se vuelvan más comunes, miles de computadoras de escritorio se convertirán en computadoras paralelas. La mayoría de las aplicaciones que se ejecutan actualmente en computadoras de escritorio son programas de un solo subproceso que no pueden utilizar de manera efectiva las capacidades proporcionadas por los procesadores de múltiples núcleos. Cómo utilizar eficazmente múltiples núcleos de procesador en computadoras personales se ha convertido en un tema de investigación importante en el campo de la informática de alto rendimiento. A juzgar por las tendencias actuales, existen principalmente las siguientes direcciones:
1. bandas de tareas Próximamente Concurrencia
La computadora doméstica ViiV de doble núcleo de Intel es un ejemplo clásico de esto. El patrón de uso típico de una computadora ViiV es que una persona usa la computadora ViiV en la sala de estar para ver películas y la otra usa la misma computadora en su habitación para jugar. Las dos personas usan diferentes núcleos de procesador en la misma computadora. logrando así el uso efectivo de núcleos duales El propósito de la habilidad. Sin embargo, este modelo que depende de que varios usuarios usen una computadora al mismo tiempo tiene grandes limitaciones, porque el número de miembros de la familia es limitado y este modelo no puede brindar soporte efectivo para procesadores multinúcleo con más de 4 núcleos.
2. Agregar las capacidades de múltiples núcleos para acelerar la velocidad de ejecución de programas en serie.
Los informáticos están estudiando un método llamado tecnología especulativa de subprocesos múltiples (TLS: Thread-Level Speculation). , que puede analizar automáticamente programas en serie, especular sobre las partes que se pueden ejecutar en paralelo y ejecutarlas en paralelo en múltiples núcleos. Pero una vez que se descubre que hay un conflicto en la parte de ejecución paralela, se cancela la ejecución de uno de los subprocesos en conflicto, se realiza la operación de compensación y se vuelve a ejecutar el subproceso. Se especula que la ventaja de la tecnología de subprocesos múltiples es que puede acelerar programas de un solo subproceso existentes en sistemas de múltiples núcleos sin la intervención del usuario. Su desventaja es que la mejora del rendimiento es limitada, solo puede hacerlo en un sistema de 4 núcleos. mejorar el rendimiento en un 30% en comparación con un solo núcleo%, y si se aumenta el número de núcleos, la aceleración no aumentará significativamente. Por lo tanto, este método no puede admitir procesadores con más núcleos.
Otra tecnología prometedora es la paralelización automática. La tecnología de paralelización automática puede identificar el paralelismo en programas en tiempo de compilación y convertirlos en programas paralelos de subprocesos múltiples. En el pasado, la tecnología de paralelización automática estaba orientada principalmente a sistemas SMP, pero no tuvo mucho éxito porque la paralelización automática no podía lograr una relación de aceleración satisfactoria para aplicaciones reales. No es satisfactorio que un programa obtenga una relación de aceleración de 20 en un sistema SMP de 4 CPU mediante paralelización automática, porque el precio de un sistema de 4 CPU suele ser más de 10 veces el precio de una sola CPU y la paralelización automática no puede Proporcionar ventajas en la relación rendimiento-precio. Pero para los sistemas multinúcleo, si podemos obtener una aceleración del 20% mediante la paralelización automática en un sistema de cuatro núcleos, debería ser un resultado más satisfactorio, porque estos núcleos se proporcionan a los usuarios "gratis", es decir, los usuarios no pueden utilice cuatro núcleos. Compre un procesador de un solo núcleo a 1/4 del precio de un procesador central. Por lo tanto, la popularidad de los procesadores multinúcleo en las computadoras domésticas reducirá en gran medida las expectativas de las personas sobre el efecto de la paralelización automática, lo que hará que la tecnología de paralelización automática sea nuevamente aceptada y aplicada.
3. Paralelizar las aplicaciones de escritorio existentes
Dado que el uso de procesadores multinúcleo para acelerar las aplicaciones en serie no puede utilizar completamente las capacidades de los procesadores multinúcleo, paralelizar las aplicaciones de escritorio existentes se convierte en una opción importante. .
La investigación en esta área analiza principalmente las aplicaciones de escritorio existentes y paraleliza manualmente las aplicaciones representativas. Estos estudios intentan responder las siguientes preguntas: ¿Qué aplicaciones de escritorio se pueden paralelizar de manera efectiva y cuáles no? ¿Qué tan difícil es la paralelización en sí? ¿Cómo se pueden mejorar los modelos de programación, las herramientas de programación y el software del sistema existentes para respaldar mejor la paralelización de aplicaciones?
Las investigaciones muestran que la mayoría de las aplicaciones en sistemas de escritorio, como procesamiento de imágenes, operaciones de gráficos 3D, codificación y decodificación de datos multimedia, minería de datos y texto, búsqueda de texto y medios, juegos y juegos, etc., pueden ser efectivas. está paralelizado y ejecutado de manera eficiente en sistemas multinúcleo. Sin embargo, la sobrecarga de la paralelización manual de programas sigue siendo muy alta. Los programadores paralelos deben comprender los conocimientos relevantes de la computación paralela y tener cierta comprensión de la arquitectura de la computadora, los sistemas operativos, los principios de compilación, etc. para poder escribir programas paralelos eficientes. Los modelos de programación paralela y las herramientas de programación paralela también deben brindar un mejor soporte para ayudar a los programadores paralelos a desarrollar y depurar programas paralelos.
Hoy en día, la tecnología informática de alto rendimiento se ha convertido en la tecnología líder en todo el campo informático. Con la aparición de los procesadores multinúcleo, la tecnología de computación paralela pronto se popularizará en todas las computadoras y penetrará en todos los aspectos de nuestras vidas. Este es un cambio importante en la historia del desarrollo de la industria informática y una oportunidad única para nuestro país. . Durante el período del "Undécimo Plan Quinquenal", nuestro país fortalecerá aún más su apoyo a la investigación de tecnología informática de alto rendimiento, se centrará en guiar a las empresas para que apliquen tecnología informática de alto rendimiento para promover la modernización industrial y la innovación tecnológica, y al mismo tiempo preste más atención especial a la educación y capacitación en tecnología informática de alto rendimiento. Los cursos de programación paralela se ofrecen ampliamente en carreras de ciencias e ingeniería en colegios y universidades para cultivar más talentos que comprendan y utilicen la tecnología informática de alto rendimiento y logren un desarrollo a gran escala en esta área. cambiar.
Acerca del autor
Chen Wenguang
Ph.D. en Ciencias de la Computación por la Universidad de Tsinghua, profesor asociado en el Departamento de Ciencias de la Computación de la Universidad de Tsinghua y subdirector del Centro de Evaluación de Computadoras de Alto Rendimiento 863. Se desempeñó como ingeniero jefe de Opportunity International Inc. Las principales áreas de investigación son la programación de modelos de computación paralela, la compilación paralela y el análisis de aplicaciones paralelas.
Enlace: Tendencia de desarrollo de la informática de alto rendimiento
Con las necesidades de las aplicaciones y el desarrollo de la tecnología informática en sí, el desarrollo de la informática de alto rendimiento en los últimos años ha mostrado algunas novedades. características, que se pueden utilizar como " "Grande, ancho, pequeño" representan estas tres características:
"Grande" se refiere al desarrollo de sistemas informáticos de alto rendimiento a mayor escala, con la cantidad de procesadores llegando a más de 100.000, se utiliza principalmente para resolver problemas de simulación numérica a muy gran escala.
"Amplio" significa que, además de los cálculos numéricos tradicionales, los sistemas informáticos de alto rendimiento se utilizan cada vez más en los campos del procesamiento y los servicios de información, proporcionando almacenamiento y recuperación eficaces de información masiva y garantía de servicios de red. .
"Pequeño" se refiere a la aparición y popularización de las CPU de múltiples núcleos, que harán de cada computadora personal en el futuro una computadora paralela. Cómo utilizar de manera efectiva múltiples núcleos de computadoras personales es una propuesta de alto nivel. Tecnología informática de alto rendimiento.