1 điểm bởi GN⁺ 2023-08-19 | 1 bình luận | Chia sẻ qua WhatsApp
  • Python Global Interpreter Lock (GIL) từ lâu là rào cản chính cản trở việc cải thiện hiệu năng của các chương trình dùng nhiều luồng.
  • Vào tháng 10 năm 2021, Sam Gross đã giới thiệu một phiên bản chứng minh khái niệm của Python không có GIL, nhưng dù ban đầu nhận được phản ứng rất hào hứng, hơn một năm sau vẫn không có nhiều tiến triển đáng kể.
  • Python Steering Council hiện đã tuyên bố sẵn sàng tích hợp tính năng no-GIL.
  • Dự án Faster CPython, bắt đầu từ giữa năm 2021, tập trung vào việc cải thiện hiệu năng đơn luồng của trình thông dịch Python.
  • Tại PyCon năm nay, hai thành viên của nhóm Faster CPython đã trình bày các chiến lược họ sử dụng để cải thiện hiệu năng trình thông dịch.
  • Tháng 1 năm 2023, lập trình viên nòng cốt Łukasz Langa đã đăng phiên bản đầu tiên của PEP 703 do Gross viết ("Tùy chọn sử dụng Global Interpreter Lock trong CPython").
  • Cộng đồng Python đang cố tránh một quá trình chuyển đổi hỗn loạn như từ Python 2 sang Python 3. Mọi thay đổi để loại bỏ GIL phải tương thích với các đoạn mã chưa được chuẩn bị cho việc này.
  • Ngày 14 tháng 6, nhóm Faster CPython gia tăng áp lực để thúc đẩy quyết định về tính năng no-GIL.
  • Ngày 28 tháng 7, thành viên hội đồng Thomas Wouters thông báo rằng hội đồng đã chấp nhận PEP 703, dù các chi tiết của việc chấp nhận vẫn đang được điều chỉnh.
  • Kế hoạch là đưa vào một phiên bản trình thông dịch no-GIL để xác định toàn bộ các thành phần còn thiếu, giải quyết chúng, rồi sau đó để no-GIL trở thành mặc định và là phiên bản cuối cùng của Python.
  • Quá trình chuyển sang phiên bản no-GIL được dự kiến sẽ mất khoảng 5 năm, kèm cam kết không lặp lại những sai lầm trong quá khứ.
  • Bài viết này thảo luận cách dùng lập trình song song trong .NET để tăng tốc các vòng lặp for/foreach khi có dữ liệu "embarrassingly parallel".
  • Bài viết cũng bàn về tính khả thi lâu dài của việc duy trì hiệu năng đơn luồng của Python; một số ý kiến cho rằng chi phí phụ trội và độ phức tạp gia tăng là không thể tránh khỏi và cuối cùng sẽ làm giảm hiệu năng.
  • Bài viết nhìn lại quá trình chuyển đổi từ Python 2 sang Python 3, khi hai phiên bản này không tương thích với nhau.
  • Tác giả cho rằng tác động của việc Python 3 không tương thích với Python 2 đã được một số người dự đoán trước, trái với quan niệm phổ biến, và chia sẻ liên kết đến một bài blog năm 2007.
  • Tác giả nhấn mạnh tầm quan trọng của những bài học rút ra từ quá trình chuyển đổi từ Python 2 sang Python 3 để tránh các vấn đề tương tự trong tương lai.
  • Bài viết kết luận bằng việc ghi nhận tầm nhìn xa của những người đã dự đoán trước các thách thức trong quá trình chuyển đổi từ Python 2 sang Python 3.

1 bình luận

 
GN⁺ 2023-08-19
Bình luận trên Hacker News
  • Thảo luận về bài viết nói về dự án loại bỏ Global Interpreter Lock (GIL) và tăng tốc CPython.
  • Một số người bình luận cho rằng bài viết không nhấn mạnh đầy đủ lợi ích của việc loại bỏ GIL và nghiêng nhiều hơn về phía “chống GIL”.
  • Công việc của Sam Gross trong dự án no-GIL được khen ngợi vì chất lượng cao và những cải thiện về hiệu năng mà nó mang lại.
  • Cộng đồng thể hiện sự quan tâm lớn đối với dự án, và ban chỉ đạo dự định chấp nhận PEP 703, đề xuất liên quan đến dự án này.
  • Một số người bình luận bày tỏ lo ngại rằng việc loại bỏ GIL có thể ảnh hưởng tiêu cực đến mã Python đa luồng.
  • Quyết định triển khai dự án ở chế độ thử nghiệm có vẻ hợp lý, nhưng vẫn có lo ngại rằng sẽ cần thêm nguồn lực nếu xuất hiện các lỗi và khó khăn tiềm ẩn.
  • Một số người bình luận tin rằng việc loại bỏ GIL là một sai lầm vì nó gây ra tổn thất hiệu năng và có thể làm mất đi những cơ hội cải tiến khác.
  • Những người khác đề xuất ưu tiên hiệu năng đơn luồng và bổ sung các tiến trình ảo với cơ chế rõ ràng để chia sẻ bộ nhớ.
  • Nỗ lực thúc đẩy dự án của Sam Gross được khen ngợi, và dù con đường đến với Python no-GIL sẽ dài và gập ghềnh, đây vẫn có vẻ là một bước tiến tích cực.
  • Có những lo ngại về chi phí bảo trì gia tăng để bảo đảm tính đúng đắn của các codebase hiện có và việc biến GIL/no-GIL thành một công tắc tại thời điểm biên dịch.
  • Cộng đồng Python được khen ngợi vì tính minh bạch và quản trị tốt, nhưng cũng có ý kiến kêu gọi ngành công nghệ hỗ trợ nhiều hơn, xét đến giá trị mà họ đang khai thác từ Python.
  • Một số người bình luận đặt câu hỏi liệu có thể chấp nhận khả năng mã đơn luồng sẽ chậm đi 15-20% do dự án này hay không.