Los sistemas computacionales son sin duda alguna
indispensables para múltiples actividades cotidianas. Podemos realizar
actividades de oficina, buscar puntos específicos en la ciudad, ver fotos,
editar videos, reproducir música, y muchas otras cosas más. Sin embargo, muchas
de las aplicaciones más recientes no existirían de no haber sido por el
desarrollo de los lenguajes de programación, y de las computadoras mismas.
Todos los lenguajes de programación tienen su origen en un
lenguaje final: el binario. El binario es el verdadero dialecto computacional.
Pero este no es un lenguaje que sea fácil de programar, y mucho menos de leer. Dado
esto, se implementó una tecnología que permitiera a un usuario con conocimientos suficientes acerca del hardware,
para poderlo programar: el ensamblador.
Una de las variantes del ensamblador, es la implementación
tipo SIMD (Simple Instruction, Multiple Data). Este tipo de implementaciones en
ensamblador permiten agilizar el procesamiento de instrucciones que se repiten
(como en un ciclo for en C), de tal forma que se aprovechan los componentes del
procesador (registros y memoria caché, principalmente). Sin embargo, el uso de
este tipo de implementaciones tiene ciertas restricciones:
· 1. No es fácil escribir un programa en ensamblador
si no se tiene una idea de qué se va a hacer.
· 2. Al nivel de programación que tenemos hoy en día
(por la complejidad de los lenguajes para su fácil uso), si no sirve en un
lenguaje de nivel superior a ensamblador, no tiene caso hacerlo en ensamblador.
· 3. Dependiendo de la arquitectura del procesador,
se deben considerar el número de bits y bytes a procesar en los registros.
· 4. El total de bytes a procesar debe ser múltiplo
del total de registros a utilizar, siendo también congruente con el número de
bits de éstos.
Este tipo de implementaciones resulta interesante, ya que
una aplicación puramente en C, puede alcanzar speed ups de más de 20 unidades,
cuando la implementación del código paralelizable es una extensión SIMD bien
realizada.
No hay comentarios.:
Publicar un comentario