0
Tải bản đầy đủ (.pdf) (106 trang)

Vòng lặp song song (Parallel Loops)

Một phần của tài liệu NGHIÊN CỨU VỀ XỬ LÝ SONG SONG TRONG GIS VÀ XÂY DỰNG ỨNG DỤNG SONG SONG HÓA THUẬT TOÁN ĐỊNH DÒNG CHẢY TRÊN BỀ MẶT (Trang 48 -49 )

Với chƣơng trình tuần tự, khi các vòng lặp thông thƣờng nhƣ for, while, do while chƣơng trình sẽ thực hiện tuần tự từng vòng lặp cho đến khi kết thúc, trong khi đó CPU đang rảnh rỗi thì vẫn phải đợi thực hiện xong một vòng lặp rồi mới thực hiện vòng lặp tiếp theo, vì thế nó sẽ làm tốn thời gian của hệ thống.

Mô hình lập trình song song sử dụng các vòng lặp song song (Parallel Loops) để khắc phục nhƣợc điểm của lập trình tuần tự nhƣ đã nêu trên, các vòng lặp ở đây sẽ đƣợc CPU thực hiện đồng thời, làm tăng hiệu năng tính toán và giảm thời gian của hệ thống.

- Phƣơng thức Parallel.For() với 3 tham số đầu vào, tham số đầu vào chỉ chỉ số bắt đầu tác vụ, tham số thứ 2 chỉ số kết thúc và mục thứ 3 chỉ tác vụ cần thực hiện.

Parallel.For(0, 10, index => {

Console.WriteLine("Task ID {0} processing index: {1}", Task.CurrentId, index);

});

- Vòng lặp ForEach(): sử dụng phƣơng thức Parallel.ForEach(), vòng lặp này linh hoạt hơn so với vòng lặp trƣớc nhờ việc cho phép cải biên giá trị đầu vào. Xét ví dụ:

List<string> dataList = new List<string> {

"the", "quick", "brown", "fox", "jumps", "etc" }; Parallel.ForEach(dataList, item =>

{

Console.WriteLine("Item {0} has {1} characters", item, item.Length);

Cấu trúc câu lệnh trên khá giống với cấu trúc câu lệnh của lập trình tuần tự. Tuy nhiên ta không nên hiểu lầm các vòng lặp này sẽ đƣợc thực hiện một các tuần tự. Nó chỉ biểu diễn dƣới dạng này. Còn việc thực hiện song song là do trình biên dịch và CPU đảm nhiệm.

Một phần của tài liệu NGHIÊN CỨU VỀ XỬ LÝ SONG SONG TRONG GIS VÀ XÂY DỰNG ỨNG DỤNG SONG SONG HÓA THUẬT TOÁN ĐỊNH DÒNG CHẢY TRÊN BỀ MẶT (Trang 48 -49 )

×