Viernes, 28 de Noviembre de 2025

Actualizada Viernes, 28 de Noviembre de 2025 a las 19:06:03 horas

Tienes activado un bloqueador de publicidad

Intentamos presentarte publicidad respectuosa con el lector, que además ayuda a mantener este medio de comunicación y ofrecerte información de calidad.

Por eso te pedimos que nos apoyes y desactives el bloqueador de anuncios. Gracias.

Redacción
Miércoles, 15 de Junio de 2022
Informática

Multiplicar la velocidad de programas de Unix sin aumentar los errores

Unos 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 ordenador.

 

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 ordenador realizar un cálculo.

 

[Img #66428]

La nueva técnica aumenta la velocidad de los programas que se ejecutan en la shell de Unix al paralelizar los programas, pero evita las situaciones que pueden conducir a errores. (Imagen: Christine Daniloff, MIT. CC BY-NC-ND 3.0)

 

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: NCYT de Amazings)

 

 

Copyright © 1996-2022 Amazings® / NCYT® | (Noticiasdelaciencia.com / Amazings.com). Todos los derechos reservados.

Depósito Legal B-47398-2009, ISSN 2013-6714 - Amazings y NCYT son marcas registradas. Noticiasdelaciencia.com y Amazings.com son las webs oficiales de Amazings.

Todos los textos y gráficos son propiedad de sus autores. La reproducción está permitida solo si se incluye el crédito de la fuente (NCYT Amazings) y un enlace dofollow hacia la noticia original.

Excepto cuando se indique lo contrario, la traducción, la adaptación y la elaboración de texto adicional de este artículo han sido realizadas por el equipo de Amazings® / NCYT®.

Con tu cuenta registrada

Escribe tu correo y te enviaremos un enlace para que escribas una nueva contraseña.