COURSE 2023/24


I am on leave from September 2023, so I will not be able to carry out any activities during this academic year. If you need any office hour to discuss any issues, such as a project you would like to do or a previous subject you have had with me, please contact me by email. I will only be able to have online meetings in my free time, so I ask for flexibility.

PAST COURSES


2022/23


2021/22


2020/21


2019/20


2018/19


2017/18


2013/14


2012/13


2011/12


2010/11

INTERN OFFERS

If you are interested on some of my research topics, feel free to contact me in order to see the possibility to apply for a collaboration internship (if you are a bachelor student), an introduction to research internship (if you are a bachelor or a master student), or a pre-doctoral fellowship (if you are a master student or you hold a master diploma). Next, a list of students which I have supervised with fellowships/internships:

  • Javier Hernández Tello, contract with an R&D project (MABICAP), May - September 2021. Working with the parallelization of a new Spiking Neural P system simulator, and improving the parallel simulator of PDP systems.
  • Antonio Torres Moríñigo, initialization to research internship, September - November 2020, and contract with an R&D project (VICTORY), May - September 2020. Working with the parallelization of multi-agent systems and the graphical engine and interface of NIN with Lua programming language.

Moreover, if you are interested in working at Fraunhofer IIS (Germany), there are several options. Get in touch with me for orientation:

PHD STUDENTS


Advising


Advised

MSC AND BSC THESES / FINAL PROJECTS


Proposals

Although I cannot advise projects during my leave, if you are interested in these topics to do your Bsc/Msc thesis in the next few years, contact me. We can start looking at it and start establishing some concepts.


Deep Learning and GPU Topics

  • Sparsity in deep learning models. Deep learning is an area of artificial intelligence that has given great advances in applications within computer vision, natural language processing, medicine, etc. Models such as stable diffusion are being investigated for the generation of not only hyper-realistic images, but also for 3D volumes. Deep neural networks used for 3D processing explode in size (since we have a third dimension in the input), however 3D data is mostly sparse (a few voxels contain information, the rest is empty space). This project aims to explore sparse-based networks (MLP, convolution, self-attention, etc.). Several ways are proposed: making use of these models for a determined dataset, or getting the hands dirty with code in CUDA to speed up some part of extensions PyTorch with sparsity (e.g. Minkowski or TorchSparse). Requirements:  Theoretical knowledge of Machine Learning or Neural Networks. Python language
  • Deep Learning and JPG standards. Usually, Deep Learning models need to receive a raw RGB image in order to be fed into the network. In this project we will study the JPEG or JPG2000 standards and how to decompress it in GPU to pass it directly to the model. An alternative to the project would be to study how to introduce compressed or DCT/Wavelet transformed data to the model. Requirements: Theoretical knowledge of Machine Learning or Neural Networks.
  • Semantic analysis of videos through Deep Learning. Thousands of movies are produced each year, and therefore automatic understanding of content is important for developing film recommendation systems, efficient storage, censorship assistance, scene extraction systems, etc. This is why we have begun to develop Deep Learning-based algorithms for automatic extraction of video tags, intelligent segmentation of scenes, and automatic categorization of scenes and beat events. The aim of this proposal is to extend these algorithms, providing improvements in the convolutional networks used through transfer learning, expanding the categories and types of studio films, and/or processing other types of multimedia in addition to frames, such as audio and text. Requirements: Theoretical knowledge of Machine Learning and Neural Networks. Python language
  • Video compression with Deep Learning. The main idea of this proposal is to develop an algorithm to compress video of an specific domain (such as movies) by using semantic information, and/or predicting compression losses ahead of time. Requirements: Theoretical knowledge of Machine Learning, Understanding of Image Compression Algorithms, Python language
  • Application of generative models. This proposal aims at using generative models (e.g. GANs, diffusion, large language models, etc.) for certain real-life applications (action recognition, video processing, biology imaging, medical imaging, etc.). Requirements: Theoretical knowledge of Machine Learning and of the specific domain of the application, Python language
  • Automatic sign language recognition with deep learning. The automatic translation of sign language, from signer to listener, is a challenge. First because there are many elements to take into account (body pose, movement and shape of the hands, facial gestures, etc.), and second because there are many sign languages and variants. The proposal of this work is to review the state of the art in automatic translation from sign language to text, and then work on a selected dataset to apply different approaches and deep learning models. Requirements: Theoretical knowledge of Machine Learning and Neural Networks, and of the specific application domain. Python language


