We are seeking a motivated and research-oriented student for a research project to develop a functional implementation of an RL-based paging mechanism within the Linux kernel, with the objective of intelligently allocating pages between dynamic random-access memory (DRAM) and non-volatile memory (NVM). This research project offers challenges and opportunities to work at the intersection of kernel-level development, memory management, and reinforcement learning. The algorithm has been implemented and evaluated in a simulated environment and will be used as a basis for the implementation on the kernel level for a real system evaluation.
Skills and Qualifications:
- Strong programming skills in C (knowledge of Assembly and/or C++ is a plus)
- Experience in kernel-level development and understanding of OS design principles
- Familiarity with computer architectures and memory management concepts
- Good problem-solving and analytical skills
- Previous experience or coursework in reinforcement learning or related fields (preferred)
- Ability to work independently and collaborate effectively with a research team
Responsibilities:
- Conduct a comprehensive literature review on paging mechanisms for homogenous and heterogenous memory systems
- Collaborate with the research team to integrate the RL-based paging mechanism into the Linux kernel source code
- Address implementation challenges, such as optimizing Q-table placement and minimizing implementation overhead
- Conduct performance evaluations and comparative analysis of the built-in and RL-based paging mechanisms using memory-intensive workloads
- Document and present research findings in the form of a thesis or a research paper
Benefits:
- Opportunity to contribute to cutting-edge research in memory management
- Hands-on experience in kernel-level development and integrating RL algorithms into complex software systems
- Collaboration with a team of experienced researchers and industry experts
- Possibility of publication and recognition for outstanding contributions
Type of Project: Internship
Master's degree: Master of Engineering Technology; Master of Engineering Science; Master of Science
Master program: Computer Science; Electrotechnics/Electrical Engineering
Duration: 6 - 9 months
For more information or application, please contact one of the supervising scientists:
- Emil Karimov (emil.karimov@imec.be)
- Tommaso Marinelli (tommaso.marinelli@imec.be)
- Saeideh Alinezhad Chamazcoti (saeideh.alin@imec.be)
Only for self-supporting students.