Está en la página 1de 3

1

Computacion Paralela en
Dispositivos Móviles
Hernán David Avila Echeverry 1410013428, Gabriel Fernando Vásquez Niño
1510010902, John Henry Suarez Gómez 1410013448.
Facultad de Ingeniería y Ciencias Básicas
Institución Universitaria Politécnico Grancolombiano
Bogotá, Colombia.
hdavilae@poligran.edu.co
gfvasquez@poligran.edu.co
jhsuarez12@poligran.edu.co

RESUMEN

Desde hace algunos años ha sido notorio el desarrollo creciente que a raíz de ese problema nace lo que conocemos hoy en día
de dispositivos móviles y de computo con más de un procesador como computación paralela que en su momento a finales de
o de procesadores con varios núcleos. Incluso hoy en día, es los años 50 se vio expresado en forma de supercomputadores
común observar que un ordenador corriente cuente con un que aparecieron en los años 60 y 70 y contaban con memoria
procesador de dos o cuatro núcleos, y que un dispositivo móvil compartida, mediante la cual todos los procesadores disponen
gama media disponga por lo menos de un procesador y cuatro de un espacio de direccionamiento común. Atendiendo a la
núcleos. Todo esto con el fin de proporcionar una mejor forma en la que la memoria está distribuida.
experiencia al usuario final en cuanto a rendimiento y
eficiencia. No sin antes mencionar que la razón de ser de todos Posterior a ello a mediados de los 80 gracias al proyecto
estos cambios es gracias a la programación paralela y sus “Concurrent Computation” de Caltech se construye un tipo
ventajas de las que hablaremos a continuación. Específicamente nuevo de computador paralelo, el cual evidencio que se podría
en dispositivos móviles, debido a que se han instaurado en lograr un rendimiento de extremo a extremo usando
nuestras vidas y cada día están siendo usados por un mayor microprocesadores regulares, disponibles en el mercado en ese
número de personas. periodo de tiempo.

Palabras clave: Dispositivo, Sistema operativo, Programación Finalizando los 80 los clústeres se dieron a conocer. Vale
Paralela, CPU.GPU, Núcleos, RAM. aclarar que un clúster es un tipo de computador paralelo,
construido a partir de múltiples computadores, conectados
usando una red. Hoy en día son la arquitectura dominante de
I. OBJETIVO los datacenters.

