Research
I am currently working in a number of projects as part of the Computer Systems Laboratory staff. During my carrer, I have been conducting research projects in collaboration with several other researchers from places like UFSC, USP, Unesp, UFPE, AMD Research at Austin, and Rutgers University. I also have a history of university/industry collaboration projects with companies like Microsoft, Serasa Experian, IBM, Samsung, Motorola, Petrobras, and Inmetrics. Below I describe some of the main topics I have been researching and where I have open positions for new graduate and undergraduate students.
-
High-Performance Computing
I am interested in several aspects of High-Performance Computing. In particular, we have been working on a new program model and runtime called OpenMP Cluster (OMPC), a task-parallel model that extends OpenMP for cluster programming. In short, it is capable of distributing annotaded regions of code across the nodes of a distributed system. We are successfully applying this new model to applications in Geophysics and Chemestry, allowing users to deployment such applications to a cluster without having to tackle with MPI based data distribuition and load balancing. -
Computer Systems Infrastructure for Machine Learning
Our research group is investigating several aspects of deploying ML models to large and distributed systems. Model parallelization and training distribuition is very important in order to handle ML models with billions of parameters. We are experimenting with frameworks like Google JAX, Ray, and Alpa to be able to distribute training across nodes of a cluster. In particular, we are interested in working with specific models that may be useful to tackle problems in Geophysics, like Full waveform inversion (FWI), where the amount of data is huge and brings several interesting challenges. Edge Computing and Internet of Things (IoT)
Advances in information technology, sensors, wireless communication and embedded processors are enabling the deployment of low cost and low power sensors and actuators that will connect our world in a way never seen before. Edge Computing and IoT are two areas of interest. Currently, I am supervising a PhD student who is proposing an architecture model for managing microservices in the Edge.-
Energy Efficient Computing
I am interested in several aspects of this problem that cover from server nodes running in datacenters to mobile devices. The main topics in this research are: server characterization, workload characterization, statiscal models for predicting power consumption, power/performance management techniques, adaptative systems, scheduling and resource management, and green datacenters. On the mobile world, I have been looking into power prediction models from smartphones and compiler analysis/optimizations for energy bugs in Android applications. Electronic System Level Design:
The search for new methodologies and tools suitable to the new Electronic System Level approach to hardware design. I have been working on new technologies related to SystemC and the ArchC architecture description language in order to aid the design on high levels of abstraction. Most recent topics are: using dynamic compilation techniques to speed-up simulation, multicore virtual platform simulation, mixing different simulation techniques to improve performance and debugging/verification capabilities.-
System's Security:
We are a small research group from the University of Campinas with topics that range through areas such as network security, compilers, computer architecture, assembly languages, software memory and code flow corruption. We work together with the Computer System's Laboratory (LSC) and researchers from Brown and Columbia University (USA). Control Flow Integrity, Memory protection through hardware enhancements, and System Design Exploitation are amongs the topics we are interested in. Read more ... Code Optimization, Dynamic Compilation:
Creating new optimizations, or adapting some existent technique, in order to generate efficient code and several aspects of dynamic code generation and its application in virtual machines. I have recently worked on topics like: region formation techniques, evaluating dynamic compilation overhead, and bynary translation based techniques to handle security issues, like program shepperding.
Interested in developing an undergrad, master, or PhD project on one of these topics? Send me an email with a short CV.
Selected Publications
- Relating Edge Computing and Microservices by means of Architecture Approaches and Features, Orchestration, Choreography, and Offloading: A Systematic Literature Review. Lucas Fernando Souza de Castro, Sandro Rigo. 2023. Pre-print.
- The OpenMP Cluster Programming Model Hervé Yviquel, Marcio Pereira, Emílio Francesquini, Guilherme Valarini, Gustavo Leite, Pedro Rosso, Rodrigo Ceccato, Carla Cusihualpa, Vitoria Dias, Sandro Rigo, Alan Souza, Guido Araujo. 51st International Conference on Parallel Processing Workshop Proceedings (ICPP Workshops 22). Full text
- Ion-Molecule Collision Cross-Section Simulation using Linked-cell and Trajectory Parallelization. Samuel Cajahuaringa, Leandro N Zanotto, Daniel LZ Caetano, Sandro Rigo, Hervé Yviquel, Munir S Skaf, Guido Araujo. 2022 IEEE 34th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD). Full text.
- DROP THE ROP fine-grained control-flow integrity for the Linux kernel. João Moreira, Sandro Rigo, Michalis Polychronakis, Vasileios P Kemerlis. Black Hat Asia. 2017. Full text.
- Adaptive global power optimization for Web servers. L Piga, RA Bergamaschi, M Breternitz, S Rigo- The Journal of Supercomputing, 2014. Full Text
- Empirical and analytical approaches for web server power modeling. L Piga, RA Bergamaschi, S Rigo - Cluster Computing, 2014 Full Text
- Data center power and performance optimization through global selection of P-states and utilization rates. RA Bergamaschi, L Piga, S Rigo, R Azevedo, G Araújo - Sustainable Computing: Informatics and Systems, 2012. Full Text
- A Novel Verification Technique to Uncover Out-of-Order DUV Behaviors. MARCILIO, G., SANTOS, L. C. V., ALBERTINI, Bruno de Carvalho, RIGO, S. Proceedings of the 46th ACM/IEEE Design Automation Conference (DAC), 2009. Full Text
- Electronic System Level Design: An Open-Source Approach. RIGO, S. ; AZEVEDO, Rodolfo ; SANTOS, L. C. V. . 1. ed. Nova York: Springer, 2011. v. 1. 155p .
- The ArchC architecture description language and tools. R Azevedo, S Rigo, M Bartholomeu, G Araujo, C Araujo, E Barros International Journal of Parallel Programming 33 (5), 453-484 Full Text
Complete List (Google Scholar Profile)
Links
- ArchC: The ArchC project homepage
- The Computer Systems Laboratory at IC-UNICAMP
- Book: Electronic System Level Design: An Open Source Approach