Paradigmas de programación en paralelo : paralelismo explícito y paralelismo implícito
Fecha
2008Autor
Weinbach, Natalia Luz
Director
García, Alejandro JavierPalabras clave
paradigmas; paralelismosMetadatos
Mostrar el registro completo del ítemResumen
Esta Tesis se centra en el estudio, análisis y comparacion de un conjunto de lenguajes y librerías que permiten programar sistemas utilizando paralelismo. Su investigacion
está motivada por el impetuoso ritmo de avance que posee actualmente el hardware y las herramientas de programación en paralelo. Tal situación es visible, por ejemplo, al
observar que los fabricantes de chips ya no derivan la capacidad de cómputo escalando la velocidad de reloj de los procesadores, sino que han comenzado a incrementar el potencial agregando CPUs o núcleos adicionales. El impulso al estudio del paralelismo es clave, ya que el paralelismo deja de ser algo únicamente centrado en el ámbito académico o en
grandes laboratorios de investigació de computación de alta performance. A su vez, hoy en día, en la mayoría de los ámbitos cientícos deben resolverse problemas computacionales muy complejos y con altos requerimientos en tiempo y recursos. Para resolver este tipo de problemas, el paralelismo se ha convertido en una de las herramientas
computacionales de mayor relevancia. Para esto, no solo es necesario contar con hardware que permita realizar computo paralelo, sino también con lenguajes de programación para
el desarrollo de aplicaciones con paralelismo. Como se muestra a lo largo de la Tesis, en la literatura se reconoce que la escritura de programas destinados a una ejecución paralela no es una tarea trivial. La elección del lenguaje y el formalismo apropiado son un problema central. Es por este motivo
que se ha estudiado un conjunto heterogéneo de lenguajes y librerías a fin de mostrar las distintas herramientas que se disponen en la actualidad para programar en paralelo.
Entre los lenguajes estudiados se encuentran de alto y de bajo nivel, con paralelismo implícito y explícito, compilados e interpretados. Se analizan tanto lenguajes imperativos,
como declarativos y de desarrollo de sistemas multi-agentes. Tambien se describen nuevas tendencias como la programación en Grid y los lenguajes de propósito general para la GPU (Graphic Processing Unit). The present Thesis is focused on the study, analysis and comparison of a set of languages and libraries that can be used to add parallelism to our programs. The research
is motivated by the striking evolution of current hardware and parallel programming tools. That situation is evident, for example, when recalling that manufacturers are not
increasing clock speed anymore: nowadays, they do rise up the computational power by adding extra CPUs or cores. The encouragement to parallel programming study is key
as parallelism stops to be something uniquely centered in academic institutions or high performance computing laboratories. Moreover, in most scientic environments, very complex computational problems with high resources and time requirements must be currently solved. Parallelism has evolved
to be one of the most relevant computing tools to deal with these types of problems. For that purpose, not only some kind of specialized hardware for parallel computing is needed,
but also a set of programming languages for the development of parallel applications. As it is shown through the present Thesis, literature recognizes that the codication
of programs targeting a parallel execution is not a trivial task. The central problem is constituted by both the language election and the appropriate formalism. In sync with
these reasons, a set of heterogeneous languages and libraries are studied with the aim of showing dierent tools that are available today for parallel programming. Among the
analyzed languages we have some of high and some of low abstraction level, with implicit and explicit parallelism, compiled and interpreted. A number of imperative, declarative
and multi-agent system languages are studied. New tendencies like Grid Computing and General-purpose Programming in the GPU (Graphic Processing Unit) are also described.
Colecciones
- Tesis de postgrado [1417]