Mega Mflop/s = 10P6P flop/s Giga Gflop/s = 10P9Tera Tflop/s = 10P12Giá cost của một quá trình tính toán trên hệ thống song song được tính như sau : Giá = độ phức tạp tính tốn × số lượng
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỖ TRUNG KIÊN THUẬT TOÁN SONG SONG CHO MỘT SỐ BÀI TOÁN TRÊN ĐỒ THỊ LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN Hà Nội, 2006 Tai ngay!!! Ban co the xoa dong chu nay!!! 17061131504501000000 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỖ TRUNG KIÊN THUẬT TOÁN SONG SONG CHO MỘT SỐ BÀI TOÁN TRÊN ĐỒ THỊ LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN Hà Nội, 2006 Chương I : Đại cương tính tốn song song Chương : ĐẠI CƯƠNG VỀ TÍNH TỐN SONG SONG 1.1 Một số khái niệm thuật ngữ Tính tốn song song hay xử lý song song : trình xử lý thơng tin nhấn mạnh việc nhiều đơn vị liệu xử lý đồng thời hay nhiều xử lý để giải tốn Siêu máy tính : máy tính đa thơng thường có tốc độ tính tốn vô lớn Chúng chia làm hai loại - Máy tính song song dựa vi xử lý : thiết kế với nhiều xử lý có tốc độ vừa phải - Siêu máy tính truyền thống (supercomputer) : xử lý tốc độ xử lý lại cực cao Song song liệu (data parallelism) : Là chế sử dụng nhiều đơn vị xử lý thực thao tác nhiều đơn vị liệu Song song điều khiển (control parallelism) : chế nhiều thao tác khác tác động lên nhiều đơn vị liệu khác cách đồng thời Dây chuyền (pipeline) : chế chia công việc thành nhiều chặng nối tiếp, chặng thực phận khác Đầu phận đầu vào phận Tăng tốc : tăng tốc thuật toán song song tỉ số thời gian thực tình xấu thuật toán tốt thời gian thực cơng việc thuật toán song song Liên quan đến tốc độ, năm 1967 Amdahl nêu định lý sau : ĐỖ TRUNG KIÊN Chương I : Đại cương tính tốn song song Định lý Amdahl : Gọi f tỷ lệ thao tác tổng số thao tác phải làm, ≤ f ≤ S tốc độ tối đa máy tính song song với p xử lý ta có S≤ f + (1 − f ) p Hiệu (Efficient) thuật toán song song tính Tốc độ / số xử lý tham gia tính tốn Flop : Một đơn vị đo tốc độ máy tính song song Flop viết tắt floating point operating per second : số phép tính tốn hạng số thực dấu phẩy động thực giây Mega Mflop/s = 106 flop/s Giga Gflop/s = 109 Tera Tflop/s = 1012 P P P P Giá (cost) q trình tính tốn hệ thống song song tính sau : Giá = độ phức tạp tính tốn × số lượng xử lý tham gia tính tốn Trong độ phức tạp tính tốn hay thời gian tính số bước thực thao tác (với giả thiết thực thao tác tốn đơn vị thời gian) 1.2 Các mức độ song song Giả sử có 10 cơng việc đơi khác ta giao cho 10 máy làm, ta có mức song song cao nhất, gọi mức chương trình song song Mỗi cơng việc ta lại chia thành cơng đoạn (Task) thực song song, ta gọi mức độ song song mức song song chương trình Mỗi chương trình chương trình lại có hàng loạt câu lệnh, ta có mức độ song song câu lệnh, câu lệnh lại có hành loạt thao tác (operation) => mức độ song song thao tác ĐỖ TRUNG KIÊN Chương I : Đại cương tính tốn song song 1.3 Phân loại kiến trúc song song Một phân loại hay nhắc tới Flynn – 1972 Michael Flynn phân kiến trúc máy tính thành bốn loại dựa tương tác lệnh liệu : - SISD(single instruction stream, single data stream) : Đây kiến trúc Von Neuman, thời điểm lệnh thực - MISD (multiple instruction stream, single data stream) : Kiến trúc cho phép vài lệnh thao tác liệu - SIMD (single instruction stream, multiple data stream) : Cho phép lệnh thực đồng thời liệu khác ĐỖ TRUNG KIÊN Chương I : Đại cương tính tốn song song - MIMD (multiple instruction stream, multiple data stream) : Cho phép nhiều lệnh khác đồng thời xử lý nhiều liệu khác thời điểm 1.4 Mơ hình SIMD Mơ hình kiến trúc cịn gọi PRAM (Parallel Random Access Machine – Máy tính song song truy cập ngẫu nhiên) Trong mơ hình này, N xử lý chia xẻ nhớ chung Mơ hình PRAM chia thành lớp nhỏ : - EREW (Exclusive Read, Exclusive Write) : Độc quyền đọc, độc quyền ghi Không cho phép hai xử lý đọc ghi đồng thời ô nhớ - CREW (Concurent Read Exclusive Write) : Đọc đồng thời, ghi độc quyền Các xử lý đọc đồng thời, khơng phép ghi đồng thời ô nhớ - ERCW (Exclusive Read Concurent Write) : Ghi đồng thời, đọc độc quyền Các xử lý ghi đồng thời, không phép đọc đồng thời ô nhớ - CRCW (Concurent Read Concurent Write) : đọc/ghi đồng thời Các xử lý đồng thời đọc ghi ô nhớ Việc cho phép nhiều xử lý đọc nhớ khơng khó Nhưng thiết kế cấu trúc ghi đồng thời phức tạp Vấn đề chỗ giá trị ghi vào khác cuối nhớ lưu giá trị ? Có ba cách giải : - ECR (Equallity Conflict Resolution) : Chỉ thực ghi tất xử lý ghi giá trị - PCR (priority Conflict Resolution) : Mỗi xử lý có số ưu tiên, giá trị xử lý có số thứ tự ưu tiên cao ghi - ACR (arbitrary Conflict Resolution) : Trong cách giải sức mạnh máy tính tăng dần theo thứ tự Mặc dù yếu nhất, công nghệ chế tạo phổ biến lại máy EREW, cịn máy CRCW, CREW đắt khó chế tạo Do ta phải nghĩ tới việc dùng EREW để mơ kiến trúc cịn lại trình bày ĐỖ TRUNG KIÊN Chương I : Đại cương tính tốn song song 1.5 Dùng công nghệ EREW mô kiến trúc CRCW, CREW 1.5.1 Mơ đồng thời đọc Tính đọc đồng thời mô EREW cách sử dụng thao tác quảng bá giá trị cần đọc cho xử lý Gọi xử lý P0 , P1 , , P n Thao tác quảng bá giá trị x cho xử lý thực sau : R R R R R R - P0 đọc x báo cho P - P0 P báo cho P P - P0 , P , P2 , P báo cho P 4, P 5, P , P7 - R R R R R R R R R R R R R R R R R R R R R R R R R Thao tác đòi hỏi thời gian thực O(logn) 1.5.2 Mô ghi đồng thời Giả sử qui định xử lý phép ghi giá trị cần ghi trùng Như thao tác ghi đồng thời tiến hành máy mô sau : Kiểm tra xem n giá trị cần ghi có trùng khơng Nếu trùng tiến hành thao tác ghi Nếu khơng dừng Thao tác tốn thời gian cỡ số Thao tác kiểm tra thứ diễn sau, với a i giá trị thứ i R For R i ← to n/2 If = a i+n/2 R R R Else For then R R R bi := False R R i ← to n/4 If (ai = a i+n/4 R Else bi := True R R R ) then b i := True R R bi := False R R … Sau logn bước, trình kiểm tra kết thúc Như bước kiểm tra đòi hỏi thời gian cỡ logn giá phải trả cho việc mơ ĐỖ TRUNG KIÊN Chương I : Đại cương tính tốn song song 1.6 Họ máy MIMD Trong mục xem xét họ máy SIMD, hay gọi PRAM Sau xem xét kiến trúc song song khác – lớp máy MIMD Lớp phân làm loại : - Hệ đa xử lý với nhớ phân tán - Hệ đa xử lý dùng chung nhớ - Hệ đa xử lý với nhớ dùng chung phân tán 1.6.1 Hệ đa xử lý với nhớ phân tán (Multi processor system with distributed memory) - Đây hệ song song gồm nhiều máy tính kết nối thành mạng (multicomputer system) - Các xử lý quyền truy nhập vùng nhớ cục - Liên kết xử lý thực theo mơ hình chuyển thơng báo (message passing) - Hệ thống có quy mơ lớn, lên tới hàng chục ngàn xử lý Khi số xử lý lớn làm cho đường truyền mạng trở nên tải - Kỹ thuật lập trình phức tạp, tương ứng với mơi trường lập trình chuyển thơng báo PVM, MPI - Cịn gọi tên khác hệ NORMA (no remote memory access model : mơ hình khơng cho phép truy cập vùng nhớ xa) Ta thấy xử lý có vùng nhớ cục riêng (local memory) quyền ĐỖ TRUNG KIÊN Chương I : Đại cương tính tốn song song truy nhập vào đó, vùng nhớ xa (remote memory) xử lý khác mà chúng không quyền truy nhập vào 1.6.2 Hệ đa xử lý dùng chung nhớ (Multi processor system with shared memory) - Đây máy tính lớn với nhiều xử lý (multi processor) hoạt động theo chế đa xử lý đối xứng SMP (Symmetric multi processing) - Các xử lý truy cập tồn vùng nhớ dùng chung - Liên lạc xử lý thực thông qua vùng nhớ dùng chung Giả sử xử lý P1 muốn gửi liệu cho P , liệu ghi vào vùng R R R R nhớ dùng chung báo địa cho P2 P2 đọc địa lấy liệu R R R R - Qui mô hệ thống tương đối nhỏ, cỡ vài trăm xử lý - Kỹ thuật lập trình dễ dàng so với mơ hình - Còn gọi tên khác UMA (uniform memory access model : quản lý đánh địa toàn vùng nhớ dùng chung theo dạng địa thống nhất) Ta thấy hệ NUMA quản lý toàn vùng nhớ dùng chung không dùng mà dùng nhiều dạng địa 1.6.3 Hệ đa xử lý với nhớ dùng chung phân tán (Multi processor system with distributed shared memory) ĐỖ TRUNG KIÊN Chương I : Đại cương tính tốn song song - Về mặt vật lý, xử lý có vùng nhớ cục - Sự truy nhập tới vùng nhớ khác thực nhờ chế truy nhập mạng Nhờ tất vùng nhớ cục gom lại đánh địa vùng nhớ logic Các xử lý truy nhập địa vùng nhớ chung - Cịn gọi tên khác hệ NUMA (non uniform memory access model - quản lý đánh địa vùng nhớ dùng chung theo nhiều dạng địa chỉ) Ta thấy xử lý, vùng nhớ cục (local memory) mình, cịn truy cập vùng nhớ xa (remote memory : vùng nhớ cục xử lý khác) Hai vùng nhớ quản lý theo hai chế độ địa khác 1.7 Mạng liên kết Như thấy mơ hình trên, xử lý liên kết với thông qua môi trường mạng liên kết (interconnection network) Ở không sâu vào phân tích mà liệt kê số kiểu mạng liên kết : - Mạng liên kết đầy đủ : Mỗi cặp xử lý kết nối với đường truyền Vùng nhớ chung chia cho xử lý - Mạng liên kết tuyến tính : Là mơ hình đơn giản nhất, xử lý Pi có hai láng giềng Pi-1 P i+1 , xử lý đầu cuối có láng giềng Một đường truyền chạy xuyên suốt qua xử lý R R R R R R ĐỖ TRUNG KIÊN