Membrane Computing and GPU simulation Topics

  • Accelerated Simulation of PDP Systems on CUDA. PDP systems are a formal computational modeling framework for population dynamics that has been successfully employed with real ecosystems, such as the Bearded Vulture in the Catalan Pyrenees and the Zebra Mussel in the Ribarroja Reservoir. Experts in these ecosystems conduct virtual experiments using the MeCoSim tool, which in turn makes use of pLinguaCore as a simulation engine for PDP systems. However, this simulator is inefficient for certain models and ecosystems, so another PDP system simulator was developed that makes use of massively parallel devices such as graphics cards, called ABCD-GPU. CUDA technology is used for this purpose, which leverages the thousands of cores found in today's GPUs and has been adopted worldwide for supercomputing. The ABCD-GPU simulator is a tool that is still in beta phase and not connected to P-Lingua (and therefore not MeCoSim). The aim of this proposal is to implement improvements in the simulator and the development of an extension of the P-Lingua simulation framework so that it can be connected to ABCD-GPU in the tasks that require this potential. Requirements: Theoretical knowledge of Membrane Computing. Knowledge of Java and C/C++, and basic knowledge of parallel programming.
  • Analysis and design of membrane systems for its simulation on GPUs. Membrane cell systems are bioinspired devices that have applications at both theoretical (theory of computability) and practical level (modelling of biological systems, ecosystems, etc.). Simulation of these systems is a very active research topic, and the first software applications available are relatively inefficient. It is therefore necessary to accelerate simulators using parallel technology. GPU computing opens up a whole new range of possibilities with CUDA and OpenCL technologies. However, some current GPU-based simulators do not achieve a noticeable improvement in efficiency. A new avenue is to study which models fit best with the GPU architecture. This master thesis aims to develop a CUDA simulator for various P-system models (e.g., Kernel P systems) and analyze those ingredients that are properly simulated on the GPU. Requirements: Theoretical knowledge of Membrane Computing. Basic knowledge of parallel programming and C/C++ or Python language.
  • Accelerated simulation of bio-inspired systems with SYCL. Membrane cell systems are bioinspired devices that have applications at both theoretical (theory of computability, complexity, etc.) and practical level (modelling of biological systems, ecosystems, etc.). The simulation of these systems is still under development, and the first software applications available are relatively inefficient. It is therefore necessary to accelerate simulators using parallel technology. GPU computing opens up a whole new range of possibilities with CUDA and SYCL technologies. The first GPU-based simulators were developed on CUDA, a technology specific to NVIDIA. Therefore, in this proposal, the aim is to study these simulators and analyze a new development using SYCL technology, which offers a standard platform that serves both GPU technology of AMD, Intel multiprocessors, FPGAs, etc. Requirements: Optional Theoretical knowledge of Membrane Computing. Basic knowledge of parallel programming and C/C++ language.
  • Optimized simulation of cellular systems in CUDA. The new generation of GPUs (graphics processors) offer great computing power at lower cost and energy consumption. General-purpose computing techniques (GPGPU) and programming languages such as CUDA and OpenCL are used for this purpose. The use of these massively parallel processors opens up new avenues for the efficient simulation of cellular systems. This proposal aims to improve the performance of a P system simulator with active membranes written in CUDA, using techniques such as sparse matrix or tailing, and optimizing the code with the improved architecture of the newest NVIDIA cards (Turing, Ampere...). Requirements: Basic knowledge of parallel programming and C/C++ language
  • Simulation of membrane systems in Python. Membrane systems are bio-inspired devices that currently have applications both on a theoretical level (computability theory) and on a practical level (modeling biological systems, ecosystems, etc.). The simulation of these systems is a very active research topic and requires efficient and flexible environments. In this sense, P-Lingua 5 is an environment being developed in C++ for the generic simulation of these bio-inspired devices. In this project, a programmatic simulation environment will be developed from Python using P-Lingua 5 as engine. Requirements: Advanced knowledge of Python and C/C++


