Categorías: Tecnología

Logran multiplicar la velocidad de programas de Unix sin aumentar los errores

Comparta este Artículo en:

Investigadores han desarrollado un nuevo sistema que puede hacer que algunos programas informáticos se ejecuten más rápido, garantizando al mismo tiempo que la precisión no disminuya.

El nuevo sistema aumenta la velocidad de los programas que se ejecutan en la shell de Unix, un entorno de programación omnipresente creado hace medio siglo y que sigue siendo ampliamente utilizado en la actualidad.

El método paraleliza estos programas, lo que significa que divide los componentes del programa en piezas que pueden ejecutarse simultáneamente en varios procesadores del computador.

Esto permite que los programas ejecuten tareas como la indexación de webs, el procesamiento del lenguaje natural o el análisis de datos en una fracción de su tiempo de ejecución original.

Hay mucha gente que utiliza este tipo de programas, como analistas de datos, biólogos, ingenieros y economistas.

Ahora pueden acelerar automáticamente sus programas sin temor a obtener resultados incorrectos“, destaca Nikos Vasilakis, científico del Laboratorio de Ciencias de la Computación e Inteligencia Artificial (CSAIL), adscrito al Instituto Tecnológico de Massachusetts (MIT), en Cambridge, Estados Unidos.

Vasilakis preside un comité de investigadores de todo el mundo que lleva casi dos años trabajando en este sistema.

El nuevo sistema, denominado PaSh, también facilita las cosas a los programadores que desarrollan las herramientas que utilizan los analistas de datos y esos otros usuarios típicos.

Los programadores no necesitan hacer ningún ajuste especial en los comandos de sus programas para permitir esta paralelización automática y sin errores.

PaSh se centra en programas, o scripts, que se ejecutan en la shell de Unix.

Un script es una secuencia de comandos que ordena a un computador realizar un cálculo.

Entre otros motivos, la shell de Unix sigue siendo popular porque es el único entorno de programación que permite que un script se componga de funciones escritas en varios lenguajes de programación.

Hay tareas o tipos de datos específicos para los que resulta idóneo un lenguaje de programación en particular; si un desarrollador utiliza el lenguaje adecuado, la resolución de un problema puede ser mucho más fácil.

Aunque la shell de Unix permite crear scripts multilingües, su estructura flexible y dinámica hace que estos scripts sean difíciles de paralelizar utilizando métodos tradicionales.

Paralelizar un programa suele ser complicado porque algunas partes del programa dependen de otras.

Esto determina el orden en que los componentes deben ejecutarse; si se equivoca el orden, el programa falla.

Cuando un programa está escrito en un único lenguaje, los desarrolladores disponen de información explícita sobre sus características y el lenguaje que les ayuda a determinar qué componentes pueden paralelizarse.

Pero esas herramientas no existen para los scripts en la shell de Unix.

Los usuarios no pueden ver fácilmente lo que ocurre dentro de los componentes ni extraer información que ayude a la paralelización.

Para superar este problema, PaSh utiliza un paso de preprocesamiento que inserta anotaciones simples en los componentes del programa que cree que podrían ser paralelizables.

A continuación, PaSh intenta paralelizar esas partes del script mientras el programa se está ejecutando, en el momento exacto en que llega a cada componente.

Esto evita otro problema en la programación con la shell: es imposible predecir el comportamiento de un programa por adelantado.

Al paralelizar los componentes del programa en el momento preciso de su ejecución, el sistema evita ese problema.

Es capaz de acelerar eficazmente muchos más componentes que los métodos tradicionales que intentan realizar la paralelización por adelantado.

La paralelización en el momento de la ejecución también garantiza que el programa acelerado siga suministrando resultados precisos.

Si PaSh llega a un componente del programa que no puede ser paralelizado (quizás depende de un componente que aún no se ha ejecutado), simplemente ejecuta la versión original y evita causar un error.

Fuente: MIT News

Editor PDM

Entradas recientes

Mano robótica capaz de manipular objetos

Recientemente, Sanctuary AI presentó su mano robótica que ahora es capaz de manipular objetos. (more…)

3 days hace

Robots atraviesan entornos complejos sin sensores adicionales ni entrenamiento previo en terrenos difíciles

Especialistas en robótica de la Universidad de Leeds y el University College de Londres han…

3 days hace

Rompiendo barreras: IA para interpretar el lenguaje de señas americano en tiempo real

El lenguaje de señas es un medio de comunicación sofisticado y vital para las personas…

3 days hace

Dispositivo ayuda a personas con discapacidad visual a realizar tareas de localización tan bien como las personas videntes

Según un nuevo estudio dirigido por el Imperial College, una tecnología de navegación que utiliza…

3 days hace

Google lanza una versión de Gemini 2.0 capaz de razonar

Gemini 2.0 Flash Thinking Experimental es una nueva versión de la IA de Google que…

3 days hace

El siguiente paso de la computación cuántica: un nuevo algoritmo potencia la multitarea

Las computadoras cuánticas difieren fundamentalmente de las clásicas. En lugar de utilizar bits (0 y…

4 days hace
Click to listen highlighted text!