dc.contributor |
Ayguadé Parra, Eduard |
dc.contributor |
Beltran Querol, Vicenç |
dc.contributor.author |
Fernández Suárez, Alejandro |
dc.date |
2013-06-21 |
dc.identifier.citation |
89337 |
dc.identifier.uri |
http://hdl.handle.net/2099.1/18793 |
dc.language.iso |
eng |
dc.publisher |
Universitat Politècnica de Catalunya |
dc.rights |
info:eu-repo/semantics/openAccess |
dc.subject |
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors::Arquitectures paral·leles |
dc.subject |
Àrees temàtiques de la UPC::Informàtica::Llenguatges de programació::C |
dc.subject |
Parallel programming (Computer science) |
dc.subject |
Software engineering |
dc.subject |
DSL |
dc.subject |
OmpSs |
dc.subject |
Scala |
dc.subject |
OpenCL |
dc.subject |
Compiladors |
dc.subject |
Paral·lelisme |
dc.subject |
Scala |
dc.subject |
Compilers |
dc.subject |
Parallelism |
dc.subject |
Programació en paral·lel (Informàtica) |
dc.subject |
Enginyeria de programari |
dc.title |
Domain Specific Languages for High Performance Computing |
dc.type |
info:eu-repo/semantics/bachelorThesis |
dc.description.abstract |
[ANGLÈS] High Performance Computing (HPC) relies completely on complex parallel, heterogeneus
architectures and distributed systems which are hard and error-prone to exploit,
even for HPC specialists. Further and further knowledge on runtime systems, dependency
tracking, memory transaction optimization and many other techniques are a
must-have requirement to produce high quality software capable of exploiting every single
bit of power an HPC system has to other. On the other hand, domain experts like
geologists or biologists are usually not technology-aware enough to produce the best
software for these complex systems. Nowadays, the only way to successfully exploit an
HPC system requires that computer and domain experts work closely towards producing
applications to solve domain problems. Domain experts have the knowledge on the domain
algorithms, while computer experts know how to ciently map these algorithms
on HPC systems.
This project proposes a framework that eases most of the processes related to the production
of Domain Specific Languages (DSLs) that run on top of accelerator-based
heretogeneus architectures. By using DSLs, domain experts can develop their applications
using their own high level language, focusing only on their hard-enough issues.
Meanwhile, computer experts stay only improving the implementation of these DSLs
to make the most out of an HPC platform. This way, we keep each expert focused as
much as possible on its natural domain of expertise. |
dc.description.abstract |
[CASTELLÀ] La computación de alto rendimiento (HPC) se basa en la utilización de sistemas distribuidos
heterogeneos difíciles de explotar, incluso por expertos en el area de HPC.
Para producir software HPC capaz de explotar toda la potencia de un supercomputador,
cada vez se requiere más conocimiento en técnicas avanzadas de programación tales
como análisis de dependencias u optimización de transacciones de memoria. Por otra
parte, expertos de dominio tales como geólogos o biólogos no estan tan familiarizados
con las tecnologías actuales como para producir software para arquitecturas modernas.
Por este motivo, la unica manera de explotar supercomputadores actuales es hacer que
los expertos de dominio trabajen muy conjuntamente con programadores expertos para
producir sus aplicaciones.
Este proyecto propone un sistema que agiliza muchos de los procesos asociados al desarrollo
de DSLs para HPC. Mediante el uso de DSLs, los expertos de dominio pueden
desarrollar sus aplicaciones utilizando su propio lenguaje de alto nivel, centrándose solamente
en sus ya complicados problemas. Mientras tanto, los programadores expertos
focalizan sus esfuerzos en mejorar y optimizar la implementación de estos DSLs de modo
que aprovechen al máximo los recursos que ofrezca cada sistema. De este modo, cada
experto se mantiene en su dominio natural, maximizando así su productividad. |
dc.description.abstract |
[CATALÀ] La computació d'alt rendiment (HPC) es basa en la utilizació de sistemes distribuïts heterogenis
difícils d'explotar, inclus per experts en l'àrea de HPC. Per a produïr software
HPC capaç d'explotar tota la potència d'un supercomputador, cada cop es requereix
més coneixement en tècniques avançades de programació tals com anàlisi de dependències
o optimizació de transaccions de memòria. D'altra banda, experts de domini tals
com geòlegs o biòlegs no estan tan familiaritzats amb les tecnologies actuals com per
a produïr software per a arquitectures modernes. Per aquest motiu, l'unica manera
d'explotar supercomputadors actuals es fer que els experts de domini treballin molt
conjuntament amb programadors experts per tal de produïr les seves aplicacions.
Aquest projecte proposa un sistema que agilitza molts dels processos associats al desenvolupament
de DSLs per a HPC. Mitjançant DSLs, els experts de domini poder desenvolupar
les seves aplicacions fent servir el seu propi llenguatge d'alt nivell, concentrant-se
en els seus prou complicats problemes. Mentres tant, els programadors experts focalitzen
els seus esforços en millorar i optimitzar la implementació d'aquests DSLs de manera
que aprofitin al màxim els recursos que ofereix cada sistema. D'aquesta manera, cada
expert es manté al seu domini natural, maximitzant així la seva productivitat. |