Có bất kỳ nghiên cứu nào so sánh OpenCL với hiệu suất OpenMP không? Cụ thể là tôi quan tâm đến chi phí trên không khi khởi chạy chủ đề với OpenCL, ví dụ, nếu người ta phân chia tên miền thành một số lượng lớn các mục công việc riêng lẻ (mỗi chủ đề chạy bằng một công việc nhỏ) so với các chủ đề trọng lượng nặng hơn trong OpenMP tên miền được phân tách thành các tên miền phụ có số bằng số lõi.OpenCL và hiệu suất OpenMP
Có vẻ như mô hình lập trình OpenCL được nhắm mục tiêu nhiều hơn đến các chip song song ồ ạt (ví dụ GPU), chứ không phải các CPU có ít lõi hơn nhưng mạnh hơn.
OpenCL có thể là sự thay thế hiệu quả cho OpenMP không?
Tôi cũng muốn biết liệu/khi sử dụng OpenMP và OpenCL cùng nhau có hiệu quả hay không. OpenCL là thread-safe (ngoại trừ phương thức clSetKernelArg()), vì vậy nó có vẻ như có chỗ để tận dụng cả hai công nghệ. –
Nếu định nghĩa của bạn về "hiệu quả" bao gồm khả năng đọc và tiến hóa, thì câu trả lời phải là "không". OpenCL không thể được bắt vít vào mã hiện tại theo cách mà OpenMP có thể, và nó có cú pháp cú pháp đáng kể so với OpenMP. Mặt khác, việc viết mã OpenMP để sử dụng hiệu quả hệ thống phân cấp bộ nhớ thường ít dễ đọc hơn so với OpenCL. – Jeff
Câu hỏi của bạn cần được thu hẹp một chút. Bạn đang tìm kiếm một so sánh của GPU vs CPU đa luồng, hoặc OpenMP vs OpenCL? Để so sánh cả hai ngôn ngữ, chúng thực sự cần phải chạy trên cùng một kiến trúc. Nếu không, đó là táo và cam. – orodbhen