1P by neo 2023-08-19 | favorite | 댓글 1개
  • 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으로의 전환의 도전을 예측한 사람들의 선견지명을 인정하는 것으로 결론을 내린다.
Hacker News 의견
  • 글로벌 인터프리터 락(GIL) 제거와 더 빠른 CPython 프로젝트에 대한 기사 논의.
  • 일부 댓글 작성자들은 기사가 GIL 제거의 이점을 충분히 강조하지 않고 "GIL 반대" 측에 더 치우쳐 있다고 믿습니다.
  • Sam Gross의 no-GIL 프로젝트 작업은 그 고품질과 성능 향상을 가져오는 데 대해 칭찬받습니다.
  • 커뮤니티는 프로젝트에 대한 큰 관심을 보였으며, 조정 위원회는 프로젝트와 관련된 제안인 PEP 703을 수용할 계획입니다.
  • 일부 댓글 작성자들은 GIL 제거가 멀티 스레드 Python 코드에 부정적인 영향을 미칠 수 있다는 우려를 표현합니다.
  • 테스트 모드에서 프로젝트를 진행하는 결정은 합리적으로 보이지만, 잠재적인 버그와 어려움이 발생할 경우 더 많은 자원이 필요하다는 우려가 있습니다.
  • 일부 댓글 작성자들은 GIL 제거는 성능 패널티를 초래하고 다른 잠재적인 개선점을 빼앗을 수 있으므로 실수라고 믿습니다.
  • 다른 사람들은 단일 스레드 성능을 우선시하고 메모리 공유를 위한 명확한 메커니즘을 가진 가상 프로세스를 추가하는 것을 제안합니다.
  • Sam Gross의 프로젝트 추진은 칭찬받으며, 비록 길고 험난하지만 no-GIL Python으로 가는 길은 긍정적인 발전으로 보입니다.
  • 기존 코드베이스의 정확성을 보장하고 GIL/no-GIL을 컴파일 시간 스위치로 만드는 유지 관리 비용 증가에 대한 우려가 있습니다.
  • Python 커뮤니티는 그 투명성과 좋은 거버넌스를 칭찬받지만, Python에서 추출하는 가치를 고려할 때 기술 산업에서 더 많은 지원을 요청하는 목소리가 있습니다.
  • 일부 댓글 작성자들은 프로젝트의 결과로 단일 스레드 코드가 15-20% 느려질 수 있는 가능성에 대한 수용성을 의문시합니다.