Portrait of Ioannis Markakis

Ioannis Markakis

Computer Science Undergraduate | Systems, HPC, Computer Architecture

Iráklion, Crete, Greece

giannism713@gmail.com
(+30) 6989561108

CV | GitHub | LinkedIn

About

Hello everybody,

I’m currently an undergraduate student in the Department of Computer Science at the University of Crete and an undergraduate researcher at CARV, ICS-FORTH. This semester, I’m studying at FIB/UPC in Barcelona, Spain, as an Erasmus student while also working as a Visiting Junior Researcher at BSC (Barcelona Supercomputing Center).

My interests are in systems software, the Linux kernel, and computer architecture. For my thesis, I’m developing a huge-page eviction policy using Intel PEBS. I’m also studying applications of formal methods to Linux kernel drivers using Ada and SPARK. Previously, I was supervised by Dr. Manolis Katevainis and Dr. Panagiota Fatourou on projects involving computer hardware and concurrent and distributed systems, respectively.

I’ve also been fortunate to receive the Stelios Orphanoudakis Distinguished Undergraduate Scholarship twice, together with the X & A Karidis Endowment Scholarship for my performance in the Panhellenic entrance examinations.

Ongoing Work

Research Experience

Visiting Junior Researcher

BSC - Barcelona Supercomputing Center
Barcelona, Spain
September 2026 - Today (until January 2027)

  • Studying different implementations for writing drivers such as C, Rust, Ada and SPARK while keeping track of the setup and environment adjustments they need in order to function.
  • Comparing these implementations in terms of security, protection for the programmer and the kernel, physical constraints and limitations from the kernel.

Undergraduate Research Intern

CARV - Institute of Computer Science FORTH with Dr. Angelos Bilas
Iráklion, Crete, Greece
October 2025 - Today

  • Studied deeply a linux kernel memory offloading module xHeap analyzing its performance and benefits in memory pressure scenarios by using efficiently transparent huge pages.
  • Implemented a mechanism that could use Intel PEBS to optimally drain PEBS Samples from the PEBS DS buffer handled by the hardware, to effectively sample and record statistics on the usage of huge pages in the testing application, keeping sampling overhead low so it doesn’t affect the program’s normal execution.
  • Expressed the application’s sampled addresses into a huge page eviction policy that chooses huge pages to evict based on usage coverage from the application and analyzed performance improvements.

Undergraduate Research Intern

CARV - Institute of Computer Science FORTH with Dr. Panagiota Fatourou
Iráklion, Crete, Greece
June 2025 - September 2025

  • Benchmarked concurrent list-based data structure and their different implementations such as coarse-grain, fine-grain, optimistic, lazy and nonblocking synchronization, analyzing performance under varying workloads and drawing insights on scalability and efficiency.
  • Explored advanced concurrent leaf oriented tree-based data structures, focusing on their ability to support high-performance operations and queries consisting of insert, delete and search operations.
  • Tested a concurrent tree split algorithm that uses combining in the parent nodes, comparing with non combining algorithms, studying performance attributes and system properties.

Undergraduate Research Intern

CARV - Institute of Computer Science FORTH with Dr. Manolis Katevainis
Iráklion, Crete, Greece
June 2024 - September 2024

  • Gained hands-on experience with I/O–CPU communication protocols including AXI4 and LMB.
  • Designed and verified a multiprocessor arbiter in SystemVerilog using Xilinx Vivado, enabling efficient management of concurrent read/write requests from multiple clients, giving round robin priority and handling outstanding reads and writes.
  • Implemented a benchmark with Microblaze processors that extended the use of the designed arbiter and actively used the studied communication protocols to validate performance and scalability by experimental analysis.

Projects

diff-enhanced

diff-enhanced is a C-based automated testing tool designed to help students and instructors efficiently unit test C programs against a suite of input/output test cases.

library-loan-concurrent

This project implements a concurrent library loan system using MPI (Message Passing Interface) in C. The system simulates a distributed environment where multiple borrowers and libraries interact concurrently to borrow, lend, and donate books, by applying message-passing concurrency, process synchronization and fault tolerance techniques.

restaurant-menu-concurrent

This project implements a concurrent restaurant order processing system using C++20 and POSIX threads by applying deadlock prevention techniques and parallel task scheduling.

dual_port_bram_controller

This project implements a parameterizable dual-port Block RAM (BRAM) memory controller in SystemVerilog, designed to support multiple CPUs (default 8) accessing shared memory resources efficiently.thethe

View all projects on GitHub