¿Qué es simultanéité?
El término simultanéité se utiliza en informática para describir la capacidad de ejecutar múltiples tareas de software en paralelo utilizando sistemas multiprocesador, lo que reduce los tiempos de procesamiento en comparación con un enfoque de un solo hilo.
¿Por qué es importante simultanéité ?
Sin capacidades simultanéité , las aplicaciones no pueden escalar horizontal ni verticalmente. Las aplicaciones serían lentas. Los servidores no podrían manejar más de 20 usuarios, incluso si se escriben de manera eficiente. Incluso los sistemas de borde con pequeñas huellas están diseñados para explotar el hardware multiprocesador, ya que los sistemas de un solo núcleo se han convertido en una rareza.
Cómo se aplica simultanéité
A continuación se ofrecen ejemplos de cómo ha evolucionado simultanéité para dar soporte a las aplicaciones modernas.
Multiprocesamiento Mainframe
La primera generación de ordenadores, ejemplificada por el famoso IBM System/360, eran sistemas uniprocesadores. Los programas de software se organizaban en colas para el procesamiento por lotes. Un programa podría haber sido una baraja de tarjetas perforadas, y la salida habría sido una impresión en papel. En la década de 1980, se introdujo simultanéité con los primeros sistemas de doble procesador, el IBM 3081 y el 3084 de 4 vías. Las nuevas utilidades de entrada de trabajos permitieron a estos sistemas procesar múltiples flujos de software. Como cada processeur costaba 1 millón de dólares, estos sistemas sólo los utilizaban empresas del Fortune 500. El primer sistema multiusuario en línea, como IBM CICS, estaba vinculado a un único procesador, lo que limitaba enormemente el número de usuarios y las tasas de transacción.
Ordenadores Tandem Non-Stop
Los sistemas bancarios y bursátiles utilizaban sistemas Tandem y Stratus para proteger las transacciones de los fallos del sistema. Estos sistemas proporcionaban simultanéité utilizando hardware redundante que ejecutaba cada transacción en paralelo. Si un sistema fallaba, el servidor funcional restante se convertía en el motor de ejecución principal.
Escalabilidad vertical
Hoy en día, las CPU suelen llevar 4 u 8 núcleos en un solo chip. En los años 90, los sistemas de multiprocesamiento simétrico de Sequent, HP e IBM se hicieron populares porque permitían escalar verticalmente las aplicaciones en un único servidor. Se podía dar soporte a más usuarios simplemente actualizando el hardware.
Escalabilidad horizontal
Las aplicaciones pueden escribirse para escalar a través de múltiples servidores físicos en el mismo centro de datos o rack conectados por una interconexión de alta velocidad. Estos sistemas estrechamente acoplados se conocen como clusters. Los primeros clusters fueron el IBM Parallel Sysplex, los VAX Clusters y los Sun Clusters. Ahora, las aplicaciones ya no se limitaban a escalar en un único servidor; también podían escalar en todos los servidores del clúster.
simultanéité mediante sistemas de procesamiento paralelo masivo
Los primeros clústeres se limitaban a unos ocho nodos. El IBM SP2 MPP podía soportar clusters de 64 nodos en una sola caja. Hoy en día, los superordenadores pueden escalar miles de nodos. Por ejemplo, aplicaciones como las simulaciones meteorológicas utilizan simultanéité para ejecutar un modelo del tiempo global en tiempo real.
Clústeres Hadoop
El proyecto de código abierto Hadoop popularizó el MPP mediante el uso de servidores económicos basados en Intel y software libre. Acción
| Motor de análisis de Actian |
Clientes como Expandium utilizan un clúster de Hadoop de 12 nodos para analizar de forma rentable más de mil millones de registros de llamadas al día, aprovechando la escalabilidad tanto vertical como horizontal que ofrece Actian Analytics Engine.
Apoyo a más usuarios
simultanéité se utiliza a menudo para describir cuántos usuarios están conectados a una aplicación, como un sistema de base de datos. A medida que llegan nuevas solicitudes de conexión, se asignan al siguiente procesador mediante un algoritmo de asignación circular round-robin o aleatorio. El software de gestión de la carga de trabajo garantiza una utilización uniforme de todos los recursos de processeur disponibles.
simultanéité en la nube
Las plataformas de nube pública añaden una nueva dimensión a simultanéité gracias a la elasticidad masiva. Las aplicaciones en la nube pueden escalar hasta millones de usuarios simultáneos. La computación sin servidor ofrece la posibilidad de simultanéité ilimitada.
Actian y simultanéité
Actian Data Platform utiliza una capacidad de consulta altamente paralela que proporciona el motor de base de datos con procesamiento vectorial integrado. Actian Analytics Engine puede tomar una consulta SQL grande y compleja y paralelizarla para aprovechar todos los núcleos de CPU de un único sistema y de todo un clúster, con el fin de devolver el conjunto de resultados más rápido que cualquier otra base de datos. Esto es posible, en parte, gracias a su capacidad para utilizar la tecnología Intel SIMD, que permite que una sola instrucción ejecutada en un núcleo de CPU procese en paralelo los datos almacenados en caché en los registros de todas las demás CPU del sistema.
Actian Data Platform funciona en las instalaciones y en la nube. La tecnología de integración de datos incorporada se conecta a cientos de fuentes de datos. Los conectores de datos externos admiten el acceso SQL a formatos Spark.
Preguntas frecuentes
La concurrencia es la capacidad de ejecutar varias tareas de software en paralelo mediante sistemas multiprocesador, lo que reduce los tiempos de procesamiento en comparación con un enfoque de un solo subproceso.
Sin capacidades de concurrencia, las aplicaciones no pueden escalar horizontal ni verticalmente, serían lentas y los servidores no podrían gestionar más de 20 usuarios, aunque estuvieran programados de forma eficiente.
La escalabilidad vertical permite que las aplicaciones admitan un mayor número de usuarios mediante la actualización del hardware dentro de un mismo servidor, por ejemplo, añadiendo más núcleos de CPU para aumentar la capacidad de procesamiento.
La escalabilidad horizontal permite que las aplicaciones se distribuyan entre varios servidores físicos del mismo centro de datos o rack, conectados mediante una interconexión de alta velocidad, formando sistemas estrechamente integrados conocidos como clústeres.
Las plataformas de nube pública aportan una gran elasticidad a la concurrencia, lo que permite que las aplicaciones en la nube se adapten a millones de usuarios simultáneos, mientras que la computación sin servidor ofrece la posibilidad de una concurrencia ilimitada.
La concurrencia describe el número de usuarios conectados a una aplicación, como un sistema de bases de datos, en la que las nuevas solicitudes de conexión se asignan a los procesadores mediante algoritmos de asignación por turnos o aleatoria.