Topics on GPU computing for other Areas

  • GPU and Virtual Reality. This work could be done to study GPU Web platforms, such as WebGPU, and apply them to virtual reality environments. It would be performed within the IAI lab at ETSII. Requirements: Basic programming knowledge.
  • Open source simulation of multi-agent systems in Lua. This project is a collaboration named Selenitas, and aims at developing a multi-agent simulation framework in Lua, an open source scripting language based on C, which is being used for videogames. The proposal aims at accelerating some parts of the code by using GPU computing. Requirements: Basic knowledge of parallel programming and C/C++ language.
  • Analysis of RAPIDS, an environment for data science and machine learning on GPUs. There are several programming environments to configure workflows in machine learning. In this sense, numpy and scikit-learn using Python are the most used. Although these environments have some optimization for processors (CPUs), its performance is no the best when working with datasets of a considerable size. Therefore, GPUs are being used as accelerators for machine learning algorithms, especially those related to Deep Learning. Recently, NVIDIA announced RAPIDS, an environment for data science and machine learning completely accelerated on GPUs, where part of the API of numpy and scikit-learn are replicated. This work aims to analyze this tool and make a comprehensive comparison with other classic environments and attempts to accelerate on GPUs. Requirements: Knowledge of Python programming. Knowledge of artificial intelligence and machine learning. Basic knowledge of databases. Basic knowledge of parallel programming.
  • Functional parallel programming on GPUs. Standard parallel programming is moving to pure functional concepts, as it is happening with the ISO C++20 and stdpar. The objective of this proposal is the analysis of languages and environments of parallel functional programming on GPUs. This analysis will include the implementation of machine learning algorithms to test them. Requirements: Functional programming knowledge (such as those acquired in the subject of declarative programming), and parallel programming knowledge.


LHCb Topics (availability depends on our collaborators at LHCb)

  • Development of intelligent and parallel algorithms for the LHC. LHCb is one of the four main experiments at LHC, CERN's large hadron collider in Geneva. This project is part of a collaboration with CERN to develop intelligent algorithms and its parallel implementation in CUDA for processing data generated in the LHCb particle detector. Requirements: Basic knowledge of parallel programming and C/C++ language.
  • Contributions to Allen project at LHCb. LHCb is one of the four main experiments at LHC, CERN's large hadron collider in Geneva. This project is part of a collaboration with the LHCb through PhD. Daniel Campora. It aims at extending the GPU-based trigger framework which has been selected for LHCb collision detector, named Allen, by improving some parts of developing new algorithms. Requirements: Advance knowledge of parallel programming and C/C++ language.
  • From HTC to HPC on the Barcelona Supercomputer Center. This project is part of a collaboration with CERN, LHCb and Unversity of Ramon LLull. LHCb is one of the four main experiments at LHC, CERN's large hadron collider in Geneva. The calculation requirements of this type of experiment are very large, from the simulation of the experiment to the analysis of data. So far, the approach has been based on a GRID architecture, for which specific frameworks have been developed at LHCb, with an HTC philosophy. The use of large Supercomputing infrastructures, with HPC architecture to cover calculation needs, is currently being studied. Requirements: Advance knowledge of parallel programming and C/C++ language.


Advising (cancelled or transferred because of my leave)

  • Deep learning approaches to automatic counting of microalgae cells in microscopy digital images, by Carmen del Mar Ruiz Torres. Co-advised by Francisco J. Romero Campero. MSc thesis (MADOBIS).
  • Performance analysis of sparse convolutions, by Kenny Jesús Flores Huaman. MSc thesis (MULCIA).
  • Ewing-type Sarcoma classification with Machine and Deep Learning, by Francisco Jiménez García. Co-advised by Enrique de Ayala Casado (IBIS). MSc thesis (MULCIA).
  • Application of Ray Tracing techniques for the RICH subdetector at LHCb, by Roberto Hueso. Co-advised with Daniel Campora. MSc thesis (MULCIA).
  • Semantic analysis of video with Deep Learning, by Jose Antonio Gómez Romero. MSc thesis (MII).
  • Extending an environment for multi-agent simulation based on Lua, by Francisco José Campos Castro. Co-advised with Fernando Sancho Caparrini. MSc thesis (MII).
  • Creation of content by means of deep learning generative models, by Julio Valverde Nuñez. MSc thesis (MII).
  • Language models for automatic evaluation of Haskell code, by Samuel Buzón Gil. Co-advised with David Solís. BSc thesis (information technology). July 2023.
  • Cryptographic algorithms using cellular automata and functional programming, by María del Rocío Crespo Pozo. Co-advised with David Orellana. BSc thesis (information technology).


