TÍNH TOÁN SONG SONG PARALLEL COMPUTING

77 405 0
TÍNH TOÁN SONG SONG PARALLEL COMPUTING

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

5/11/16 TÍNH TOÁ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 toá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 toán song song, chủ đề kiến trúc song song hoá 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 hoá Phần cuối thuyết trình vào nghiên cứu cách song song hoá số toá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 toán song song 5/11/16 GIỚI THIỆU VỀ TÍNH TOÁN SONG SONG Introduction to Parallel Computing 1/1/2015 Tính toán song song Tính toán song song gì? (1) q  Thông thường, phần mềm viết cho tính toá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 toán song song 5/11/16 Tính toán song song gì? (2) q  Ý nghĩa đơn giản tính toán song song việc sử dụng đồng thời nhiều tài nguyên máy tính để giải toán tính toá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 toán song song Tính toán song song: tài nguyên q  Các nguồn tài nguyên tính toá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 toán song song 5/11/16 Tính toán song song: vấn đề tính toán q  Vấn đề tính toá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 toán thời gian với nhiều tài nguyên tính toán thực thi tài nguyên tính toán 1/1/2015 Tính toán song song Tính toán song song: để làm gì? (1) q  Tính toán song song tiến hoá tính toá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 toán song song 5/11/16 Tính toán song song: để làm gì? (2) q  Tính toán song song coi “tính toá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 toán song song Tính toá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 đoá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 toá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 toán song song 10 5/11/16 Tại phải tính toán song song? (1) q  Đây câu hỏi xác đáng! Tính toá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 toá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 toán song song 11 Tại phải tính toá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 nguyên tính toá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 nguyên 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 toán song song 12 5/11/16 Các giới hạn tính toán q  Các gới hạn để tính toá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 nguyên 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 toá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 toá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 toán song song 16 5/11/16 Công nghiệp thương mại 1/1/2015 Tính toá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 toá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ã hoá để “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 toán song song 20 10 5/11/16 Yêu cầu tài nguyên 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 toán song song 125 Khả mở rộng q  Khả mở rộng hiệu chương trình tính toá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 toá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 toán song song 126 63 5/11/16 Nội dung q  Song song hoá tự động thủ công q  Hiểu toá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 toá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 phải tiếp tục, đặc biệt phần khả mở rộng hệ thống tính toán song song 1/1/2015 Tính toá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 toá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 toán song song 130 65 5/11/16 Xử lý mảng q  Ví dụ giới thiệu cách tính toán phần tử mảng hai chiều (2-D) với việc tính toá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 toán phần tử độc lập với phần tử khác – toán song song “đẹp” hay song song “hoàn hảo” q  Bài toán cần nghiên cứu xâu 1/1/2015 Tính toá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 toá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 khác với phần thuật toán 1/1/2015 Tính toá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 toá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 toá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 toá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 toá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 toán q Gửi kết tới master q  Các tiến trình worker 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 toá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 toán song song 137 Tính toá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 vuông q Phát sinh ngẫu nhiên điểm hình vuông q Xác định số điểm rơi hình vuông đ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 toán song song 138 69 5/11/16 Thảo luận q  Trong ví dụ “pool of tasks”, tác vụ tính toán phần tử riêng lẻ mảng job Tỉ lệ tính toá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 toá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 toán lớn - Tổi thiểu giao tiếp - Tối thiểu I/O Tính toán song song 140 70 5/11/16 Tính toá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 toán song song 141 Tính toán song song 142 Tính toá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 toán tính toá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 toán hoàn toàn rõ ràng, bước thuật toán sử dụng, phần tử mảng chiều đại diện cho nhiệt độ điểm hình vuông 1/1/2015 Tính toán song song 143 Phương trình nhiệt đơn giản q  Việc tính toá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  Toà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 toá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 toán song song 145 Parallel Solution 1/1/2015 Tính toá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 hoà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 toá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 toán song song 147 Giải pháp Truyền thông giao tiếp chồng lấn 1/1/2015 Tính toá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 toá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 toán song song 149 Phương trình sóng 1-D q  Biểu thức giải toá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 toá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  Toà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 toá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 toán song song 153 77

Ngày đăng: 05/11/2016, 14:07

Tài liệu cùng người dùng

Tài liệu liên quan