7-Zip Cuối Cùng Đã Vượt Qua Rào Cản 64 Nhân Trên Windows Với Hỗ Trợ Processor Group Mới

Nhóm Cộng đồng BigGo
7-Zip Cuối Cùng Đã Vượt Qua Rào Cản 64 Nhân Trên Windows Với Hỗ Trợ Processor Group Mới

Công cụ nén phổ biến 7-Zip đã vượt qua một hạn chế lâu đời của Windows khiến nó không thể sử dụng hơn 64 nhân CPU. Bước đột phá này xuất hiện khi các bộ xử lý có số nhân cao ngày càng trở nên phổ biến, với các chip Threadripper và EPYC mới nhất của AMD cung cấp 96 nhân hoặc hơn trong một socket duy nhất.

Các hệ thống có số lõi cao bị ảnh hưởng:

  • AMD Threadripper : Lên đến 96 lõi trong một socket duy nhất
  • AMD EPYC 9004 series : Lên đến 128 lõi
  • Hệ thống Intel Xeon : Nhiều cấu hình lõi cao khác nhau
  • Yêu cầu quản lý nhóm bộ xử lý thủ công trước khi có bản cập nhật này

Windows Processor Groups: Nút Thắt Cổ Chai Ẩn Giấu

Hạn chế này thực ra không nằm ở chính 7-Zip, mà là một quyết định thiết kế kỳ lạ của Windows có từ năm 1993. Windows sử dụng thứ gọi là processor groups - các tập hợp tối đa 64 hardware thread mà hệ điều hành xem như các đơn vị lập lịch riêng biệt. Thiết kế này hoàn toàn hợp lý khi máy tính hầu như không có nhiều nhân, nhưng nó đã tạo ra một trần vô hình cho các ứng dụng hiện đại cố gắng khai thác các bộ xử lý nhiều nhân ngày nay.

Gốc rễ kỹ thuật của vấn đề này nằm trong thiết kế kernel của Windows NT, nơi các thao tác đồng bộ hóa dựa vào register-width bitmask để biểu diễn các tập CPU. Vì những thao tác này được triển khai dưới dạng macro và inline function, chúng đã trở thành một phần của driver interface, khiến việc thay đổi trở nên khó khăn mà không phá vỡ tính tương thích.

Giới hạn của Windows Processor Group:

  • Tối đa 64 luồng phần cứng trên mỗi nhóm bộ xử lý
  • Các ứng dụng phải tự quản lý luồng trên nhiều nhóm khác nhau
  • Giới hạn này có từ thiết kế nhân NT từ năm 1993
  • Windows 11/Server 2022 đã cải thiện việc phân phối luồng tự động

Thách Thức Thuật Toán Nén

Việc cập nhật 7-Zip để hoạt động trên nhiều processor group không chỉ đơn giản là phát hiện thêm nhiều nhân. Các thuật toán nén đối mặt với những thách thức độc đáo khi chia công việc trên nhiều thread. Không giống như các tác vụ có thể dễ dàng phân chia, nén dữ liệu dựa vào việc xây dựng từ điển động có lợi từ việc xem nhiều dữ liệu cùng một lúc. Chia công việc quá nhỏ sẽ làm mất hiệu quả nén.

Cộng đồng đã tích cực thảo luận về sự cân bằng giữa tốc độ và chất lượng nén này. Một số người dùng báo cáo rằng mặc dù nén song song nhanh hơn, nhưng nó có thể tạo ra kết quả hơi khác so với nén đơn luồng, tùy thuộc vào cách dữ liệu được chia giữa các thread.

Cuộc Chiến Định Dạng và Mối Quan Ngại Về Tương Thích

Cuộc thảo luận xung quanh các cải tiến của 7-Zip đã khơi dậy những tranh luận rộng hơn về các định dạng nén. Trong khi 7-Zip hỗ trợ thuật toán nén Zstandard (zstd) mới hơn thông qua các bản build của bên thứ ba, phiên bản chính vẫn thiếu hỗ trợ native. Nhiều người dùng bày tỏ sự thất vọng với hạn chế này, đặc biệt là khi zstd cung cấp hiệu suất tốt hơn cho các file lớn.

Tuy nhiên, tính tương thích vẫn là vua trong thế giới thực. Như một thành viên cộng đồng đã lưu ý:

Mọi người đều có thể mở file ZIP, và họ không thực sự quan tâm nếu file lớn hơn vài MB.

Quan điểm này phản ánh sự căng thẳng đang diễn ra giữa tiến bộ kỹ thuật và khả năng sử dụng thực tế. Trong khi các định dạng mới hơn như zstd cung cấp tỷ lệ nén và tốc độ vượt trội, sự phổ biến của hỗ trợ định dạng ZIP trên tất cả các nền tảng và phần mềm cũ vẫn giữ cho nó có liên quan.

So sánh định dạng nén:

  • ZIP với DEFLATE: Tương thích toàn cầu, nén ở mức độ trung bình
  • Định dạng 7Z: Tỷ lệ nén tốt hơn, hỗ trợ mã hóa AES
  • Zstandard (zstd): Tốc độ và khả năng nén vượt trội, tương thích hạn chế
  • XZ/LZMA: Tỷ lệ nén cao nhất, giải nén chậm hơn

Nhìn Về Tương Lai

Hỗ trợ processor group trong 7-Zip đại diện cho nhiều hơn chỉ là một cải tiến hiệu suất - nó báo hiệu sự thích ứng của phần mềm với thực tế phần cứng hiện đại. Khi các nhà sản xuất CPU tiếp tục đẩy số lượng nhân cao hơn, các ứng dụng không thể mở rộng vượt quá 64 thread có nguy cơ trở thành nút thắt cổ chai trong các hệ thống hiệu suất cao.

Đối với hầu hết người dùng, thay đổi này sẽ không tạo ra sự khác biệt đáng chú ý. Nhưng đối với những người làm việc với các archive khổng lồ trên workstation hoặc server cao cấp, khả năng tận dụng đầy đủ khoản đầu tư phần cứng của họ có thể giảm đáng kể thời gian xử lý. Bản cập nhật này cũng định vị 7-Zip để duy trì sự liên quan khi máy tính tiếp tục hành trình hướng tới số lượng nhân ngày càng cao hơn.

Processor Groups: Một cách tổ chức các nhân CPU theo nhóm tối đa 64 thread của Windows, ban đầu được thiết kế để khắc phục các hạn chế phần cứng từ những năm 1990.

Zstandard (zstd): Một thuật toán nén hiện đại được phát triển bởi Facebook cung cấp tốc độ và tỷ lệ nén tốt hơn so với các định dạng cũ như gzip.

Tham khảo: REACHING FOR THE SKY: HOW I CONQUERED MY GREATEST FEAR