Advised

  • Gloss2text: automatic translation of Spanish Sign Language glosses into Spanish, by Celia Botella López. Co-advised with Juan Antonio Álvarez. MSc thesis (MII). June 2023. Distinction.
  • Accelerated simulation of virus machines on GPUs, by Sergio Velázquez García. Co-advised with David Orellana-Martín. BSc thesis (information technology). July 2023.
  • Language models for translation of sign language glosses to natural language, by Santiago Massé Palomo. BSc thesis (information technology). July 2023.
  • System for detecting pneumonia applying deep learning techniques, by Alberto Carmona López. Co-advised by Juan M. Ortiz de Lazcano (Univ. Málaga). MSc thesis (MULCIA). December 2022.
  • Application of deep learning generative models, by Rafael Barea Hidalgo and Martin González López. MSc thesis (MII). December 2022.
  • Up-scaling and texture generation, by José Manuel Villegas. Co-advised by Fernando Sancho-Caparrini. BSc thesis (software engineering). December 2022.
  • Virtualizing the environment using Deep Learning techniques, by Alan Trawczynski. Co-advised by Fernando Sancho Caparrini. BSc thesis (computer engineering - IT). September 2022.
  • Machine Learning and Deep learning to find vulnerabilities in source code, by Francisco Pineda. Co-advised by Fernando Sancho-Caparrini. BSc thesis (computer engineering). September 2022.
  • Introduction and Advances of Neural Rendering, by Alejandro González Martín and Jesús Juan Postigo Martínez. Co-advised by Fernando Sancho Caparrini. BSc thesis (computer engineering - IS and IC). September 2022.
  • Sign2text: automatic translation of sign language, by Miguel Ángel Núñez-Romero Olmo. Co-advised with Juan Antonio Álvarez. MSc thesis (MII). September 2022.
  • Translating sign language using Deep Learning techniques, by José Morera Figueroa. Co-advised by Juan Antonio Álvarez. BSc thesis (computer engineering - IT). June 2022.
  • Functional parallel programming on GPUs, by Kenny Jesús Flores Huaman. BSc thesis (computer engineering - IT). June 2022.
  • Sparse Representation of Spiking Neural P systems on GPUs, by Javier Hernández Tello. BSc thesis (computer engineering - IT). December 2021.
  • Machine Learning application for aerial manipulation, by Manuel Jesús Fernández. Co-advised by Gillermo Heredia. MSc thesis (MULCIA). September 2021.
  • Movie automatic classification with Deep Learning, by Suriel Aido Teruel. MSc thesis (MULCIA). September 2021.
  • Analysis of RAPIDS, an environment for Data Science and Machine Learning on GPUs, by Gonzalo Delgado. BSc thesis (computer engineering - software engineering). July 2021.
  • Car accident detection on CCTV with Deep Learning and Computer Vision, by Javier Advani. Co-advised with I. Pérez-Hurtado. MSc thesis (MULCIA). December 2020.
  • Automatic classification of videos for recommendation systems with Deep Learning, by Daniel González. BSc thesis (computer engineering - information technologies). December 2020.
  • Analysis of advance models of Deep Learning (Deep Belief Neural Networks and Capsule Networks) for weapon classification, by Sergio Andrés Pérez Zárate. MSc thesis (MULCIA). September 2020.
  • Topological compression of color images - Topological Contour Compression (TCC), by Javier Castillo Delgado. Co-advised with Pedro Real. MSc thesis (MULCIA). July 2020. Distinction.
  • Classification of human activities in video, by Emre Tatbak. MSc thesis (MULCIA). July 2020.
  • Crowd simulation with open standards of graphics and parallel computing on GPUs, by Antonio Torres Moríñigo. Co-advised with Fernando Sancho-Caparrini. BSc thesis (computer engineering). June 2020. Distinction. Resultado de imagen de gitlab
  • Mathematical principles of Bootstrap aggregation, by Julia Alcántara Romero. Co-advised with Miguel A. Gutiérrez. BSc thesis (Mathematics). June 2020.
  • Study and Application of Convolutional Neural Networks to the Problem of Detection and Classification of Violent Scenes on Video, by Rafael Fernández González. MSc thesis (MULCIA). December 2019.
  • Reconstruction of the VELO Subdetector using the Hough Transform, by Alejandro López Fernández. Co-advised with Daniel H. Campora-Pérez. BSc thesis (computer engineering). December 2019.
  • Semantic analysis of video by using Deep Learning, by Aliaksei Kandratsenka. MSc thesis (MULCIA). September 2019.
  • Accelerated Simulation of Population Dynamics P Systems with GPU, by Andrés Doncel Ramírez. Co-advised with Daniel H. Campora-Pérez. MSc thesis (MULCIA). July 2018.
  • A Study of a Parallel Implementation for the Pixel VELO Subdetector, by Daniel H. Campora Pérez. Co-advised with Fernando Sancho-Caparrini and Niko Neufeld, in collaboration with CERN. MSc thesis (MULCIA). September 2013. Extraordinary Award of Master Thesis Universidad de Sevilla.
  • Simulation of probabilistic P systems on GPUs, by Adolfo Gastalver-Rubio. Co-advised with Ignacio Pérez-Hurtado. Final project (computer engineering). September 2012.
  • Acceleration of membrane system simulations on solutions to SAT using GPUs, by Jesús Pérez-Carrasco. Final project (computer engineering). July 2012. Distinction.
  • Web analyzer of P-Lingua, by José González Pareja. Co-advised with IgnacioFinal project computer engineering Pérez-Hurtado. Final project (computer engineering). July 2012.
  • A generic compiler for P-Lingua, by Francisco González Cordero. Co-advised with Ignacio Pérez-Hurtado. Final project (computer engineering). September 2011.
  • Multi-agent systems on CUDA, by Daniel H. Campora Pérez. Co-advised with Fernando Sancho-Caparrini. Final project (computer engineering). July 2010. Distinction.

