Ghi chú giới thiệu về song song hóa, trong các mẫu cụ thể của các vấn đề và thuật toán


10

Tôi đang tìm kiếm các ghi chú Bài giảng có sẵn trực tuyến hoặc các tài nguyên khác giới thiệu tốt về lập trình song song, giống như các lớp tương tự song song của các lớp cơ bản trong khoa học máy tính.

Trọng tâm của tôi là như sau: trong khi tôi có thể nói về sự phân chia & chinh phục, thuật toán tham lam, lập trình động và tương tự, tức là các mô hình cơ bản của thuật toán tuần tự (và các vấn đề) và tôi không có ngôn ngữ phù hợp để phân loại các cách tiếp cận theo thuật toán song song.

Ví dụ, tôi muốn có được các thuật ngữ phù hợp để diễn đạt thực tế rằng các cách tiếp cận song song rõ ràng đối với từng vấn đề sau đây có hành vi định tính khác nhau:

  1. thiết lập một mảng các số nguyên hoàn toàn bằng không (tỷ lệ hoàn hảo.)
  2. tổng hợp một mảng các số nguyên (bạn sử dụng càng nhiều chủ đề thì càng có nhiều chi phí.)
  3. Đưa ra một mảng, liệt kê các sản phẩm của từng mục với từng mục khác (nếu chúng ta song song hóa vòng lặp kép chính tắc, thời gian chạy sẽ chia tỷ lệ thành sqrt của bộ xử lý số.)

Một môi trường bộ nhớ chia sẻ đủ, và giao tiếp giữa các quá trình không phù hợp với tôi (thực tế, tôi quan tâm đến các thuật toán tránh nó ở tất cả). Hơn nữa, các khía cạnh kỹ thuật là tiêu cực đối với tôi.


Bạn có thể định nghĩa lại câu này không: "Ví dụ, tôi muốn có một ngôn ngữ tại sao cách tiếp cận song song rõ ràng với các vấn đề sau có hành vi định tính khác nhau"
Gopi

Làm xong. Tôi hy vọng điều này là hiệu quả hơn.
shuhalo

Câu trả lời:


6

Đối với một cuốn sách giới thiệu về lập trình song song (tôi không biết về tài liệu trực tuyến), tôi đã học nó với Thuật toán song song của Casanova, Legrand và Robert, rất hữu ích để bắt đầu thuật toán song song lý thuyết.

Hơn nữa, trong SPAA'11 là một cuộc thảo luận về những gì một thuật toán song song và sinh viên điện toán phân tán nên biết và những gì nên được dạy. Đây Chương trình Sáng kiến trên Parallel và Distributed Computing , sẽ giúp bạn tìm thấy không phải là một quá trình, nhưng danh sách các chủ đề khác nhau mà nên bìa trong một khóa học undergrad. Sau đó, tôi cho rằng việc tìm tài liệu về mọi chủ đề cụ thể sẽ dễ dàng hơn.


1
Thuật ngữ "ngôn ngữ" được gọi là ngôn ngữ tự nhiên, không phải ngôn ngữ lập trình hoặc tương tự. Giống như toán học là một ngôn ngữ, và ví dụ lý thuyết thể loại hoặc lý thuyết nhóm được cho là cung cấp một "ngôn ngữ" cho các cấu trúc, quan hệ và sự kiện nhất định. Nhưng dù gì cũng cảm ơn.
shuhalo

Thật vậy, xấu của tôi :). Sau đó, trong ba câu hỏi mà bạn có, tôi thực sự khuyên bạn nên cuốn sách mà tôi liên kết rất lý thuyết. Họ nghiên cứu tất cả các loại thuật toán và kỹ thuật song song trên các loại kiến ​​trúc song song khác nhau. Sau đó, phần có thể trả lời ba câu hỏi của bạn sẽ là phần trên Vòng lặp thống nhất .
Gopi


+1 cho Sáng kiến ​​Chương trình giảng dạy NSF / IEEE-TCPP, nhưng tôi khuyên bạn nên xóa OpenMP & MPI, vì chúng không thực sự phù hợp ở đây.
Jukka Suomela

Thật vậy, tôi đã quên xóa nó sau bình luận của @Martin. Cảm ơn.
Gopi

7

Nếu bạn không muốn đi sâu vào các chi tiết chính, một phần giới thiệu rất hay về các mẫu thiết kế song song được cung cấp bởi cuốn sách Các mẫu cho lập trình song song của Mattson, Sanders và Massingill.

Bạn sẽ tìm thấy các giải pháp chung, có thể áp dụng rộng rãi để song song hóa và thậm chí giới thiệu ngắn gọn về cả OpenMP và MPI. Cuốn sách bắt đầu bằng cách giới thiệu các mẫu thiết kế và đồng thời. Sau đó, các tác giả tiến hành minh họa cách khai thác đồng thời, cách cấu trúc thuật toán và cách thực hiện thuật toán có tính đến đồng bộ hóa và giao tiếp.

Một lần nữa, đây không phải là một cuốn sách giáo khoa về các thuật toán song song. Nó làm rất tốt công việc trình bày các tài liệu liên quan chặt chẽ đến công nghệ phần mềm song song, với cả trọng tâm thực tiễn và lý thuyết. Do đó, nó phải phù hợp hoàn hảo với nhu cầu của bạn.


1

MPI_RUBY ... cần tìm bản dựng ổn định mới nhất của tôi. Tôi sẽ đề nghị thêm tiền tố song song (quét) vào danh sách. Tôi sẽ chỉ dạy tiền tố song song và chỉ cho họ cách sử dụng đường cong lấp đầy không gian để có hiệu quả bộ đệm tốt hơn cho vấn đề tất cả các cặp.

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.