Curriculum


Research Interests

My research interests are in the field of High-Performance Computing (HPC), particularly in the portability of parallel software to modern architectures. Currently, my research focuses on how to leverage compiler-level techniques such as Domain Specific Languages (DSLs) and Dynamic Compilation to create performant and portable software abstractions between the application domain and the computational characteristics of applications (separation of concerns).

I have been the Principal Investigator of the Intel Parallel Computer Centre at Hartree Centre and the technical lead of a collaboration with Rolls-Royce aiming to port a FE application to many-core CPU architecture. Currently I am a contributor to the PSyclone code-generator open-source tool, I am an investigator in the EU EuroEXA project, and I am a member of the Intel eXtreme Performance User Group (IXPUG) steering committee.

The results of the mentioned work have been presented in international conferences and journals listed at the end of this document. See the complete list of my publications and projects.


Education

  • 2016 - present: Ph.D. in Computer Science, University of Liverpool

    • Topic: Runtime information exploitation to achieve better vectorization in high performance computing software.
    • Supervisor: Jeyan Thiyagalingam (second supervisor: Frans Coenen)
  • 2013-2014: MSc with Distinction in High Performance Computing, EPCC, University of Edinburgh

    • Scholarship: "Highly Skilled Workforce" award of the Scottish Funding Council.
    • Dissertation: "Parallelisation of the Coupled Coherent States quantum dynamics simulation" | Advisor: Andrew Turner
  • 2011-2013: Master's Degree in Information Technology, Polythecnic University of Catalonia

    • Thesis: "Simulating parallel systems using summarized application information" | Advisor: Jesus Labarta
  • 2008-2011: Bachelor Degree with Honours in Enginyeria Tecnica en Informatica de Sistemes (Computer engineering), University of LLeida

    • Thesis: "Electronic voting system over elliptic curve cryptography" | Advisor: J.M Miret


Experience

  • Feb 2015 - present: High Performance Software Engineer at Hartree Centre, Science and Technology Facilities Council, Daresbury, UK

    • My role is to analyse the performance of technical and scientific applications and adapt them to modern hardware architectures. During this period:
      • I lead the Intel Parallel Computing Centre at Hartree Centre. I contributed to DualSPHysics (a smooth particle hydrodynamics to study free-surface flow phenomena.), DL_MESO (a mesoscale Lattice Boltzmann mesoscopic simulation package), LFRic (an Earth Weather and Climate modelling system) and leveraged OSPRay for visualizations.
      • I lead a collaboration with Rolls-Royce to optimize an industrial Finite Elements solver for both inviscid and viscous compressible flows.
      • I made several contributions to the PSyclone codebase. For instance, as part of the EuroEXA project, I developed an OpenCL back-end for the PSyclone that can target FPGA architectures.
  • Feb 2013 - Aug 2013: Resident Student Researcher at Performance Tools Department of BSC (Barcelona Supercomputing Centre), Barcelona

    • Designed and implemented a software to process summarized profiling information from highly scalable applications and format such information in a way that the Dimemas software is able to simulate its performance in different systems. It was part of the CEPBA-tools toolchain.
  • July 2012 - Jan 2013: Programmer at SERIMAG MEDIA SL, Barcelona

    • Designed an implemented a Python document classifier for a banking application. It uses data mining technologies such as Support Vector Machines and the Viterbi algorithm.
  • Dec 2010 -Aug 2011: Grant-holder as a cryptography researcher at Department of Cryptographyand Graphs, University of LLeida, Lleida

    • Designed and implemented an electronic voting system which works on different types of homomorphic cryptosystems, specifically over elliptic curves. Studied and implemented other cryptography topics.
  • July 2010 - Jan 2011: Programmer at Montajes Electricos Portoles S.A, Fraga

    • Programmed Programmable Logic Controllers for many applications (solar panels, refrigeration rooms, hydraulic pumps,...) and developed web interfaces to control themremotely.


Skills

  • Languages: C, C++, Fortran, Java, Bash, Python, ...
  • Platforms: Unix, HPC environments
  • Parallel APIs: MPI, OpenMP, CUDA, PGAs, SHMEM
  • Requirements analysis and design with patterns of an Information System.
  • Design and implementation of Data Mining algorithms with NN and SVM.
  • Advanced design and analysis of serial/parallel algorithms.
  • Deep knowledge about OS's structure and compilers internals.
  • Design, implementation and optimization of high performance parallel applications using different programming models and architectures.



You can find a PDF version of this curriculum here.