2012-02-09 29 views
10

C và Fortran theo truyền thống được sử dụng cho Máy tính hiệu năng cao (Công cụ phải làm với Đại số tuyến tính, Bộ giải phóng PDE và các loại tương tự). Tôi đã nhận thấy một số dự án có trụ sở tại NumPy và SciPy sắp ra mắt trong HPC. Một số người cho rằng Python (với các sửa đổi của khóa học) có thể là ngôn ngữ HPC tiếp theo. Rõ ràng, Python có thể không thay thế các ngôn ngữ này nhưng có thể thêm một trình bao bọc thân thiện xung quanh chúng. Có tài nguyên nào để chứng minh/bác bỏ giả thuyết này không? Nói cách khác, Các nhà nghiên cứu HPC vừa chớm nở có thêm Python vào danh sách các ngôn ngữ mà họ thành thạo không? Nếu đúng thì tại sao ?Máy tính hiệu suất cao Python

LƯU Ý: Đây không phải là một câu hỏi thảo luận trong đó tôi yêu cầu bạn cân nhắc các ưu điểm của & nhược điểm của ngôn ngữ. Tôi cũng không hỏi bạn (theo ý kiến ​​của bạn) Python là tốt cho HPC. Tôi yêu cầu tài liệu tham khảo (dưới hình thức tài liệu học tập, hội thảo hoặc điểm chuẩn) đã điều tra các khiếu nại đó.

+0

bạn luôn có thể viết phần mở rộng python trong c ... – jondavidjohn

+0

"có thể là ngôn ngữ HPC tiếp theo" không phải là một giả thuyết có thể được chứng minh hoặc bị bác bỏ ... –

+0

Ồ, bạn đã chỉnh sửa. Có, các nghiên cứu của HPC nên có nhiều ngôn ngữ nhất có thể (như bất kỳ lập trình viên nào). OCaml cũng tốt, Scala là, các ngôn ngữ khác. Còn câu hỏi nào nữa không? –

Trả lời

1

Tôi nghĩ rằng global interpreter lock là lý do lớn nhất tại sao Python (và các ngôn ngữ động khác (không phải tất cả)) sẽ không được sử dụng cho HPC. Nó sẽ mất nhiều công sức để loại bỏ GIL khỏi Python.

Vì GIL buộc các nhà phát triển sử dụng quy trình để tính toán song song (yêu cầu IPC hoặc bộ nhớ dùng chung), Python không phải là ngôn ngữ lý tưởng cho HPC. This là một bài đọc thú vị liên quan đến GIL, Python, Python thay thế (như Jython và IronPython), và HPC.

+0

Có tồn tại các triển khai thay thế như IronPython không có GIL. Ngoài ra, cũng tồn tại rất nhiều ngôn ngữ động không có GIL. –

+0

Đó là sự thật - IronPython và Jython không có GIL, nhưng không phải là những ngôn ngữ thực sự khác nhau mà chỉ "trông" giống như Python? P.S. Ngôn ngữ nào (ngoài tò mò)? – sholsapp

+0

IronPython có tất cả mọi thứ CPython có, vậy làm thế nào nó là một "ngôn ngữ thực sự khác nhau"? Ví dụ về các ngôn ngữ không có GIL, Well, IronPython, IronRuby, Ruby trên Rubinius (tôi nghĩ), Scala, OCaml, Haskell, ... –

Các vấn đề liên quan