Costa Rica HPC School 2020

27th to 31st


Costa Rica National High Technology Center

Dr. Franklin Chang Díaz building
1.3 km North of the US Embassy

Pavas, San José, Costa Rica


  • Shared-memory Programming
  • Distributed-memory Programming
  • Scientific Visualization

High Performance Computing (HPC) is markedly changing the way we solve challenging problems in science, engineering, and society. From complex simulations to better understand the impact of climate change to sophisticated models to design effective drugs, HPC is a fundamental tool in accelerating time-to-discovery.

Building on the success of previous editions, the fourth installment of the Costa Rica High Performance Computing School (CRHPCS) aims at preparing students and researchers to introduce HPC tools in their workflows. A selected team of national and international experts will teach sessions on shared-memory programming, distributed-memory programming, and scientific visualization. 

We expect to continue with our mission to catalyze innovation through HPC with this event. Take advantage of this opportunity and join us for an exciting training.




Esteban Meneses, PhD
Advanced Computing Laboratory Director
Costa Rica HPC School General Chair


Yuen Law


Biography: Yuen Law is a graduate in Computer Engineering from the Technological Institute of Costa Rica. In 2009 he obtained a DAAD scholarship to do his doctoral studies in Germany, at the RWTH Aachen. There he was part of the Virtual Reality Group, where he also developed his thesis project on the subject of medical simulation for training. After obtaining the doctorate, he continued in a postdoctoral position at the same university and then at the University of Trier, Germany. Recently he rejoined the faculty of the ITCR School of Computing.


Paola Vega


Biography: Paola Vega Castillo obtained a Bachelor of Electronic Engineering from the Technological Institute of Costa Rica. She obtained his PhD in Microelectronics at the Institute of Nanoelectronics and Medical Electronics of the Technical University of Hamburg-Harburg. She completed his postdoctoral degree at the same institute, researched on the topic of high frequency integrated circuits for biomedical applications.
Paola Vega has been a professor at the School of Electronic Engineering of the Technological Institute of Costa Rica since 1999. She was the founder and coordinator of the Master’s Program in Electronic Engineering and the Nanotechnology Research Program of the Technological Institute of Costa Rica.
She serves as Vice Minister of Science and Technology of the Ministry of Science, Technology and Telecommunications of Costa Rica.

Fernando Herrera


Biography: Fernando is costarrican, raised in a german school, and studied Electrical Engineering in the Universidad of Costa Rica. Fernando started his professional career working on alternate renewal small business power solutions, then moved into communications on microwave links and routing for private wide area networks. Fernando then worked in the data center infrastructure earing Microsoft Professional Certifications in System Engineering, Database Administration, and Enterprise Developer. Fernando got into Intel 6 years ago as a contractor and permanently joined five years ago. Fernando obtained the title of Msc recently in Computer Science from ITCR. Fernando has been working as a Performance Engineer in the server segment doing performance studies for influencing product roadmap decisions for the last three years.

Melissa Arce


Biography: Melissa Arce is an active Electrical Engineering student at University of Costa Rica. She currently works at the Advanced Computing Laboratory at CeNAT as an infrastructure assistant of Kabré supercomputer. Melissa will be in charge of teaching necessary tools to use the cluster.

Ricardo Valverde


Biography: Ricardo Valverde is an active Computer Engineering student at Costa Rica Institute of Technology. He currently works at the Advanced Computing Laboratory at CeNAT as an infrastructure assistant of Kabré supercomputer. Ricardo will be in charge of teaching necessary tools to use the cluster.


Greg Abram



Biography: Greg Abram received his PhD in Computer Science from the University of North Carolina at Chapel Hill, specializing in computer graphics, in 1986. He then spent several years in a small startup working on high-quality image synthesis before moving to the IBM TJ Watson Research Center. There he was a member of the architecture and development teams for IBM’s Visualization Data Explorer, which was the first visualization system designed specifically for high performance on shared-memory parallel systems. He then led its release into the open-source world and turned his attention to other visualization issues, including large-format displays and remote client-server systems, culminating in IBM’s Deep Computing Visualization suite of products. After twenty years at IBM he decamped to the Texas Advanced Computing Center at the University of Texas at Austin, where he works in large-scale distributed ray tracing for scientific visualization with colleagues at the Los Alamos National Laboratory and in virtual reality visualization with colleagues at the University of Minnesota (which he avoids in winter months).

Diego Jiménez



Biography: Diego Jiménez is a  computer engineer graduated from the Costa Rica Institute of Technology. He currently works at the Advanced Computing Laboratory at CeNAT, where he conducts research in scientific computing and high performance computing. He has worked in projects of computational neuroscience and plasma physics  applying parallel programming techniques to accelerate simulations.  He has also studied the communication patterns present in large-scale MPI applications and their mappings to common interconnection topologies in high-performance computing. His research interests are: parallel programming paradigms and high performance computing. Diego will be in charge of teaching the Shared-Memory Programming sessions.

Esteban Meneses


Biography: Esteban Meneses is the Director of the Advanced Computing Laboratory at the Costa Rica High Technology Center (CeNAT). He graduated from the PhD program in Computer Science from the University of Illinois at Urbana-Champaign. He spent two years at the Center for Simulation and Modelling at the University of Pittsburgh. He has more than 12 years of experience in HPC. His research interests include resilience in HPC systems, parallel programming models, and applications. He currently participates in two research efforts: developing a computational seismic platform to better characterize volcanic and tectonic activity, and building parallel computing simulations for plasma physics. Esteban will be in charge of teaching the distributed-memory programming lecture.

