Litmus Testing CPython Without the Global Interpreter Lock

Guardado en:
Bibliografiske detaljer
Udgivet i:ProQuest Dissertations and Theses (2025)
Hovedforfatter: Siddiqui, Ali
Udgivet:
ProQuest Dissertations & Theses
Fag:
Online adgang:Citation/Abstract
Full Text - PDF
Tags: Tilføj Tag
Ingen Tags, Vær først til at tagge denne postø!

MARC

LEADER 00000nab a2200000uu 4500
001 3222457934
003 UK-CbPIL
020 |a 9798280767164 
035 |a 3222457934 
045 2 |b d20250101  |b d20251231 
084 |a 66569  |2 nlm 
100 1 |a Siddiqui, Ali 
245 1 |a Litmus Testing CPython Without the Global Interpreter Lock 
260 |b ProQuest Dissertations & Theses  |c 2025 
513 |a Dissertation/Thesis 
520 3 |a CPython’s Global Interpreter Lock (GIL) has been a long-standing performance bottleneck for the Python programming language, forcing Python threads to run one at a time and preventing real shared memory parallelism in Python programs. Recently, the Python Steering Council has accepted Python Enhancement Proposal (PEP) 703, which aims to eliminate the GIL and bring real multithreading to CPython for the first time. An experimental “free-threaded” version of CPython implementing PEP 703 is now being actively developed by the core CPython team. This thesis describes our efforts to characterize the memory model of free-threaded CPython. We argue that as a consequence of the GIL, CPython has historically enforced an extremely strong memory model, Sequential Consistency (SC), and that the implementers of PEP 703 must be careful to maintain backwards compatibility with this memory model. We use litmus tests to examine the memory consistency guarantees free-threaded CPython offers to Python programs, and we apply a simple form of mutation testing to free-threaded CPython to validate our litmus testing approach. While we find that free-threaded CPython currently preserves SC, we believe that the testing methodology we develop in this thesis can be used to ensure adherence to SC for future versions of free-threaded CPython as well.  
653 |a Computer science 
653 |a Computer engineering 
653 |a Information technology 
773 0 |t ProQuest Dissertations and Theses  |g (2025) 
786 0 |d ProQuest  |t ProQuest Dissertations & Theses Global 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/3222457934/abstract/embedded/7BTGNMKEMPT1V9Z2?source=fedsrch 
856 4 0 |3 Full Text - PDF  |u https://www.proquest.com/docview/3222457934/fulltextPDF/embedded/7BTGNMKEMPT1V9Z2?source=fedsrch