Acknowledgments
This book is the result of a long collective journey. While the responsibility for its content is entirely mine, its existence—and its present form—would not have been possible without the contribution, support, and influence of many people across different stages of my academic and professional life.
First and foremost, I would like to acknowledge my colleagues and mentors in the field of computer architecture and supercomputing, whose work and vision shaped my understanding of large-scale computing systems from the very beginning. In particular, I am deeply grateful to Jesús Labarta, Eduard Ayguadé, and Mateo Valero, whose leadership, intellectual rigor, and long-term perspective defined not only my early research path, but also the institutional foundations that later became the Barcelona Supercomputing Center.
My time at the Center for Supercomputing Research and Development (CSRD) at the University of Illinois at Urbana–Champaign during my PhD years was a formative experience. I thank David Padua for the opportunity to work in an environment where experimental systems, compiler research, and performance analysis converged naturally. I am also grateful to Rudolf (Rudi) Eigenmann and the members of the Cedar compilation and benchmarking teams for the discussions and collaborations that left a lasting imprint on my approach to performance and systems research.
Over the years, my work progressively intersected with machine learning and, later, with deep learning and artificial intelligence. I owe special thanks to Ricard Gavaldà for encouraging those first steps, and to the many colleagues and collaborators from the AI community with whom I have had the privilege to work and learn. Collaborations across computer vision, speech, multimodal learning, and large-scale AI systems have continually challenged my assumptions and expanded my perspective.
This book is deeply rooted in teaching practice. I am especially grateful to the many students who, over successive courses and academic years, engaged critically with the material, questioned it, broke it, improved it, and ultimately helped shape it. Their curiosity, initiative, and willingness to go beyond the formal requirements of laboratory assignments were essential in transforming lecture notes into a coherent and reusable body of work.
In this regard, I would like to particularly acknowledge Antoni-Joan Solergibert, whose energy and commitment were instrumental during the consolidation of the first complete Large Language Model laboratories on MareNostrum 5. That work marked a clear turning point in the practical maturity of the material presented in this book.
I also thank my colleagues at the Barcelona Supercomputing Center and the Universitat Politècnica de Catalunya for providing an exceptional environment in which teaching, research, and large-scale infrastructure coexist naturally. Having access to production supercomputing systems as part of everyday academic life is a rare privilege, and this book is a direct consequence of that context.
Beyond these specific milestones, many people have contributed—some directly, others indirectly—to the development of the notes, laboratories, discussions, and previous books that ultimately converged into this volume. To all of them, I would like to express my sincere gratitude: Ferran Agulló; Pablo Arancibia; Oriol Aranda; Gonzalo Artiach; Roser Bellido; Enric Aromí; Eduard Ayguadé; Guifré Ballester; Javier Bartolomé; Yolanda Becerra; Jeroni Boixareu; Míriam Bellver; Miguel Bernabeu; Josep Lluís Berral; Víctor Campos; Ramon Canal; Daniel Cano; Cristian Canton-Ferrer; Joan Capdevila; Manuel Carbonell; David Carrera; Oliver Chan; Miquel Escobar Castells; Mauro Cavaller; Hugo Centeno; François Chollet; Juan Luís Domínguez; Amanda Duarte; Mauricio Echevarría; Rosa Maria Esqué; Agustín Fernández; Javier Ferrando; Joan Gallet; Raul Garcia Fuentes; David Garcia; Raul Garcia; Bernat García; Pol Garcia Recasens; Ricard Gavaldà; Sergi Girona; Xavier Giró-i-Nieto; Jordi Güell; Alberto Gutiérrez; Andrés Gómez; Antonio Guardia; Jordi Guitart; Laura Juan; Álvaro Jover Álvarez; Ferran Julià; Jiri Kraus; Jesús Labarta; Isabel Larraburu; Josep M. Martorell; Xavier Marturià; Jordi Mas; Humbert Mallafré; Màrius Mollà; Jordi Morera; Jordi Nadal; Nacho Fernández; Nacho Navarro; Jon Navarro; Jordi Nin; Ramon Nou; Oriol Núñez; Mònica Papiol; Nico Poggi; Alberto Pou; Oriol Pujol; Félix Ramos; Oscar Romero; Aleix Ruiz de Villa; Sergi Sales; Xisco Sastre; Fernando García Sedano; Alejandro Fernández Suárez; Laia Tarrés; Joan Teruel; Bernat Torres; Júlia Torres; Jordi Torres i Mas; Rubèn Tous; Carlos Tripiana; Mateo Valero; David Vicente; Alba Vila; Lluís Vila; Oriol Vinyals; Katy Wallace; Maurici Yagües.
The second edition benefited in particular from the contributions, feedback, and careful scrutiny of the following students, whose engagement directly improved the clarity, correctness, and coherence of the material: Martí Alonso; David Andreu; Leonardo Arnaboldi; Alberto Aróstegui; Thomas Aubertier; Tim Cramer; Irma Dahlbom; Marc Díaz; Pol Escolà; Patrick Henle; Leon Höpfl; Chistian Karg; Antonio Koch; Elizabet Koleva; Pau López; Víctor Mena; Andrei Moldoveanu; Juan Olivera; Laura Paxton; Raül Rabadan; Adrián Rios; Maximilian Ritter; Jakub Seliga; William Simon; Valéria Soldera; Eric Walsh.
Finally, I would like to extend my thanks—and my apologies—to all those I have surely forgotten to mention. Any remaining errors or shortcomings are, of course, entirely my own.