[ca] La informàtica d'alt rendiment (high-performance computing o HPC en anglès) evoluciona de manera vertiginosa. Els superordinadors són màquines cada vegada més potents i complexes que requereixen una gran experiència per a ser ben explotades. Actualment, els científics desenvolupen codis HPC utilitzant llenguatges de propòsit general (general purpose languages o GPL en anglès) i models de programació paral·lela. Tanmateix, aquestes abstraccions s'estan quedant curtes; desenvolupar mètodes numèrics avançats i estratègies de paral·lelització d'avantguarda requereix temps, esforç i coneixements profunds en informàtica, que no són raonables en científics d'altres dominis. La productivitat científica s'ha convertit en un repte de recerca. Per a superar aquest repte, la ciència computacional necessita instruments per a facilitar la computació paral·lela, abstraient els científics de les complexitats HPC alhora que garantint l'explotació eficient i completa dels sistemes HPC. En aquest context, els llenguatges específics de domini (domain specific languages o DSL en anglès) són eines prometedores que integrant coneixements específics són capaces d'automatitzar parts del procés de desenvolupament de codi. En desacoblar la descripció del problema de la implementació algorítmica, els DSL poden convertir-se en l'entorn de treball productiu que tant es necessita. La nostra tasca és superar els límits de les capacitats dels DSL i explorar els seus punts forts i les seves limitacions en entorns HPC. Per aconseguir-ho, ens centrem en el domini de la dinàmica de fluids computacional (computational fluid dynamics o CFD en anglès). El CFD és un camp de gran interès científic i essencial per a moltes branques de l'enginyeria i la indústria. A més de la seva àmplia aplicabilitat, els resultats s'obtenen a partir d'aproximacions numèriques, que poden ser molt precises en un temps i inversions raonables si els codis CFD exploten bé els recursos HPC. L'objecte d'aquesta tesi és el disseny i desenvolupament de Saiph, un DSL per CFD en HPC, que explora els límits de la usabilitat, l'abstracció numèrica i l'alt rendiment automatitzat. Aquesta investigació proporciona una eina d'alta productivitat que permet la transcripció directa de problemes de CFD i la generació de codi optimitzat i verificat matemàticament. Des del punt de vista numèric, Saiph ofereix mètodes numèrics d'alt ordre adequats que ofereixen resultats competitius altament precisos i estables. A més, Saiph combina els mètodes numèrics de forma automàtica, alliberant els usuaris de les complexitats numèriques associades. Finalment, l'ús automatitzat d'estratègies de paral·lelització proporciona codis paral·lels altament eficients i escalables, capaços d'explotar les màquines HPC actuals en els seus diferents nivells. Les tècniques de vectorització i organització de dades en blocs es combinen automàticament amb el paral·lelisme de memòria compartida i distribuïda mitjançant models fork-join o basats en tasques i tècniques de descomposició de dominis, respectivament. Provem la viabilitat i els beneficis del DSL, demostrant que és una eina productiva i competitiva per a la comunitat científica. Així doncs, la filosofia dels DSL s'erigeix en metodologia de recerca prometedora per afrontar l'era Exascale.

[en] High-Performance Computing (HPC) evolves vertiginously. Supercomputers are increasingly powerful and complex machines that require deep expertise to be well-exploited. Currently, scientists develop HPC codes using General Purpose Languages (GPLs) and parallel programming models. However, such abstractions are falling short; developing advanced numerical methods and cutting-edge parallelisation strategies requires time, effort and deep computer science expertise, which is unreasonable to expect from other domain scientists. Scientific productivity has become a research challenge. In order to overcome this challenge, computational science demands instruments for practical parallel computations, abstracting scientists from HPC complexities while ensuring the efficient and full exploitation of HPC systems. In this context, Domain-Specific Languages (DSLs) are promising frameworks integrating specific knowledge and capable of automating parts of the code development process. DSLs can become the so-needed productive working environment by decoupling the problem description from the algorithmic implementation. Our task is to push the boundaries of DSLs capabilities and explore their strengths and limitations in HPC environments. We focus on the Computational Fluid Dynamics (CFD) domain to accomplish it. CFD is a field of vast scientific interest and essential for many branches of engineering and industry. Besides its broad applicability, results are obtained from numerical approximations, which can be highly accurate in a reasonable amount of time and investments if CFD codes exploit HPC resources. The object of this thesis is the design and development of Saiph, a DSL for CFD in HPC, exploring the limits of usability, numerical abstraction and automated high-per\-for\-mance. This research provides a high-productivity tool allowing for the direct transcription of CFD problems to generate optimised and mathematically checked code. Saiph provides suitable high-order numerical methods delivering competitive performance and highly accurate and stable results on the numerical side. Moreover, Saiph automatically combines numerical methods, freeing the users from numerical complexities. Finally, the automated use of parallelisation strategies provides high efficient and scalable parallel codes, exploiting current HPC machines at different resource levels. Vectorisation and data-blocking techniques automatically combine with shared and distributed memory parallelisms through fork-join or task-based models and domain decomposition techniques, respectively. We demonstrate the viability and benefits of the DSL, proving it to be a productive and competitive tool for the scientific community. Hence, the DSL philosophy arises as a promising research methodology facing the Exascale era.