Propiciar el entendimiento de los conceptos de computación A mediados de los 90 para el procesamiento masivamente
paralela y reconocer la importancia de esta en los dispositivos paralelo MPP (Diseño de procesamiento paralelo para evitar
móviles. Identificado sus ventajas, desventajas y componentes cuellos de botella en el bus de memoria, el cual no emplea
de hardware asociados. memoria compartida y en su lugar distribuye la memoria RAM
entre los procesadores) y Clústeres surgió El estándar MPI
II. INTRODUCCION (Interfaz de paso de mensaje. Estándar que define la sintaxis y
Hace algunos años hubo un periodo de tiempo en el que los semántica de las funciones contenidas en una biblioteca de
procesadores trabajaban de manera secuencial, es decir cuando paso de mensajes, diseñada para ser usada en programas que
una tarea va después de otra. Un proceso lento en que, si una exploten la existencia de múltiples procesadores) que
tarea se retrasa, el sistema completo debe esperar. convergió de otras API. Para los multiprocesadores con
En aquel periodo de tiempo un procesador poderoso memoria compartida, un proceso de convergencia similar se
significaba básicamente un aumento en las frecuencias de reloj observo a finales de los 90 con el surgimiento de pthreads y
y mayor cantidad de transistores lo que en conjunto traducía openMP.
en un mayor poder de computo. Sin embargo, se llegó el
momento en que no fue posible seguir aumentando el En la actualidad la computación paralélela se ha convertido en
rendimiento de los programas de manera automática debido a un tema muy importante para la construcción de máquinas y
que las frecuencias de reloj alcanzaron su límite. Es entonces dispositivos móviles. Su importancia radica en varios factores
entre los más importantes tenemos: Disminuir el tiempo total
2
de ejecución de una aplicación, Obtención de resultados en Sin embargo, debido a la naturaleza de los disipativos móviles,
menos tiempo, ejecución de varias instrucciones en nos encontramos con algunas limitaciones que nos impiden
simultaneo, permitir dividir una tarea en partes independientes obtener el mayor rendimiento como entre algunos tenemos:
entre otras. Permitiendo así que el paralelismo no este alejado
del publico general, si no que por el contrario este esperando Eficiencia: Un factor importante para el funcionamiento de un
ser aprovechado dentro de cualquiera de nuestros dispositivos procesador es la eficiencia Normalmente entre más poderoso
móviles personales. Es por ello que las personas del común no sea el procesador, más energía utilizará y la batería durará
solo se enfocan al tomar una decisión de compra en las menos. Hay casos donde los fabricantes prefieren incluir un
características físicas del equipo como hace unos años, puesto chip de menor potencia con tal de que la batería dure más
que ya tienen conocimientos básicos que les permiten estar tiempo.
interesados en la manera en que cada uno de estos está
construido tanto en hardware como en software debido al Ancho de Banda: Los protocolos de comunicación actuales
crecimiento del negocio de los dispositivos móviles que cada entre teléfonos móviles no ofrecen un gran ancho de banda,
vez evoluciona más enfrente de nuestros ojos. haciendo que los mensajes intercambiados entre teléfonos
tarden demasiado en enviarse.
III. DESARROLLO
Latencia: Los protocolos actuales tienen demasiada latencia
Tras el paso de los años la elección de un dispositivo móvil se (retardos) a la hora de enviar un mensaje, haciendo que
ha reducido prácticamente a la elección de un buen procesador, supongan un cuello de botella para la aplicación, aunque sean
ya que el usuario moderno sabe que a mejor procesador mejor de muy pequeño tamaño. Estos problemas se agravan debido
experiencia en cuanto a uso del sistema operativo y sus a la interferencia con otras ondas de radio.
aplicaciones debido a que cada vez son más robustas.
Consumo de energía: El cálculo intensivo que requiere este
Partiendo de este echo la tecnología va ofreciendo mas tipo de aplicaciones hace que la batería de los teléfonos
posibilidades tanto a desarrolladores de aplicación como para móviles se consuma a una mayor velocidad.
los de sistemas operativos, debido a que estos no se alejan
demasiado conceptualmente de un portátil o un computador. Memoria: Algunas aplicaciones pueden requerir una cantidad
Funcionan gracias a que hay un SO que se ejecuta sobre una de memoria que algunos dispositivos gama baja no tienen
plataforma de hardware compuesta por un procesador (CPU), disponible.
un acelerador grafico (GPU), memoria, comunicaciones,
conexión a internet, pantalla y una interfaz con métodos para Sin embargo, para mitigar este tipo de limitaciones los
las entradas de datos mediante el teclado táctil o mediante el desarrolladores emplean herramientas de programación paralela
uso de la voz. Pero a diferencia de los ordenadores o portátiles que permiten acelerar las aplicaciones sacando máximo
donde muchos de sus componentes están perfectamente provecho de las GPU y CPU mediante lenguajes de
diferenciados, en los dispositivos móviles lo que se hace es programación comunes como C, C ++, Fortran, Python, Java
integrarlos todos en un SoC (Sistema en chip) además de entre otros expresando paralelismo a través de extensiones en
diseñarse para funciones específicas, no obstante, pueden forma de algunas palabras clave básicas. Dentro de estas
llevar a cabo otras funciones mas generales para las que no herramientas tenemos:
fueron creados.
RenderScript: Es un lenguaje de script para Android que permite
Para llevar a cabo la computación paralela normalmente se escribir código de alto rendimiento para la renderización de
desarrollan algoritmos paralelos a partir de algoritmos gráficos y código computacional nativo, proporcionando un
secuenciales y se lleva a cabo la implementación de estos, medio donde escribir código cuyo rendimiento es crítico, y que
mediante algún lenguaje o herramienta de programación después el sistema compila a código nativo del procesador en el
paralela y posteriormente se ejecutan en todos lo núcleos de un que se ejecutara. Este procesador podría ser la CPU de
procesador. Entiéndase por núcleo la cantidad de “capas” que dispositivo, una CPU con varios núcleos o incluso la GPU.
tiene un procesador, cada uno de estos núcleos puede hacer una
tarea por separado. Los núcleos tienen un tiempo o velocidad
para hacer una determinada tarea, es decir tienen una frecuencia CUDA: Es una plataforma de computación paralela y un modelo
para realizar una tarea, si hay más núcleos la velocidad total de de programación desarrollado por NVIDIA para computación
procesamiento será más rápida, pero si la velocidad de general en unidades de procesamiento gráfico (GPU). Con
procesamiento de cada núcleo es pequeña la velocidad total CUDA, los desarrolladores pueden acelerar drásticamente las
disminuirá de manera simultánea, permitiendo de esa forma aplicaciones informáticas aprovechando el poder de las GPU.
distribuir y dividir problemas grandes en problemas pequeños.
En las aplicaciones aceleradas por GPU, la parte secuencial de
la carga de trabajo se ejecuta en la CPU, que está optimizada para
el rendimiento de un solo subproceso, mientras que la parte de
3
uso intensivo de cómputo se ejecuta en miles de núcleos de GPU
en paralelo.

IV. CONCLUSIÓNES

Los avances vertiginosos de la tecnología nos obligan adquirir


nuevos temas en nuestro plan de estudio y estar actualizados con
el fin de sacarle máximo rendimiento a la tecnología con la que
contamos hoy en día, bien sea mediante desarrollo de
aplicaciones por medio de los núcleos con los que cuente nuestro
hardware tratando de sacar máximo provecho de la computación
paralela mediante la división de un problema de tamaño n en dos
o mas partes y resolverles con procesadores físicos de forma
simultánea. Teniendo la habilidad de identificar el tipo de
problema, patrones de memoria y comunicación adecuados a
implementar junto a las herramientas que nos permitan realizar
grandes cálculos en poco tiempo como es el caso de
RenderScript en los dispositivos móviles y la validación y
mejora en el rendimiento de los algoritmos.

REFERENCIAS
[1] Programación paralela. https://mapecode.com/programacion-paralela/
[2] Computación paralela móvil. https://docplayer.es/36048612-
Computacion-paralela-movil.html
[3] Reducciones paralelas de RenderScript
http://www.progmat.uaem.mx:8080/Vol6num3/vol6num3art4.pdf
[4] Metodología de la programación paralela
http://dis.um.es/~domingo/apuntes/AlgProPar/1617/sistemasprogramacio
n.pdf
[5] Zona CUDA
https://developer.nvidia.com/cuda-zone
[6] RenderScript de Android
https://planetared.com/2013/01/renderscript-mejorando-el-rendimiento-
de-nuestros-android/

También podría gustarte