Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
819,36 KB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG TÍNH TỐN SONGSONG (Dùng cho sinh viên hệ đào tạo đại học từ xa) Lưu hành nội HÀ NỘI - 2007 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG TÍNHTOÁNSONGSONG Biên soạn : THS PHẠM VĂN CƯỜNG Bài giàng TÍNH TỐN SONGSONG Biên soạn: Phạm Văn Cường Khoa CNTT1- Học viện Công nghệ BCVT Email: pcuongcntt@yahoo.com Mục lục CHƯƠNG : CÁC KIẾN TRÚC SONGSONG .5 1.1 Tổng quan tính tốn songsong 1.1.1 Nhu cầu tính tốn 1.1.2 Lịch sử phát triển 1.1.3 Các thuật ngữ 1.1.4 Các xu xây dựng máy tính 1.2 Các kiến trúc songsong .10 1.2.1 Máy tính dòng lệnh, dòng liệu (SISD) 11 1.2.2 Bộ nhớ chia xẻ (shared memory) nhớ phân tán (distributed memory) 13 1.2.3 Máy tính dòng lệnh, nhiểu dòng liệu (SIMD) 14 1.2.4 Máy tính nhiều dòng lệnh, dòng liệu (MISD) 17 1.2.5 Máy tính nhiều dòng lệnh, nhiểu dòng liệu (MIMD) 19 1.2.6 Hiệu suất Máy tínhsongsong 20 1.3 Tổ chức vi xử lý 21 1.3.1 Mạng hình lưới (Mesh) .21 1.3.2 Mạng hình nhị phân (Binary Tree Networks) 22 1.3.3 Mạng hình siêu (Hypertree networks) 22 1.3.4 Mạng hình tháp (Pyramid networks) 23 1.3.5 Mạng hình bướm (Butterfly networks) .24 1.3.6 Mạng hình siêu khối (Hypercube networks) 25 1.3.7 Mạng chu trình hướng kết nối khối (Cube-Connected Cycles networks) .26 1.3.8 Mạng hoán vị di chuyển (Shuffle-exchange networks) .27 1.3.9 Mạng de Bruijn 29 1.3.10 Tổng kết tổ chức vi xử lý 29 1.4 Các hệ thống mảng xử lý, đa xử lý, đa máy tính 30 1.4.1 Hệ thống mảng vi xử lý (processor arrays) 30 1.4.2 Máy tính đa xử lý (Multiprocessors) .35 1.4.3 Hệ thống đa máy tính (Multicomputers) 39 1.5 Kết chương 41 1.6 Câu hỏi tập 42 1.6.1 Câu hỏi 42 1.6.2 Bài tập 44 CHƯƠNG : CÁC THUẬT TOÁNSONGSONG 45 2.1 Mơ hình PRAM 45 2.1.1 Mơ hình xử lý 46 2.1.2 Mơ hình tính tốn songsong PRAM 46 2.1.3 Một số thuật toán PRAM 48 2.2 Các thuật toánsongsong nhân hai ma trận 56 2.2.1 Thuật toán nhân ma trận 57 2.2.2 Thuật toán nhân ma trận máy SIMD với xử lý tổ chức theo mạng hình lưới hai chiều (2-D Mesh SIMD) .57 2.2.3 Thuật toán nhân ma trận máy SIMD với xử lý tổ chức theo mạng hình siêu khối (Hypercube SIMD) 61 2.2.4 Thuật toán nhân ma trận máy đa xử lý 64 2.3 Các thuật toán xếp songsong 67 2.3.1 Sắp xếp liệt kê (enumeration sort) cận (lower bounds) xếp songsong 67 2.3.2 Sắp xếp songsong đổi chỗ chẵn lẻ (odd-even transposition) .69 2.3.3 Sắp xếp songsong trộn bitonic (bitonic merge) 71 2.3.4 Sắp xếp songsong tựa Quicksort 83 2.4 Thuật tốn tìm kiếm songsong danh bạ 88 Độ phức tạp tìm kiếm songsong 88 2.4.1 2.4.2 Tìm kiếm songsong máy tính đa xử lý 89 2.5 Thuật toánsongsong đồ thị .97 2.5.1 Thuật toánsongsong tìm đường ngắn .97 2.5.2 Thuật tốn songsong tìm khung bé .102 2.7 Kết chương 107 2.8 Câu hỏi tập .108 2.8.1 Câu hỏi 108 2.8.2 Bài tập .109 Lới nói đầu (chưa viết) Chương 2: Các vấn đề hệ thống tính tốn songsong 2.1 Hiệu suất hệ thống xử lý songsong 2.2 Tốc độ (speedup) hiệu (efficiency) xử lý songsong 2.3 LT8/BT2 2.2.1 Tốc độ (speedup) xử lý songsong 2.2.2 Hiệu (efficiency) xử lý songsong 2.2.3 Định luật Amdhal Gustafson-Barsis tốc độ hiệu xử lý songsong Ánh xạ liệu máy tínhsongsong 2.3.1 Ánh xạ liệu lên mảng vi xử lý (processor arrays) 2.3.2 Ánh xạ liệu lên hệ thống nhiều máy tính (multicomputers) 2.4 Vấn đề cân tải động hệ thống nhiều máy tính (multicomputers) 2.5 Vấn đề lập lịch biểu hệ thống nhiều máy tính (multicomputers) 2.6 2.5.1 Giải thuật Graham ‘s List Scheduling 2.5.2 Giải thuật Coffman-Graham Scheduling 2.5.3 Các mơ hình đơn định không đơn định Vấn đề deadlocks Chương 3: Lập trình songsong LT9/TH4/KT1 3.1 Cơ giao tiếp phương pháp trao đổi thông điệp (message passing) 3.1.1 Trao đổi thơng điệp mơ hình lập trình 3.1.2 Cơ chế trao đổi thơng điệp 3.1.3 Tiếp cận đến ngơn ngữ cho lập trình songsong 3.2 Thư viện giao diện trao đổi thông điệp (Message Passing Interface – MPI) 3.2.1 Giới thiệu MPI 3.2.2 Lập trình songsong ngơn ngữ C thư viện MPI 3.2.3 Một số kỹ thuật truyền thông: broadcast, scatter, gather, blocking message passing 3.3 Máy ảo songsong (Parallel Virtual Machine-PVM) 4.4 Thiết kế xây dựng chương trình (giải tốn (NP-complete) sử dụng MPI C Thực hành: Xây dựng chạy chương trình sử dụng C MPI CHƯƠNG : CÁC KIẾN TRÚC SONGSONG Nội dung chương trình bày vấn đề sau: - Tổng quan tính tốn song song: phần trình bày nhu cầu tínhtoán lĩnh vực: thương mại, khoa học…; lịch sử phát triển máy tínhsong song, xu thiết kế máy tính - Các kiến trúc song song: phần trình bày loại kiến trúc máy tính phân loại theo thuật ngữ Flynn; máy tính dòng lệnh, dòng liệu (SISD), máy tính dòng lệnh, nhiều dòng liệu (SIMD), máy tính nhiều dòng lệnh, dòng liệu (MISD) máy tính nhiều dòng lệnh, nhiều dòng liệu (MIMD) - Tổ chức vi xử lý máy tínhsongsong theo cách khác nhau, bao gồm: tổ chức vi xử lý theo hình mạng lưới, theo hình cây, theo hình siêu cây, hình tháp, hình siêu khối, chu trình hướng khối, hốn vị- đổi chỗ, de Bruijn Mỗi cách thức tổ chức đánh giá ưu điểm, nhược điểm qua tiêu chí: đường kích, độ rộng phân đơi số nút/cạnh - Một số máy tínhsongsong thực tế: máy tính mảng vi xử lý, máy tính đa xử lý hệ thống đa máy tính - Phần cuối câu hỏi tập dành cho sinh viên 1.1 Tổng quan tính tốn songsong 1.1.1 Nhu cầu tính tốn Khoa học kinh điển dựa vào quan sát, phát triển thành lý thuyết tiến hành thực nghiệm Sự quan sát tượng tượng dẫn đến giả thuyết Nhà khoa học phát triển lý thuyết để giải thích tượng thiết kế thực nghiệm để chứng minh (hoặc bác bỏ) lý thuyết Các kết từ thực nghiệm giúp nhà khoa học hoàn chỉnh lý thuyết Một điều khơng may khơng phải lúc ta sử dụng thực nghiệm để kiểm chứng lý thuyết, việc tiến hành thục nghiệm tốn nhiều thời gian tiền Các máy tính tốc độ cao cho phép nhà khoa học kiểm chứng giả thuyết họ theo phương pháp mô tượng (numerical simulation) Nhà khoa học so sánh kết chương trình mơ lý thuyết quan sát tượng “thế giới thực” chương trình mô Các nhà khoa học hiệu chỉnh lý thuyết tiêp tục quan sát có khác biệt Chính vậy, khoa học đại mơ tả quan sát, lý thuyết, thực nghiệm mơ Trong đó, mơ ngày đóng vai trò quan trọng nhà khoa học Nhiều tốn khoa học phức tạp mơ yêu cầu độ phức tạp hàm số mũ A a.Nhu cầu tính tốn cho ứng dụng khoa học Các ứng dụng ngày có nhu cầu tiêu tốn tài nguyên phần cứng Hình 1.1 Các ứng dụng ngày u cầu số lượng tính tốn lớn Điển hình loại ứng dụng : - Mơ phỏng, mơ hình hóa tốn sau đây; tốn thách thức lớn (grand challenges) khoa học, là: Hóa học lượng tử (quantium), phương pháp thống kê, vật lý tương đối Vũ trụ (cosmology) vật lý thiên văn (astrophysics) Động lực học (fluid dynamics) Thiết kế vật liệu siêu dẫn Sinh học, dược học, so sánh DNA, công nghệ gen & protein… Y học mơ hình hóa hoạt động hệ xương quan nội tạng Mơ hình hóa khí hậu biến đổi mơi trường Hình 1.2 Yêu cầu phần cứng tốn khoa học Một ví dụ thực tế mơ hình hóa tốn tính lưu lượng dòng chảy đại dương [được thực nhà khoa học từ đại học bang Oregon, Hoa kỳ] Để đạt kết xác, nhà khoa học chia đại dương thành 4096 vùng từ đông sang tây 1024 vùng từ bắc đến nam Đồng thời, đại dương chia thành 12 lớp; với mơ hình đại dương có khoảng 50 triệu khối chiều Để mô cho khối chiều với chu kỳ 10 phút cần khoảng 30 tỉ phép tính Trong nhà nghiên cứu mơ chu kỳ đại dương vòng hàng trăm năm b.Nhu cầu tính tốn cho ứng dụng dịch vụ thương mại Các ứng dụng dịch vụ thương mai ngày đa dạng, điển hình là: - Các ứng dụng đa phương tiện như: video servers, multimedia databases, video on demand… - Các ứng dụng data mining phân tích, xử lý liệu trực tuyến (OLAP) - Các ứng dụng máy chủ thời gian thực, xử lý đồ họa… Đó dịch vụ u cầu khối lượng tính tốn lớn: Hình 1.3 Nhu cầu tính tốn cho ứng dụng thương mại 1.1.2 Lịch sử phát triển Phải 20 năm để máy tínhsongsong từ phòng thí nghiệm thị trường Daniel Slotnick đại học Illinois thiết kế hai máy tínhsongsong sơm là: Solomon xây dựng cơng ty Điện tử Westinghouse vào năm 1960 ILLIAC IV lắp ráp công ty Burroughs vào năm 1970 Sau đó, suốt thập kỷ 70s, trường Đại học Carnegie Mellon xây dựng hai máy tínhsongsong C.mmp CM* Vào năm 1980, nhà khoa họcHọc viện kỹ thuật CalTech xây dựng máy tính Cosmic Cube, tiền thân đa máy tính ngày thực bới công ty Ametek, Intel nCUBE Cho đến thập kỷ 80, máy tínhsongsong với nhiều vi xử lý đưa thị trường Một nghiên cứu hiệu suất máy tính loại máy tính khác lý máy tínhsongsong dựa đa xử lý trở thành thực 1000 100 10 1965 1970 1975 1980 1985 1990 Supercomputers Mainframes Minicomputers Microprocessors Hình 1.4 : Hiệu suất loại máy tínhsongsong thơng dụng Trong hình 1.4, tỉ lệ gia tăng hiệu suất loại máy tính minicomputers, mainframes supercomputers hàng năm 20% Trong đó, tỉ lệ gia tăng hiệu suất xử lý (microprocessors) trung bình khoảng 35% năm Tại hiệu suất máy tính nhiều vi xử lý tăng nhanh loại máy tínhsongsong khác? Hiệu suất vi xử lý đơn cải tiến thông qua cải tiến kiến trúc cải tiến cơng nghệ Sự cải tiến kiến trúc làm tăng khối lượng công việc trông chu kỳ lệnh Sự cải tiến cơng nghệ làm giảm thời gian thực chu kỳ lệnh Những năm 1970s, kiến trúc bản: nhớ có bit songsong (bit-parallel memory), tính tốn bit songsong (bit-parallel arithmetic), nhớ Cache, kênh truyền liệu, nhớ xen kẽ (interleave memory), tiền xử lý lệnh (instruction lookahead), xử lý xen kẽ (pipelining), đa chức trợ giúp xử lý xen kẽ dõng mã lệnh (pipelined functional unit)… tích hợp vào thiết kế siêu máy tính Tuy nhiên, cải tiến hiệu suất xử lý riêng lẻ (làm giảm thời gian thực chu kỳ lệnh) khó khăn điều bị giới hạn bới tốc xử lý vi mạch điện tử (bé tốc độ ánh sang) Ngược lại, máy tính nhiều vi xử lý đạt bước tiến cải tiến hiệu suất ấn tượng Mặc dù, ban đầu máy tính nhiều xử lý khơng kết hợp tất cải tiến kiến trúc siêu máy tính tốc độ đồng hồ chúng chậm Sự hội tụ (convergence) microcomputers siêu máy tính truyền thống kéo theo thương mại hóa máy tínhsongsong với hàng trăm xử lý Đỉnh điểm máy tínhsongsong dựa đa vi xử lý kể đến như: Intel ‘s Paragon XP/STM , MP-2TM, Thinking Machine -5TM vượt qua tốc độ siêu máy tính đơn xử lý như: Cray Y/ MPTM NEC SX -3TM 1.1.3 Các thuật ngữ Hầu hết máy tính hiệu suất cao đại hỗ trợ xử lý nhiều lệnh cách đồng thời (concurrency) Chẳng hạn, đa xử lý (multiprocessing) phương pháp sử dụng để đạt xử lý đồng thời nhiều lệnh mức công việc chương trình Trong đó, xử lý xen kẽ dòng lệnh (pipeline) phương pháp nhằm xử lý đồng thời lệnh mức lệnh (interinstruction) Tuy nhiên, gọi máy tính hỗ trợ xử lý lệnh đồng thời máy tínhsongsong Dưới thuật ngữ bản: Lập trình songsong (parallel programming) việc lập trình sử dụng ngơn ngữ có hỗ trợ xử lý songsong lệnh chương trình Máy tínhsongsong (Parallel conputer) máy tính có nhiều xử lý (multiple-processor computer) có khả phối hợp với để giải toán Xử lý songsong (parallel computing) trình sử dụng máy tínhsongsong để giải toán đơn (single problem) nhanh Siêu máy tính (supercomputer) máy tính đa có khả giải tốn đơn với tơc độ tính tốn cao (cỡ hàng nghìn tỉ phép tính giây) So với máy tính chế tạo thời siêu máy tính có tốc độ xử lý lớn hàng nghìn lần Các siêu máy tính đại máy tínhsongsong Một vài siêu máy tính có số lượng xử lý mạnh; đa số siêu máy tính có số lướng xử lý lớn Thông lượng (throughput) thiết bị lưu lượng liệu truyền tải qua thiết bị đơn vị thời gian Có nhiều cách để cải tiến thông lượng thiết bị như: tăng tốc độ, tăng số thao tác thời điểm… Songsong hóa liệu (data parallelism) việc sử dụng nhiều chức (functional units) để xử lý thao tác đồng thời cho phần tử tập liệu Tốc độ (speedup) tỉ số thời gian cần thiết xử lý thuật toán tốt thời gian cần thiết để xử lý pipeline songsong máy tính 1.1.4 Các xu xây dựng máy tính a Xu phát triển phần cứng: - Hiệu suất vi xử lý tăng 50 -100% năm - Cứ năm, số lượng transitors tăng gấp đôi vi mạch - Cứ năm kích thước nhớ RAM tăng lần Hình 1.5 Xu phát triển phần cứng b Xu hướng thiết kế kiến trúc máy tính: - Giảm thời gian thực chu kỳ lệnh máy; nhiên, xu hướng bị giới hạn công nghệ điện tử - Tăng số lệnh máy thực đồng thời (xử lý xen kẽ dòng lệnh, siêu vơ hướng ) - Tăng số bít truyền liệusongsong bít , bít, 16 bít, 32 bít, 64 bít 128 bít - Songsong mức luồng (multithread) - Nhiều xử lý tích hợp chip (dual core, quad Core …) 1.2 Các kiến trúc songsong Kiến trúc máy tínhsongsong chia làm hai loại (như hình đây): kiến trúc đồng bộ, bao gồm: máy tính véc tơ, máy tính SIMD máy tính Systolic kiến trúc khơng đồng bộ, bao gồm: máy tính MIMD, Reduction Trong kiến trúc songsong kiểu đồng vi xử lý thực đồng thời lệnh vi xử lý khác (với liệu khác nhau) kết thúc chu kỳ lệnh Ngược lại, kiến trúc songsong kiểu khơng đồng vi xử lý thực lệnh khác nhau, đoạn chương trình khác kết thúc việc xử lý lệnh thời điểm khác Hình 1.6 Hai loại kiến trúc song song: đồng không đồng 1.2.1 Máy tính dòng lệnh, dòng liệu (SISD) a Máy tính SISD Hình 1.7 Mơ hình máy tính SISD cổ điển Hình kiến trúc tổng quan máy tính SISD (Single Instruction stream Single Data stream) Nó bao gồm hai đầu vào: dòng lệnh dòng liệu; điều khiển chứa giải mã lệnh tạo xung điều khiển; xử lý lệnh liệu Các máy tính SISD máy tính xử lý Tại thời điểm, dòng lệnh dòng liệu xử lý Chính mà máy tính SISD gọi máy tính có von Neumann Mặc dù dòng lệnh (instruction stream) xử lý cách tuần tự, lệnh xử lý đồng thời theo có chế xen kẽ dòng mã lệnh (pipeline) Nhưng thời điểm, có lệnh giải mã (decode) đọc (fetch) Máy tính SISD có nhiều chức (multiple functional units) như: đồng xử lý toánhọc (mathematics co-processor), vector (vector units), xử lý đồ họa (graphics processors), xử lý vào/ra (I/O processors) Trong mơ hình kiến trúc máy tính SISD, tất chức điều khiển xử lý (single processing unit) đơn Một số biến thể máy tính SISD Systolic tăng lực xử lý nhờ vào tích hợp nhiều xử lý lệnh liệu hình đây: Hình 1.8 Mơ hình máy tính SISD với mảng xử lý Một số máy tính SISD đại Cray-1 hỗ trợ nhiều xử lý kiểu vector (như hình trên) Dòng liệu “lọc” qua mảng xử lý (processing units) để xử lý Do đó, người ta gọi máy tính SISD với mảng xử lý máy tính Systolic b Ví dụ thực tốn Banking máy tínhsongsong Systolic: Số vi xử lý = số máy ATM Số công việc = số khách hàng Có m khách hàng, thời gian phục vụ khách hàng ti Có n máy ATM, Với n=1: xử lý tuần tự; thời gian thực tổng thời gian phục vụ khách hàng: T= t1+ t2+ … tn Với m=n, trường hợp tốt nhất; thời gian thực T=max {t1, t2,…,tn} Với n100K then Salary=salary * 1.05 Else Salary=salary * 1.10 Tồn lương nhân viên tính bước Sẽ có số xử lý thực hiện, lại khơng kích hoạt (disabled) 1.2.4 Máy tính nhiều dòng lệnh, dòng liệu (MISD) MISD kiến trúc songsong mà thời điểm xử lý thực thao tác khác liệu Máy tính MISD có ý nghĩa mặt lý thuyết nhiều thực tế Trên thực tế, chưa có máy tính MISD thương mại hóa Máy tính MISD gọi máy tính với mảng Systolic (Systolic arrays machine), chúng đóng vai trò toán “làm mịn” liệu cách “bơm” (pump) liệu từ xử lý đến xử lý khác Mỗi vi xử lý thay đổi dữ liệu trước chuyển liệu sang xử lý khác Các thao tác thay đổi liệu vi xử lý khác Hình 1.15 Kiến trúc MISD IS : Instruction Stream – dòng lệnh DS: Data Stream – dòng liệu CU : Control Unit – Bộ điều khiển PU : Processing Unit – Bộ xử lý Hai ứng dụng thực tế mà máy tính MISD nhắm tới hệ thống hỗ trợ xử lý đa pipeline (hyper pipeline) hệ thống dung thứ lỗi (fault tolerance) Ví dụ minh họa: chương trình tìm max, medium số Hình 1.16 Một ví dụ thực máy tính MISD Với dòng liệu đầu vào gồm số a,b c Dòng liệu qua máy tính MISD máy tính MISD thực đồng thời thao tác: tìm giá trị lớn nhất, bé trung bình ba số ... song song danh bạ 88 Độ phức tạp tìm kiếm song song 88 2.4.1 2.4.2 Tìm kiếm song song máy tính đa xử lý 89 2.5 Thuật toán song song đồ thị .97 2.5.1 Thuật toán song. .. (efficiency) xử lý song song 2.2.3 Định luật Amdhal Gustafson-Barsis tốc độ hiệu xử lý song song Ánh xạ liệu máy tính song song 2.3.1 Ánh xạ liệu lên mảng vi xử lý (processor arrays) 2.3.2 Ánh xạ liệu lên... số máy tính song song thực tế: máy tính mảng vi xử lý, máy tính đa xử lý hệ thống đa máy tính - Phần cuối câu hỏi tập dành cho sinh viên 1.1 Tổng quan tính tốn song song 1.1.1 Nhu cầu tính tốn