Luis Campos


Biography: Luis Campos is a computer scientist graduated from the University of Costa Rica. He currently works at the Advanced Computing Laboratory at CeNAT as a research assistant in scientific visualization and scientific computing. He has worked in projects of plasma physics applying parallel programming techniques and doing visualizations to confirm correctness of the simulation. His research interests are: scientific visualization, computer graphics, hpc, simulations. Luis will be in assistant in all sessions and event co-organizer.

Pre-School Instructors

Ariel Mora

Ariel Mora

Biography: Graduate Student and Lecturer working in Cognitive Robotics and Knowledge Representation for everyday objects manipulation at Autonomous Robots and Cognitive Systems Laboratory, and supervising IT and High-Performance Computing at Pattern Recognition and Intelligent Systems Laboratory, both in the Universidad de Costa Rica. Interested in Cognitive Architectures, Intelligent Systems, Embedded Systems and Scientific Computing

Lennon Núñez


Biography: Embedded Systems Engineer at Boston Scientific, Neuromodulation, and Student of Masters in Electrical Engineering at UCR researching on object tracking and pattern recognition. Interested in robotics and medical devices.

Bryan Cervantes


Biography: Bryan is an active Electrical Engineering student at University of Costa Rica, member of the Pattern Recognition and Intelligent Systems Laboratory and also founder and Chair of the IEEE UCR Computer Society Student Chapter, which objective is to encourage students to get involved in programming and computing extra-curricular activities to improve their technical abilities.


Real-time simulation of ultrasound images:

In this talk we will see the role played by parallel programming (specifically CUDA) and the visualization of data in a real-time simulation pipeline of ultrasound images, which is used to create interactive training tools in medical procedures. The work presented is the result of a multidisciplinary research project with medical professionals, biomechanics experts and computer scientists. In the design of the simulation methodology, the physical behavior of both human tissue and ultrasound devices is imitated, trying to maximize performance to maintain interactive times, which is critical for training.

Data visualization:

Data visualization generally divides into two classes – information visualization, which addresses the visualization of large sets of discrete data (the sorts of things typically stored in relational databases or spreadsheets) and scientific visualization, which addresses continuous space filling data represented on computational grids such as results from the simulation of physical processes (think weather or climate simulation, computational fluid dynamics or finite element analysis). This tutorial will address the latter, with particular attention to Paraview and VTK, which are used to visualize data on a wide range of scales spanning desktops to supercomputers. The tutorial will consist of half a day (or more) of introductory lectures on Paraview including basic principles and use, scripting and how and (more importantly why) we move to supercomputers. Once all are comfortable with the tools, we will then address a specific visualization task (or tasks) including aspects of data wrangling, or the transformation of data from the raw form produced by a simulation system to a form accessible by Paraview/VTK. Ideally, participants will bring examples of their data for us to work with; in lieu of that, we will look at data from the US Department of Energy’s MPAS-Ocean and MPAS-Ice simulations. Many digressions are to be

Shared Memory Programming:

Modern computer architectures are based on processors that have multiple cores. Thanks to chip manufacturing advances, shared-memory parallel computer systems have become relatively inexpensive and intended for general-purpose use. Being able to leverage that computing power is crucial to enhance the performance of scientific applications. In this half-day tutorial, we will explore the OpenMP application programming interface using a hands-on approach. This widely adopted standard enables the creation of shared-memory parallel programs and provides several features to maximize hardware resource utilization in modern parallel architectures.





We will offer onboarding sessions for those who would like to sharpen their Linux and C skills. Attendance to the pre-school is optional. The onboarding sessions will take place the following days:

Introduction to Linux tools: Thursday January 23, 2020, 8:30am-5:00pm, CeNAT

Introduction to C Programming Language: Friday January 24, 2020, 8:30am-5:00pm,  CeNAT


Tuition fee

Participation is free. There are no tuition costs associated with participating in this school for those affiliated to CONARE institutions.

Maximum quota

The maximum quota is 50 participants.​

Important dates

Start of the application process to the School: November 21, 2019.

Closure of the application process to the School: January 13, 2020.

Notification of acceptance/rejection to the School: January 14, 2020.


To be a student, professor, or researcher at any public university (UCR, TEC, UNA, UNED, UTN), from CONARE or any of its ascribed programs: CeNAT, PEN and SINAES.

Have an intermediate English level (reading and listening). Some presentations and exercises may be in English.

Have intermediate programming skills (C/C++ desired, Python acceptable) and intermediate Linux handling.




The Advanced Computing Laboratory (CNCA) at Costa Rica High Technology Center (CeNAT) is a multidisciplinary space where scientific discovery is accelerated through an advanced computing infrastructure. This infrastructure includes not only specialized and updated hardware, but also a set of efficient applications and well-trained staff in order to take  advantage  of  all  the  technology. This allows  CNCA  to work in the main dimensions of research, project development, training, and services provision.

The Pattern Recognition and Intelligent Systems Laboratory (PRIS-Lab) is part of the School of Electrical Engineering at UCR. We seek the generation of scientific research and technological innovation, towards integration between the academic community, the government, the productive sector, the civil society and the environment, to improve people’s quality of life. The specific interests of PRIS-Lab are mainly (but not limited to) pattern recognition, intelligent systems, machine learning, data mining, digital signal processing, digital image processing, motion capture, biocomputation, abstract data structures, algorithms and programmi  ng.

Other Activities


The logo of Costa Rica HPC School was designed by Ing. D.I. María Cristina Vargas Del Valle.