Tôi có một vòng lặp for trong mã C của tôi như sau:parallelizing một vòng lặp for trong C
for(i=0; i<100000; i++){
a[i] = simulate(); // simulate() function simulates some system
}
Chúng ta thấy rằng tính toán của mỗi lần lặp là độc lập với người khác (theo thứ tự của các yếu tố trong a[]
là không quan trọng đối với tôi). Tôi muốn song song việc tính toán này cho vòng lặp bằng cách sử dụng đa luồng. Tôi không chính xác nhận thức được làm thế nào để làm điều này trong C? Tôi có một máy xử lý 8, vì vậy tôi có thể chạy 8 chủ đề song song.
'Không có cách nào để di chuyển song song trong C' Chuẩn C11 mới chỉ cũ vài ngày, nhưng điều này đang thay đổi! – u0b34a0f6ae
@ kaizer.se Woah, tôi không nhận ra C11 đã được chấp thuận! Tôi sẽ đề cập rằng trong câu trả lời của tôi. Cảm ơn! – Mysticial
Cảm ơn bạn đã trả lời. Tôi đã thử điều này. Đối với một số [i] tôi nhận được một "nan" hoặc "-nan" mặc dù mã hoạt động đúng khi thực thi serially. Tôi nghĩ rằng có thể có một số loại vấn đề đồng bộ hóa –