- Python Global Interpreter Lock (GIL)은 여러 스레드를 사용하는 프로그램의 성능 향상을 저해하는 주요 장애물이었다.
- 2021년 10월, Sam Gross는 GIL이 없는 Python의 개념 증명 버전을 소개했으나, 초기에는 열광적인 반응을 얻었지만 1년 넘게 큰 진전이 없었다.
- Python Steering Council은 이제 no-GIL 기능을 통합할 의향을 발표했다.
- 2021년 중반에 시작된 Faster CPython 프로젝트는 Python 인터프리터의 단일 스레드 성능을 향상시키는 데 초점을 맞추고 있다.
- 올해 PyCon에서 Faster CPython 팀의 두 멤버가 인터프리터 성능을 향상시키기 위해 사용한 전략을 발표했다.
- 2023년 1월, 핵심 개발자인 Łukasz Langa가 Gross가 작성한 PEP 703 ("CPython에서 Global Interpreter Lock을 선택적으로 사용")의 첫 버전을 게시했다.
- Python 커뮤니티는 Python 2에서 3으로의 혼란스러운 전환을 피하려고 한다. GIL을 제거하는 모든 변경은 이에 대비하지 못한 코드와 호환되어야 한다.
- 6월 14일, Faster CPython 팀은 no-GIL 기능에 대한 결정을 촉구하는 압력을 높였다.
- 7월 28일, 이사회 멤버인 Thomas Wouters는 이사회가 PEP 703을 수락했음을 발표했지만, 수락의 세부 사항은 아직 조정 중이다.
- 계획은 no-GIL 버전의 인터프리터를 도입하여 누락된 구성 요소를 모두 파악하고, 이를 해결한 후 no-GIL이 Python의 기본이자 최종 버전이 되도록 하는 것이다.
- no-GIL 버전으로의 전환은 약 5년이 소요될 것으로 예상되며, 과거의 실수를 반복하지 않겠다는 약속이 있다.
- 이 글에서는 .NET의 병렬 프로그래밍을 사용하여 "당혹스럽게 분할 가능한" 데이터가 주어진 경우 for/foreach 루프를 가속화하는 방법에 대해 논의한다.
- 이 글에서는 Python의 단일 스레드 성능 유지의 장기적인 실행 가능성에 대해 논의하며, 일부는 피할 수 없는 오버헤드와 복잡성 증가가 결국 성능을 저하시킬 것이라고 주장한다.
- 이 글은 두 버전 간의 호환성이 없었던 Python 2에서 Python 3으로의 전환에 대해 반성한다.
- 저자는 Python 3의 Python 2와의 호환성이 없는 영향이 일부에게는 예상되었다는 점을 주장하며, 이는 대중적인 생각과는 반대이며, 2007년의 블로그 게시물 링크를 공유한다.
- 저자는 Python 2에서 Python 3으로의 전환에서 배운 점의 중요성을 강조하며, 미래에 비슷한 문제를 피하기 위해 이를 강조한다.
- 이 글은 Python 2에서 Python 3으로의 전환의 도전을 예측한 사람들의 선견지명을 인정하는 것으로 결론을 내린다.