Bao nhiêu sự lựa chọn của hệ điều hành quan trọng đối với hiệu năng của mã máy tính khoa học?


8

Cách nói phổ biến để nói rằng Linux nhanh hơn và vì những lý do chính đáng. Nhưng như đã nêu trong tiêu đề, sự lựa chọn của hệ điều hành quan trọng như thế nào đối với hiệu năng của mã máy tính khoa học? Đối với những thứ mà hệ điều hành có liên quan trực tiếp hơn (như chơi trò chơi hoặc kết xuất video), chắc chắn có thể có sự khác biệt. Nhưng nếu tôi chạy một số mã trong MATLAB, giải các PDE trong Julia hoặc đang thực hiện một số đại số tuyến tính trên GPU bằng CUDA: thực sự có sự khác biệt hiệu năng có thể đo được giữa Windows, MacOS và Linux không?

Tôi tự hỏi nếu có ai đã thực hiện điểm chuẩn để xem sự khác biệt đó có tồn tại không. Có lẽ sự khác biệt tồn tại khi sử dụng một số phần mềm như MATLAB vì sự khác biệt trong trình biên dịch họ sử dụng? Hoặc có thể trình điều khiển CUDA nhanh hơn một hệ điều hành so với hệ điều hành khác? Hay đôi khi hệ điều hành can thiệp rất nhiều như vấn đề WDDM CUDA ?

Lưu ý: Tôi biết có những lý do khác để chọn một hệ điều hành nằm ngoài phạm vi của câu hỏi này. Tôi đặc biệt tự hỏi về hiệu suất.


6
Sự khác biệt về hiệu năng giữa các HĐH thường là trong lập lịch xử lý, hiệu năng của đĩa và mạng (những thứ mà nhân hệ điều hành sẽ xử lý). Vì mã máy tính khoa học thường có giới hạn CPU hoặc bộ nhớ, nên có lẽ nó chỉ tạo ra một sự khác biệt nhỏ. Đối với CUDA và đồ họa, vấn đề là nhà cung cấp sẽ bỏ ra bao nhiêu cho trình điều khiển của họ cho mỗi HĐH, nhưng đối với mã bị ràng buộc tính toán thì có lẽ cũng không quá quan trọng.
Kirill

Đó là những gì tôi cho là trường hợp, nhưng tôi tự hỏi liệu có ai đã thực hiện một số thí nghiệm để đảm bảo đó là trường hợp. Tôi có thể thiết lập Windows / MacOS / Linux khởi động ba lần và điểm chuẩn các tập lệnh tương tự để xem có đúng như vậy không. Nhưng nếu một người khác với đa khởi động đã làm điều này trước đây, thì có thể không cần phải đầu tư thời gian đó.
Chris Rackauckas

2
Mở rộng trên những gì @Kirill đã đề cập, các HĐH khác nhau có thể có mức độ kiểm soát chi tiết khác nhau để quản lý, giả sử, ưu tiên xử lý hoặc các nút NUMA (ví dụ: kiểm soát bộ nhớ và ái lực CPU), từ đó có thể ảnh hưởng đến hiệu suất của ứng dụng.
njuffa

Mặc dù bạn đã làm rõ rằng những lý do khác cho sự lựa chọn hệ điều hành nên tránh - đó là một cách dễ hiểu - bạn nên cho phép sự ổn định của HĐH như một câu trả lời. Nếu OS1 gặp sự cố sau 20 giờ với 99% tính toán và tất cả các phép tính phải được lặp lại, bạn có thể xem xét nó ít hiệu quả hơn so với tính toán chậm hơn một chút, nhưng ổn định trên OS 2.
Jan Hackenberg

Câu trả lời:


2

Về nguyên tắc nên có ít sự khác biệt vì các bộ công cụ cơ bản thường tương tự nhau nếu không giống nhau: thư viện, trình biên dịch (và phần cứng). Trong thực tế, có thể có sự cải thiện từ việc sử dụng các nút 'mỏng'. Đó không phải là GUI, không có email nào chạy ở mặt sau hoặc bất kỳ quy trình nào khác mà một hệ điều hành có thể sẽ tạo điều kiện cho trải nghiệm người dùng. Có thể dễ dàng hơn để thiết lập hệ điều hành 'máy chủ' trong linux từ một bản phân phối tiêu chuẩn có thể dẫn đến một máy gọn gàng hơn nhiều để chạy mã chuyên sâu điểm nổi. Ngay cả khi đó, những lợi thế sẽ không được chú ý miễn là không có hoạt động của người dùng ngoài mã đang chạy.


2

Tôi nhớ đã đọc hai hoặc ba năm trước về thống kê phân phối HĐH cho Danh sách 500 máy tính nhanh nhất thế giới. Số máy tính đang chạy dựa trên Linux / unix là 498, Windows 2 và không có MacOS. Thật không may, tôi không thể lấy lại số liệu thống kê. Bài viết SuperComputer của Wikipedia chỉ nêu:

"Mặc dù hầu hết các siêu máy tính hiện đại đều sử dụng hệ điều hành Linux, mỗi nhà sản xuất đều có nguồn gốc Linux cụ thể và không có tiêu chuẩn công nghiệp nào tồn tại, một phần do sự khác biệt về kiến ​​trúc phần cứng yêu cầu thay đổi để tối ưu hóa hệ điều hành cho từng thiết kế phần cứng" .

Ngay cả khi bài viết này không đưa ra con số của sự phân phối, nó ít nhất mang lại một xu hướng rõ ràng cho các máy tính chạy Linux. Trong một lĩnh vực mà mỗi bit hiệu năng đều được tính (và số tiền cần thiết để điều chỉnh hệ thống theo đặc tả siêu máy tính rất có thể không có, vì vậy tôi không cho rằng bản chất nguồn mở là lợi ích chính ở đây).

Trên một máy trạm khá bình thường, Linux có xu hướng quản lý tài nguyên tốt hơn, ví dụ như sử dụng ít bộ nhớ hơn và có xu hướng ổn định hơn. Tuy nhiên, đây là một kinh nghiệm cá nhân về số liệu thống kê của tôi sau nó và không nên khái quát mà không có xác nhận (Win 7 so với Ubuntu 14.04).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.