Bài giảng cung cấp cho người học các kiến thức: Giới thiệu về tính toán song song, thuật ngữ tính toán song song, mô hình lập trình song song, nguyên lý hệ điều hành... Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu. Mời các bạn cùng tham khảo chi tiết nội dung tài liệu.
5/11/16 TÍNH TỐN SONG SONG PARALLEL COMPUTING ThS Phan Trọng Tiến Bộ môn CNPM – Khoa CNTT Học Viện Nông nghiệp Việt Nam Email: phantien84@gmail.com Website: http://timoday.edu.vn 1/1/2015 Tính tốn song song Tóm tắt q Đây thuyết trình bao gồm kiến thức tính toán song song Bắt đầu với kiến thức tổng quan vài khái niệm thuật ngữ tính tốn song song, chủ đề kiến trúc song song hố tìm hiểu mơ hình lập trình song song Các chủ đề kèm với thảo luận số vấn đề liên quan việc thiết kế chương trình song song hố Phần cuối thuyết trình vào nghiên cứu cách song song hố số tốn lập trình q Điều kiện tiên quyết: Nguyên lý hệ điều hành 1/1/2015 Tính tốn song song 5/11/16 GIỚI THIỆU VỀ TÍNH TỐN SONG SONG Introduction to Parallel Computing 1/1/2015 Tính tốn song song Tính tốn song song gì? (1) q Thơng thường, phần mềm viết cho tính tốn (serial computation): q Được chạy máy tính đơn với xử lý trung tâm (CPU) q Mộ toán (problem) chia thành chuỗi câu lệnh rời rạc q Các câu lệnh thực cách q Tại thời điểm thực câu lệnh 1/1/2015 Tính tốn song song 5/11/16 Tính tốn song song gì? (2) q Ý nghĩa đơn giản tính tốn song song việc sử dụng đồng thời nhiều tài nguyên máy tính để giải tốn tính tốn q Để chạy nhiều CPU q Một toán chia thành phần riêng biệt mà giải đồng thời q Mỗi phần chia nhỏ dãy câu lệnh q Các câu lệnh phần thực thi đồng thời CPU khác 1/1/2015 Tính tốn song song Tính tốn song song: tài ngun q Các nguồn tài ngun tính tốn bao gồm: q Một máy tính đơn với nhiều vi xử lý (CPU); q Một máy tính đơn với nhiều CPU số tài nguyên chuyên dụng GPU, FPGA …; q Một số lượng tuỳ ý máy tính kết nối mạng máy tính; q Hoặc kết hợp hai loại 1/1/2015 Tính tốn song song 5/11/16 Tính tốn song song: vấn đề tính tốn q Vấn đề tính tốn thường thể qua đặc điểm khả năng: q Chia thành phần riêng biệt công việc để giải lúc; q Thực thi nhiều câu lệnh chương trình nhiều thời điểm; q Giải tốn thời gian với nhiều tài ngun tính tốn thực thi tài ngun tính tốn 1/1/2015 Tính tốn song song Tính tốn song song: để làm gì? (1) q Tính tốn song song tiến hố tính tốn để cố gắng mơ trạng thái diễn giới tự nhiên: phức tạp, kiện liên quan xảy thời điểm, chuỗi q Ví dụ: q Quỹ đạo hành tinh thiên hà q Các mơ hình thời tiết đại dương q Kiến tạo địa chất q Giờ cao điểm Hà Nội q Dây truyền lắp ghép ô tô q Các hoạt động hàng ngày doanh nghiệp q Xây dựng trung tâm mua sắm q … 1/1/2015 Tính tốn song song 5/11/16 Tính tốn song song: để làm gì? (2) q Tính tốn song song coi “tính tốn hiệu cao” động lực để mô cho hệ thống phức tạp giải “các lớn” như: q Dự báo thời tiết khí hậu q Các phản ứng hoá học hạt nhân q Các toán sinh học gen người q Các hoạt động địa chất q Các thiết bị khí – chân tay giả cho tàu vũ trụ q Các mạch điện tử q Các quy trình sản xuất 1/1/2015 Tính tốn song song Tính tốn song song: để làm gì? (3) q Ngày ứng dụng thương mại động lực thúc đẩy nhà phát triển máy tính phần mềm tạo máy tính có tốc độ nhanh Vì ứng dụng yêu cầu xử lý số lượng lớn liệu có độ tinh vi phức tạp cao Ví dụ ứng dụng: q Các sở liệu song song, data mining q Thăm dò dầu khí q Các máy chủ tìm kiếm, dịch vụ thương mại q Máy tính trợ giúp chuẩn đốn y học q Quản lý tập đoàn quốc gia đa quốc gia q Cải tiến đồ hoạ ảo hoá q Video mạng công nghệ đa phương tiện q Môi trường làm việc cộng tác q Cuối cùng, giải pháp tính tốn song song nhằn cố gắng để tối đa hoá yêu vô hạn dường cần thêm thời gian 1/1/2015 Tính tốn song song 10 5/11/16 Tại phải tính tốn song song? (1) q Đây câu hỏi xác đáng! Tính tốn song song phức tạp theo nhiều khía cạnh! q Những lý cho việc sử dụng tính tốn song song: q Tiết kiệm thời gian q Giải toán lớn q Xử lý đồng thời lúc 1/1/2015 Tính tốn song song 11 Tại phải tính tốn song song? (2) q Các lý khác bao gồm: q Tận dụng nguồn tài nguyên khai thác tài ngun tính tốn có sẵn mạng diện rộng, chí sử dụng Internet tài nguyên cục hạn chế q Tiết kiệm chi phí – sử dụng nhiều tài ngun máy tính “rẻ” thay phải đầu tư siêu máy tính q Khắc phục hạn chế nhớ - Các máy tính đơn có tài nguyên nhớ hữu hạn Đối với toán lớn, sử dụng nhớ nhiều máy tính vượt qua trở ngại 1/1/2015 Tính tốn song song 12 5/11/16 Các giới hạn tính tốn q Các gới hạn để tính tốn - Cả hai lý giới hạn vật lý thực tiễn đặt hạn chế đáng kể để xây dựng ứng dụng chạy nhanh máy tính q Tốc độ truyền dẫn – Tốc độ máy tính phụ thuộc trực tiếp vào tốc độ di chuyển liệu phần cứng q Giới hạn tuyệt đối tốc độ ánh sáng (30 cm/ns) q Giới hạn truyền dây đồng (9 cm/ns) q Việc tăng tốc độ truyền cần tăng tốc độ xử lý phần tử? (1 ns (nanosecond) = 10-9 s) q Giới hạn để thu nhỏ - công nghệ vi xử lý ngày cho phép tăng số transitor đặt chip Tuy nhiên, trí transitor có kích thước phân tử mức ngun tử số lượng tích hợp thiết bị đạt tới giới hạn q Hạn chế kinh tế - Giá thành đắt tạo đơn vi xử lý (VXL) chạy nhanh Sẽ kinh tế sử dụng số lượng vi xử lý nhanh vừa phải đạt hiệu suất VXL đơn chạy nhanh (hoặc tốt hơn) 1/1/2015 Tính tốn song song 13 Tương lai q Trong suốt 10 năm qua, xu hướng mạng máy tính ngày nhanh hơn, có nhiều hệ thống phân tán, kiến trúc máy tính đa vi xử lý (bao gồm máy tính để bàn) cho thấy rõ ràng song song tương lai máy tính q Sẽ đa dạng, pha trộn giải pháp thông dụng giải pháp chuyên dụng IBM Cells, ClearSpeed, GPGPU từ NVidia … 1/1/2015 Tính tốn song song 14 5/11/16 Đối tượng sử dụng ? Source: Top500.org 1/1/2015 Tính toán song song 15 Trong khoa học kỹ thuật 1/1/2015 Tính tốn song song 16 5/11/16 Cơng nghiệp thương mại 1/1/2015 Tính tốn song song 17 CÁC KHÁI NIỆM VÀ THUẬT NGỮ Concepts and Terminology 1/1/2015 Tính toán song song 18 5/11/16 Kiến trúc Von Neumann q Trong 40 năm, hầu hết tất máy tính theo mơ hình máy tính phổ biến gọi máy tính Von Neumann Được đặt tên theo nhà toán học Hungary John von Neumann q Một máy tính Von Neumann sử dụng khái niệm chương trình lưu trữ CPU thực chương trình lưu trữ định chuỗi tác vụ đọc ghi nhớ 1/1/2015 Tính tốn song song 19 Thiết kế q Thiết kế q Bộ nhớ sử dụng để lưu trữ liệu (data) câu lệnh chương trình (instruction) q Các câu lệnh chương trình mã hố để “nói” cho máy tính làm cơng việc q Dữ liệu đơn giản thông tin sử dụng chương trình q Bộ xử lý trung tâm (CPU) nhận câu lệnh liệu từ nhớ, giải mã dẫn thưc thi chúng 1/1/2015 Tính tốn song song 20 10 5/11/16 u cầu tài ngun q Mục đích chương trình song song giảm thời gian thực thi, nhiên để thực điều này, yêu cầu nhiều thời gian CPU Ví dụ code song song chạy xử lý thực chất sử dụng thời gian CPU q Số lượng nhớ địi hỏi cho code song song lớn code tuần tự, cần tái tạo liệu cho chi phí kết hợp thư viện hỗ trợ song song hệ thống phụ trợ q Đối với chương trình song song nhỏ, mặt hiệu suất thực thi tương tự Chi phí liên quan đến việc thiết lập môi trường song song, khởi tạo tác vụ, truyền thông kết thúc tác vụ bao gồm phần đáng kể thời gian thực thi 1/1/2015 Tính tốn song song 125 Khả mở rộng q Khả mở rộng hiệu chương trình tính tốn song song phụ thuộc vào nhiều yếu tố liên quan đến Không đơn giản việc thêm nhiều máy tính cho kết tốt q Một thuật tốn có giới hạn vốn có để mở rộng Ở vài điểm, việc thêm tài nguyên gây hiệu suất giảm q Các yếu tố phần cứng đóng vai trị quan trọng khả mở rộng, ví dụ: q Băng thông bus nhớ CPU máy SMP q Băng thông mạng truyền thông q Số lượng nhớ có sẵn máy thiết lập máy q Tốc dộ xử lý đồng hồ q Các thư viện hỗ trợ song song phần mềm hệ thống phụ trợ giới hạn khả mở rộng độc lập ứng dụng 1/1/2015 Tính tốn song song 126 63 5/11/16 Nội dung q Song song hố tự động thủ cơng q Hiểu tốn chương trình q Phân rã (Partitioning) q Truyền thơng (Communicatiion) q Đồng (Synchronization) q Các phụ thuộc liệu (Data Dependencies) q Cân tải (Load Balancing) q Tính hạt (Granularity) q Đầu vào / Đầu q Các giới hạn chi phí lập trình song song q Phân tích hiệu suất hiệu chỉnh 1/1/2015 Tính tốn song song 127 q Gỡ rối, lần vết phân tích thực thi chương trình song song thách thức đáng kể so với chương trình q Hiện có sẵn số công cụ cho phép theo dõi thực thi phân tích q Hãy bắt đầu với tài liệu hướng dẫn cơng cụ phân tích hiệu năng: Performance Analysis Tools Tutorial q Cơng việc cịn phải tiếp tục, đặc biệt phần khả mở rộng hệ thống tính tốn song song 1/1/2015 Tính tốn song song 128 64 5/11/16 CÁC VÍ DỤ SONG SONG Parallel Examples 1/1/2015 Tính toán song song 129 Nội dung q Xử lý mảng q Tính tốn số PI q Phương trình nhiệt đơn giản (Simple Heat Equation) q Phương trình sóng 1-D (1-D Wave Equation) 1/1/2015 Tính tốn song song 130 65 5/11/16 Xử lý mảng q Ví dụ giới thiệu cách tính tốn phần tử mảng hai chiều (2-D) với việc tính tốn phần tử mảng độc lập với phần tử mảng khác q Chương trình tính phần tử theo cách q Đoạn code mơ tả sau: j = 1,n i = 1,n a(i,j) = fcn(i,j) end end q Tính tốn phần tử độc lập với phần tử khác – toán song song “đẹp” hay song song “hồn hảo” q Bài tốn cần nghiên cứu xâu 1/1/2015 Tính tốn song song 131 Xử lý mảng: giải pháp q Các phần tử mảng chia thành mảng cho xử lý riêng q Các tính tốn độc lập phần tử mảng nên không cần giao tiếp tác vụ q Phân chia mảng theo số số tiêu chí khác ví dụ theo bước nhảy số tác vụ Phân chia theo đơn vị bước nhảy tối ưu việc sử dụng cache/memory q Việc lựa chọn ngữ cảnh phân phối mảng phụ thuộc vào ngôn ngữ lập trình Xem thêm Block - Cyclic Distributions Diagram q Sau mảng bị chia, tác vụ thực phần vòng lặp tương ứng với liệu riêng Ví dụ khối liệu phân bố thực hiện: j = mystart, myend i = 1,n a(i,j) = fcn(i,j) end end q Chú ý biến lặp vòng lặp for ngồi khác với phần thuật tốn 1/1/2015 Tính tốn song song 132 66 5/11/16 Xử lý mảng: giải pháp Phương pháp triển khai khả thi q Thực thi theo mơ hình SPMD q Tiến trình chủ (Master) khởi tạo mảng, gửi liệu tới tiến trình (worker) nhận kết q Các tiến trình worker nhận thơng tin, thực thi liệu chia sẻ tính tốn gửi kết master q Thuật toán: màu đỏ phần thay đổi cho xử lý song song 1/1/2015 Tính tốn song song 133 Xử lý mảng: giải pháp Phương pháp triển khai khả thi 1/1/2015 Tính tốn song song 134 67 5/11/16 Xử lý mảng: giải pháp Pool of Tasks q Giải pháp xử lý mảng giải pháp cân tải tĩnh: q Mỗi tác vụ có số lượng công việc cố định phải làm q Thời gian nhàn rỗi đáng kể xử lý nhanh với xử lý chạy chậm đo ảnh hưởng tới hiệu suất tổng thể q Cân tải tĩnh thường không mối quan tâm lớn tác vụ thực thi số lượng công việc máy giống q Nếu bạn gặp vấn đề với cân tải (một vài công việc thực thi nhanh khác), có lợi bạn sử dụng chiến lược “pool of tasks” 1/1/2015 Tính tốn song song 135 Xử lý mảng: giải pháp Chiến lược Pool of Tasks q Hai xử lý thực thi q Tiến trình Master: q Giữ tác vụ cho tiến trình worker làm q Gửi worker tác vụ yêu cầu q Thu thập kết từ worker q Tiến trình Worker: lặp lại công việc sau q Nhận tác vụ từ tiến trình master q Thực tính tốn q Gửi kết tới master q Các tiến trình worker khơng biết trước thời gian chạy mà chúng xử lý có tác vụ chúng phải thực q Cân tải động xảy lúc chạy: tác vụ nhanh nhận thêm công việc để làm q Thuật giải: màu đỏ thay đổi cho phần xử lý song song 1/1/2015 Tính tốn song song 136 68 5/11/16 Xử lý mảng: Giải pháp cho chiến lược Pool of Tasks 1/1/2015 Tính tốn song song 137 Tính tốn số PI q Giá trị PI tính theo cách khác Hay xem xét phương pháp sau để tính xấp xỉ số PI: q Một vịng trịn nội tiếp hình vng q Phát sinh ngẫu nhiên điểm hình vng q Xác định số điểm rơi hình vng điểm rơi vào hình trịn q Đặt r số điểm hình trịn chia cho số điểm hình vuông q PI ~ 4*r q Chú ý phát sinh nhiều điểm, độ xác số PI cao 1/1/2015 Tính tốn song song 138 69 5/11/16 Thảo luận q Trong ví dụ “pool of tasks”, tác vụ tính tốn phần tử riêng lẻ mảng job Tỉ lệ tính tốn giao tiếp tác vụ coi tính hạt mịn (finely granular) q Các giải pháp tính hạt mịn phải chịu chi phí giao tiếp nhiều để giảm bớt thời gian nhàn rỗi tác vụ q Một giải pháp tối ưu phân phối nhiều cơng việc với job 1/1/2015 Tính tốn song song 139 Thuật toán npoints = 10000 circle_count = j = 1,npoints generate random numbers between and xcoordinate = random1 ; ycoordinate = random2 if (xcoordinate, ycoordinate) inside circle then circle_count = circle_count + end PI = 4.0*circle_count/npoints ! ! 1/1/2015 Chú ý: hầu hết thời gian chạy chương trình dành cho vòng lặp Dẫn đến giải pháp song song “đẹp”: - Khối lượng tính tốn lớn - Tổi thiểu giao tiếp - Tối thiểu I/O Tính tốn song song 140 70 5/11/16 Tính tốn số PI Giải pháp song song q Chiến thuật song song: ngắt vòng lặp thành phần mà thực thi tác vụ khác q Với tác vụ số PI xấp xỉ: q Mỗi tác vụ thực phần cơng việc lặp vịng số lần q Mỗi tác vụ làm phần việc mà khơng cần yêu cầu thông tin từ tác vụ khác q Sử dụng mơ hình SPMD Một tác vụ đóng vai trò master thu thập kết q Thuật giải: màu đỏ thay đổi cho xử lý song song 1/1/2015 Tính tốn song song 141 Tính tốn song song 142 Tính tốn số PI Giải pháp song song 1/1/2015 71 5/11/16 Phương trình nhiệt đơn giản Simple Heat Equation q Hầu hết tốn tính tốn song song địi hỏi giao tiếp tác vụ Một số toán phổ biến giao tiếp với tác vụ “hàng xóm” q Phương trình nhiệt mơ tả nhiệt độ thay đổi theo thời gian, khởi tạo phân bố nhiệt độ điều kiện biên q Một lược đồ hữu hạn phân biệt sử dụng để giải phương trình nhiệt số vùng ô vuông q Khởi tạo nhiệt độ đường biên cao q Nhiệt độ đường biên giữ q Bài tốn hồn tồn rõ ràng, bước thuật tốn sử dụng, phần tử mảng chiều đại diện cho nhiệt độ điểm hình vng 1/1/2015 Tính tốn song song 143 Phương trình nhiệt đơn giản q Việc tính tốn phân tử phụ thuộc vào giá trị phần từ hàng xóm q Code chương trình có thể: 1/1/2015 Tính toán song song 144 72 5/11/16 Giải pháp q Thực theo mơ hình SPMD q Tồn mảng phân chia phân phối mảng tới tất tác vụ.Mỗi tác vụ sở hữu riêng phần mảng toàn cục q Xác định phụ thuộc liệu q Các phần tử nội thuộc tác vụ độc lập với tác vụ khác q Các phần tử biên phụ thuộc vào liệu tác vụ hàng xóm, địi hỏi phải giao tiếp q Tiến trình Master gửi thơng tin khởi tạo cho worker, kiểm tra độ hội tụ thu thập liệu q Các tiến trình worker tính tốn giải pháp, giao tiếp với tiến trình hàng xóm cần thiết q Thuật giải: màu đỏ thay đổi cho xử lý song song 1/1/2015 Tính tốn song song 145 Parallel Solution 1/1/2015 Tính tốn song song 146 73 5/11/16 Giải pháp Truyền thông giao tiếp chồng lấn q Trong giải pháp trước, giả định truyền thông chặn (blocking) q q q q sử dụng tác vụ worker Truyền thơng chặn đợi xử lý truyền thơng hồn thành trước tiếp tục thị lệnh Trong giải pháp trước, tác vụ hàng xóm giao tiếp với liệu biên, tiến trình cập nhật phần mảng Số lần tính tốn thường giảm cách sử dụng truyền thông không chặn (non-blocking) Truyền thông không chặn cho phép công việc thực thi giao tiếp thực thi Mỗi tác vụ cập nhật liệu bên mảng giao tiếp liệu biên xảy ra, cập nhật đường biên sau giao tiếp kết thúc Thuật giải: màu đỏ thay đổi cho truyền thông không chặn 1/1/2015 Tính tốn song song 147 Giải pháp Truyền thơng giao tiếp chồng lấn 1/1/2015 Tính tốn song song 148 74 5/11/16 Phương trình sóng 1-D 1-D Wave Equation q Trong ví dụ này, biên độ đồng nhất, chuỗi đồ thị tính sau khoảng thời gian xác định q Việc tính tốn liên quan tới: q Biên độ trục y q i số vị trí theo truc x q Các điểm nút đặt dọc theo đồ thị q Cập nhật biên độ theo thời gian không liên tục 1/1/2015 Tính tốn song song 149 Phương trình sóng 1-D q Biểu thức giải tốn phương trình sóng 1-D, c số: q Chú ý: biên độ phụ thuộc vào bước thời gian trước (t, t-1) điểm hàng xóm (i-1, i+1) Sự phụ thuộc liệu địi hỏi giải pháp song song liên quan đến giao tiếp tác vụ 1/1/2015 Tính tốn song song 150 75 5/11/16 Phương trình sóng 1-D Giải pháp q Thực thi theo mơ hình SPMD q Tồn mảng biên độ phân chia phân bố mảng tới tác vụ Mỗi tác vụ sở hữu riêng phần mảng toàn cục q Cân tải: Tất điểm yêu cầu số lượng công việc nhau, số điểm nên chia q Việc phân giã khối cần phải phân chia công việc thành tác vụ chia khúc, cho phép tác vụ sở hữu hầu hết điểm liệu liền kề q Các giao tiếp cần xảy liệu biên Kích thước khối lớn giao tiếp 1/1/2015 Tính toán song song 151 Giải pháp phương trình sóng 1-D 1/1/2015 Tính tốn song song 152 76 5/11/16 Tài liệu tham khảo q Seyed H Roosta (2000) Parallel Processing and Parallel Algorithms Theory and Computation q Introduction to Parallel Computing, https://computing.llnl.gov/tutorials/parallel_comp/ q Message Passing Interface (MPI), https://computing.llnl.gov/tutorials/mpi/ q POSIX Threads Programming, https://computing.llnl.gov/tutorials/pthreads/ q Các nội dung khác https://computing.llnl.gov/?set=training&page=index 1/1/2015 Tính tốn song song 153 77 ... điểm; q Giải toán thời gian với nhiều tài nguyên tính toán thực thi tài ngun tính tốn 1/1/2015 Tính tốn song song Tính tốn song song: để làm gì? (1) q Tính tốn song song tiến hố tính tốn để cố... ứng dụng song song tăng lên 1/1/2015 Tính toán song song 30 15 5/11/16 Một số thuật ngữ song song q Tính hạt (Granularity) q Trong tính tốn song song, tính hạt thước đo chất lượng tỷ lệ tính tốn... gian tính tốn song song q Đây số đơn giản sử dụng rộng rãi sử dụng để đo hiệu chương trình song song 1/1/2015 Tính toán song song 31 Một số thuật ngữ song song q Chi phí cho tính tốn song song