NVIDIA DLI AMBASSADOR


I am an University Ambassador of NVIDIA Deep Learning Institute (DLI) in Gold Tier in 2022. Moreover, I am a certified DLI instructor for the following courses:

  • Fundamentals of Deep Learning (June 2021).
  • Fundamentals of Accelerated Data Science with RAPIDS (April 2020).
  • Fundamentals of Accelerated Computing with CUDA C/C++ (February 2019).
  • (Extincted) Fundamentals of Deep Learning for Computer Vision (October 2018-December 2020).

Moreover, I have been a Teaching Assistant at the following training sessions:

  • Data Parallelism: How to Train Deep Learning Models on Multiple GPUs, GTC, March 2023, Online.
  • Fundamentals of Accelerated Computing with CUDA C/C++, June 22, 2022, Online, for student workshops of NVIDIA DLI
  • Fundamentals of Accelerated Data Science with RAPIDS, GTC, March 2022, Online
  • Fundamentals of Deep Learning, December 2, 2021, University of Seville, Online
  • Fundamentals of Accelerated Data Science with RAPIDS, GTC, November 2021, Online
  • Fundamentals of Accelerated Data Science with RAPIDS, GTC, April 2021, Online.
  • Fundamentals of Deep Learning for Computer Vision, GTC Europe, October 2018, Munich, Germany.
  • Deep Learning for Healthcare Image Analysis, MICCAI, September 2018, Granada, Spain

