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.
- 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.