Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación Paralela y Distribuida
PROFESOR: Ing. Efego Gutierrez Ocampo
ALUMNO: Eduardo Manuel Flores Vera
Fecha: Febrero de 2015
Introducción
Con el paso del tiempo, la programación paralela se consolidó como un método en el cual, problemas de gran tamaño, se dividen en problemas más pequeños, para luego ser resueltos simultáneamente (paralelamente), con cierta similitud a la técnica divide y vencerás. En el año de 1988, McCraw y Axelrod, dos incursores de la programación paralela definieron 4 formas distintas de desarrollar aplicaciones para computadoras paralelas. en los siguientes párrafos, se explicarán dichos enfoques y sus respectivos ejemplos.
FORMAS DE DESARROLLAR APLICACIONES PARA COMPUTADORAS PARALELAS
1._EXTENDER O ENRIQUECER UN COMPILADOR
Consiste en emplear un lenguaje existente y recurrir a funciones proporcionadas por alguna biblioteca para cómputo paralelo. Este enfoque tiene la ventaja radical del ahorro de trabajo y tiempo, aunque aun tiene fallas a corregir.
Un ejemplo de este tipo de compiladores puede ser Eclipse, el cual permite crear aplicaciones llamadas comunmente "De Cliente Enriquecido".
Otro ejemplo de este enfoque es el compilador Dev C++ C, que ofrece una gran cantidad de librerias para su implementación en paralelo.
Un ejemplo más es el compilador FORTRAN, que, al igual que Dev C++, contiene una vasta cantidad de librerías para su implementación.
2._EXTENDER O ENRIQUECER UN LENGUAJE EXISTENTE
Este enfoque más fácil y menos costoso, ademas de que se ha consolidado como el enfoque más poular para la programación en paralelo.
En este enfoque, se agragan librerías nuevas al lenguaje para que actúe óptimamente acorde a la programación paralela, aunque, tiene sus desventajas. Como el compilador no está involucrado, el programador no contará con la asistencia del mismo para la corrección de errores lógicos y de sintaxis, lo cual, incurre muchas veces en el inadecuado funcionamiento del programa.
Como ejemplo se puede mencionar el lenguaje Occam, que está diseñado para programar computadoras del tipo Transputer.
Un ejemplo más es el lenguaje FORTRAN, que, al igual que C, contiene una vasta cantidad de librerías para su implementación.
3._AGREGAR UNA NUEVA CAPA DEL LENGUAJE PARALELO ENCIMA DE UN LENGUAJE SECUENCIAL EXISTENTE
Ejemplos:
Por ejemplo, un lenguaje que cuente con paralelismo a nivel datos depende para su óptimo rendimiento de encontrarse en un equipo SMP (memoria compartida) o MPP con un bus de comunicaciones muy amplio.
El lenguaje ampliado más conocido, que es el HPF (High Performance Fortran)
Dataparallel-C y Compositional C++.
El lenguaje ampliado más conocido, que es el HPF (High Performance Fortran)
Dataparallel-C y Compositional C++.
4._DEFINIR TOTALMENTE UN NUEVO LENGUAJE, Y SU COMPILADOR
Se han diseñado lenguajes de programación especializados para arquitecturas paralelas. Sin embargo una desventaja de estos lenguajes es que son útiles únicamente en la arquitectura parelela para la que fueron creados, limitando su utilidad fuera de este ámbito.Su desventaja radica en que el compliador no dará asistencia alguna al programador en cuenstion de errores lógicos y de sintaxis, lo cual, puede recurrir en el mal funcionamiento del programa.
Como ejemplo se puede mencionar el lenguaje Occam, que está diseñado para programar computadoras del tipo Transputer.
Un ejemplo más sería la máquina abstracta llamada PRAM
Un tercer ejemplo es POSIX Threads
Un cuarto ejemplo es OpenMP
Un quinto ejemplo es Message Passing Interface
CONCLUSIONES
En estos días, la programación paralela se está convirtiendo en un enfoque bastante útil, y a la larga, necesario, aunque, la tecnología disponible para su implementación es limitado. Con el tiempo, surgirán nuevas librerías para los lenguajes existentes, así como nuevos lenguajes y nuevos compiladores para su correcta aplicación, y asi, de este modo, evitar que, a raíz de la falta de asistencia de los compiladores existentes, se comentan errores lógicos y de sintaxis, y por consecuente, los programas y aplicaciones creadas con el enfoque paralelo, funcionen inadecuadamente.
REFERENCIAS
http://www.tomechangosubanana.com/tesis/escrito-1-split/node19.html
http://es.wikipedia.org/wiki/Computaci%C3%B3n_paralela#Lenguajes_de_programaci.C3.B3n_en_paralelo
http://es.wikipedia.org/wiki/Eclipse_(software)
No hay comentarios.:
Publicar un comentario