I delivered the following workshops:

  • Fundamentals of Deep Learning on February 22-23, 2023, at the University of Seville within the Master of Omics Data Analysis and Systems Biology.
  • Fundamentals of Deep Learning, December 21, 2022, University of Seville, Online
  • Fundamentals of Deep Learning, November 16-17, 2022, University of Seville within the ICE (Institute of Education Sciences), Online
  • Fundamentals of Deep Learning on May 27, 2022, at the University of Seville within the Master of Data Science and Big Data.
  • Fundamentals of Deep Learning on May 13, 2022, at the University of Seville within the Master of Omics Data Analysis and Systems Biology.
  • Fundamentals of Accelerated Data Science with RAPIDS, on April 19, 2022, for student workshops of NVIDIA DLI
  • Fundamentals of Accelerated Data Science with RAPIDS on April 20-28, 2022, at the University of Seville within the Master of Data Science and Big Data.
  • Fundamentals of Accelerated Data Science with RAPIDS, on January 26, 2022, as faculty development program of NVIDIA DLI
  • Fundamentals of Accelerated Computing with CUDA C/C++, on November 29 and 30, 2021, inside the 2nd COMCHA School, at IFIC - University of Valencia.
  • Fundamentals of Accelerated Data Science with RAPIDS on April 23 & 28, 2021, at the University of Seville within the Master of Data Science and Big Data.
  • Fundamentals of Accelerated Data Science with RAPIDS on February 25, 2021, inside SATELEC 2021, at Polytechnic University of Madrid.
  • Fundamentals of Accelerated Computing with CUDA C/C++ on June 8-10, 2020, at the University of Seville within the GPU days Universidad de Sevilla.
  • Fundamentals of Accelerated Data Science with RAPIDS on May 12-13, 2020, at the University of Seville within the Master of Data Science and Big Data.
  • Fundamentals of Accelerated Computing with CUDA C/C++ on October 7-8, 2019, inside the 1st COMCHA school at the University of Ramon Llull (Barcelona).
  • Fundamentals of Accelerated Computing with CUDA C/C++ on May 22, 2019, at the University of Seville.

OTHER ACTIVITIES

  • Invited speaker "GPU powering Membrane Computing", at GPU days Maastricht University, Maastricht, February 9, 2022.
  • Instructor of the GPU computing block at 2nd COMCHA school, IFIC - University of Valencia, Valencia, November 29-30, 2021.
  • Instructor of the workshop "NVIDIA: Fundamentals of Accelerated Data Science with RAPIDS", at SATELEC 2021, Polytechnic University of Madrid (February 25, 2021).
  • Instructor of the course "Introduction to Deep Learning with Python", organized by ICE (Institute of Educational Sciences) of the University of Seville (November 17 and 19, 2020).
  • I gave two webinars on Deep Learning introduction for the student branch of IEEE at University of Seville, during the COVID-19 lockdown. April 10 (recording ) and April 17 (recording ), 2020.
  • Instructor of the GPU computing block at 1st COMCHA school, University of Ramón Llull, Barcelona, October 7-9, 2019.
  • Assistant Teacher briefly collaborating on the project Artificial Intelligence... ¡Naturally! of the Summer Science Campus (for outstanding high school students), teaching an introduction to AI and Deep Learning. Organized by the Spanish government and FECYT (Seville, July 2018).
  • Assistant Teacher in the project Artificial Life... ¿Intelligent? of the Summer Science Campus (for outstanding high school students), teaching an introduction to GPU computing. Organized by the Spanish government and FECYT (Seville, July 2013 and July 2014).
  • Assistant Teacher in the project Intelligent Computing with Living Organisms of the Summer Science Campus (for outstanding high school students), teaching an introduction to GPU computing. Organized by the Spanish government and FECYT (Seville, July 2011 and July 2012).
  • Invited speaker:
    • Course Bio-inspired Computing, of the Master in Logic, Computing and Artificial Intelligence, University of Seville (year 2013).
    • Course Teaching Innovation and Introduction to Educational Research, specialty in computer information, of the Master in Secondary Education and Professional Formation, University of Seville (years 2013-2014, 2012-13, 2011-12 and 2010-11). Proposal of research projects about teaching GPU computing and CUDA in high schools.
    • Course Computational Simulation and Analysis in Systems Biology, of the Master in Logic, Computing and Artificial Intelligence, University of Seville (years 2011, 2012, 2013, 2014).
    • Course Nature, a source of computational inspiration, organized by Institute of Educational Sciences of the University of Lleida (year 2010).