1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tính toán song song (Các vấn đề hiện đại của kỹ thuật máy tính)

27 13 1

Đ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

Thông tin cơ bản

Tiêu đề Tính Toán Song Song
Tác giả Hoàng Trung Kiên
Người hướng dẫn TS. Hoàng Gia Hưng, TS. Phạm Hùng Mạnh, ThS. Trần Hiếu
Trường học Đại học Quốc gia Hà Nội
Chuyên ngành Kỹ thuật Máy Tính
Thể loại báo cáo tiểu luận
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 27
Dung lượng 1,94 MB

Nội dung

PHẦN MỞ ĐẦU .....................................................................................................................................................5 I.Tổng quan về Parallel Computing (Tính toán song song) ................................................................................6 1. Parallel Computing (Tính toán song song) là gì? ........................................................................................6 2. Tại sao lại sử dụng parallel computing? .......................................................................................................7 II. Các ý tưởng về Parallel computing. .................................................................................................................8 1. Kiến trúc máy tính von Neumann. ................................................................................................................8 2. Flynn’s Classical Taxonomy (phân loại cổ điển của Flynn) ........................................................................9 3. Tiềm năng, giới hạn của Parallel programing .......................................................................................... 12 III. Kiến trúc bộ nhớ của Parallel computer. .................................................................................................... 12 1. Chia sẻ bộ nhớ. ............................................................................................................................................. 12 2. Bộ nhớ phân tán. .......................................................................................................................................... 14 3. Bộ nhớ chia sẻ phân tán ............................................................................................................................ 14 IV. Mô hình Parallel programming. ................................................................................................................... 15 1. Shared Memory Model (không có threads) ............................................................................................... 15 2. Shared Memory Model (có threads) ......................................................................................................... 16 3. Distributed MemoryMessage Passing Model ........................................................................................... 16 4. Data Parallel Model ..................................................................................................................................... 17 5. Hybrid Model ............................................................................................................................................... 17 6. Single Program Multiple Data (SPMD) ..................................................................................................... 18 7. Multiple Program Multiple Data (MPMD) ............................................................................................... 18 V. Thiết kế Parallel programming ...................................................................................................................... 18 1. Song song hóa tự động và thủ công ............................................................................................................ 18 2. Hiểu vấn đề và chương trình ...................................................................................................................... 19 3. Phân vùng ..................................................................................................................................................... 20 VI. So sánh Parallel computing với các thuật toán khác ................................................................................. 21 1. So với Serial Computing ............................................................................................................................. 21 2. So với Distributed Computing .................................................................................................................... 22 3. So sánh thực tế ............................................................................................................................................. 23 VII, Phần kết:....................................................................................................................................................... 26 VIII, Tài liệu tham khảo: .................................................................................................................................... 27

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - - BÁO CÁO TIỂU LUẬN CÁC VẤN ĐỀ HIỆN ĐẠI CỦA KỸ THUẬT MÁY TÍNH TÍNH TỐN SONG SONG Sinh viên: Hồng Trung Kiên Mã sinh viên: 21020921 Chuyên Ngành: Kỹ thuật Máy Tính HÀ NỘI – 2023 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - - BÁO CÁO TIỂU LUẬN CÁC VẤN ĐỀ HIỆN ĐẠI CỦA KỸ THUẬT MÁY TÍNH TÍNH TỐN SONG SONG Cán hướng dẫn: TS Hoàng Gia Hưng Cán đồng hướng dẫn: TS Phạm Hùng Mạnh, ThS Trần Hiếu HÀ NỘI – 2023 LỜI CẢM ƠN Trước hết, em xin bày tỏ lòng cảm ơn sâu sắc tới Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đưa mơn học "Các vấn đề đại Kỹ thuật máy tính" vào chương trình giảng dạy Đặc biệt, em muốn gửi lời cảm ơn tới thầy mơn – TS Hồng Gia Hưng, TS Phạm Hùng Mạnh, ThS Trần Hiếu – truyền đạt kiến thức quý báu suốt quãng thời gian học vừa qua Trong buổi học, em tiếp thu tích lũy nhiều kiến thức bổ ích có kết nối chặt chẽ với thực tế, nguồn động viên quan trọng cho công việc học tập phát triển cá nhân Em cảm ơn điều mà thầy dành cho sinh viên Dù nỗ lực để hồn thành tiểu luận, hạn chế kiến thức kinh nghiệm thực tiễn, tiểu luận em không tránh khỏi khuyết điểm nội dung lẫn hình thức Em thực mong nhận bảo góp ý chân thành từ thầy, để tiểu luận hồn thiện phát triển Những lời góp ý thực quan trọng đồ án tốt nghiệp em vào năm 2025 Em xin chân thành cảm ơn! Một lần nữa, em xin gửi lời chúc tới thầy mơn - TS Hồng Gia Hưng, TS Phạm Hùng Mạnh, ThS Trần Hiếu, chúc thầy gặt hái nhiều thành công đường nghiệp riêng thân nghiệp trồng người Em xin cảm ơn! Mục lục : PHẦN MỞ ĐẦU .5 I.Tổng quan Parallel Computing (Tính tốn song song) Parallel Computing (Tính tốn song song) gì? Tại lại sử dụng parallel computing? .7 II Các ý tưởng Parallel computing .8 Kiến trúc máy tính von Neumann Flynn’s Classical Taxonomy (phân loại cổ điển Flynn) Tiềm năng, giới hạn Parallel programing 12 III Kiến trúc nhớ Parallel computer 12 Chia sẻ nhớ 12 Bộ nhớ phân tán 14 Bộ nhớ chia sẻ - phân tán 14 IV Mơ hình Parallel programming 15 Shared Memory Model (không có threads) 15 Shared Memory Model (có threads) 16 Distributed Memory/Message Passing Model 16 Data Parallel Model 17 Hybrid Model 17 Single Program Multiple Data (SPMD) 18 Multiple Program Multiple Data (MPMD) 18 V Thiết kế Parallel programming 18 Song song hóa tự động thủ cơng 18 Hiểu vấn đề chương trình 19 Phân vùng 20 VI So sánh Parallel computing với thuật toán khác 21 So với Serial Computing 21 So với Distributed Computing 22 So sánh thực tế 23 VII, Phần kết: 26 VIII, Tài liệu tham khảo: 27 PHẦN MỞ ĐẦU Bạn có biết rằng, để tạo ảnh 3D chất lượng cao, máy tính phải thực hàng triệu phép tính khoảng thời gian ngắn? Bạn có biết rằng, để dự báo thời tiết xác, máy tính phải xử lý hàng tỷ liệu từ nhiều nguồn khác nhau? Bạn có biết rằng, để giải toán phức tạp thăm dị dầu khí, trí tuệ nhân tạo, mã hóa thơng tin, máy tính phải có khả tính toán nhanh hiệu quả? Để làm điều này, máy tính cần phải sử dụng kỹ thuật gọi tính tốn song song Tính tốn song song lĩnh vực nghiên cứu quan trọng khoa học máy tính, nhằm tăng hiệu suất khả giải tốn phức tạp Tính tốn song song có nhiều ứng dụng thực tế, xử lý ảnh, dự báo thời tiết, trí tuệ nhân tạo, v.v Tuy nhiên, để thiết kế cài đặt thuật tốn song song hiệu quả, cần phải có kiến thức kiến trúc máy tính song song, phương pháp phân tích đánh giá hiệu năng, công cụ xử lý song song Đây lý chọn đề tài để nghiên cứu Mục tiêu tiểu luận giới thiệu khái niệm, phân loại, mơ hình tính tốn song song Ngồi ra, tiểu luận trình bày số phương pháp thiết kế thuật toán song song, so sánh với số thuật toán khác Bài tiểu luận chia thành ba phần chính, sau: Phần giới thiệu: Phần giới thiệu đề tài, lý chọn đề tài, tính cấp thiết, ý nghĩa mục tiêu nghiên cứu, tóm tắt nội dung tiểu luận Phần nội dung chính: Phần bao gồm chương trình bày chi tiết nội dung nghiên cứu, bao gồm: khái niệm, ý tưởng, cấu trúc, mơ hình tính tốn song song; số phương pháp thiết kế thuật tốn song song; so sánh tính tốn song song với thuật toán khác Phần thứ ba phần kết luận, tổng kết lại nội dung chính, đóng góp ý nghĩa nghiên cứu, hạn chế hướng phát triển tương lai NỘI DUNG CHÍNH I.Tổng quan Parallel Computing (Tính tốn song song) Parallel Computing (Tính tốn song song) gì? a, Tính tốn (Serial computing) Thơng thường, chương trình máy tính viết để thực tính tốn Một vấn đề chia nhỏ thành loạt lệnh rời rạc nhau, lệnh thực thi thực thi single processor (Nhân xử lý đơn) Và có lệnh thực thời điểm VD : chia vấn đề lớn thành vấn đề nhỏ thực xử lý vấn đề nhỏ theo thứ tự : t1, t2, …tn Hình 1: Serial computing (Tính tốn tuần tự) b, Tính tốn song song (parallel computing) Tính toán song song liên tục sử dụng nhiều tài ngun tính tốn để giải vấn đề tính tốn, nhiều phép tính tiến trình thực đồng thời Một vấn đề chia thành phần riêng rẽ giải đồng Mỗi phần chia thành loạt lệnh, lệnh từ phần xử lý liên tục nhân xử lý khác nhau, triển khai phần điều khiển/điều phối trình VD : chia vấn đề thành thành phần riêng biệt, không liên quan đến để tiến hành xử lý song song, đồng thời nhiều vấn đề lúc Hình 2: Parallel Computing (Tính tốn song song) Một số lưu ý : Những vấn đề tính toán phải đáp ứng yêu cầu sau : vấn đề chia thành phần rời rạc mà giải liên tục thực thi nhiều lệnh từ chương trình thời điểm nào, giải đa tài nguyên tính tốn nhanh đơn tài ngun tính tốn Các tài ngun tính tốn thơng thường máy tính với đa nhân xử lý hay số máy tính kết nối mạng lưới Tại lại sử dụng parallel computing? a Tiết kiệm tài ngun, chi phí : Trên lý thuyết sử dụng nhiều tài ngun thời gian hồn thành rút đáng kể, với tiết kiệm chi phí Các máy tính sử dụng parallel computing xây dựng từ thành phần thông dụng rẻ b Dùng để giải vấn đề lớn phức tạp : Có nhiều vấn đề lớn/phức tạp đến mức mà sử dụng serial computing, đặc biệt nhớ máy tính bị giới hạn Ví dụ : Grand Challenge Problems yêu cầu hàng Petaflop(s) (Peta = triệu tỉ) Petabyte(s) để giải c Cung cấp tính đồng Một tài ngun tính tốn làm việc thời điểm Đa tài ngun tính tốn làm nhiều việc liên tục thời điểm d Tận dụng nguồn tài ngun non-local (khơng có sẵn) Sử dụng nguồn tài ngun tính tốn mạng lưới rộng, internet mà tài ngun tính tốn cục bị khan hết e Sử dụng tốt Underlying parallel hardware (phần cứng song song xây dựng tảng phần mềm) Những máy tính đại, kể laptop, sử dụng kiến trúc song song với đa nhân xử lý Những phần mềm song song thiết kế chuyên biệt dành cho phần cứng song song với đa nhân, đa luồng xử lý Trong đa số trường hợp chương trình sử dụng serial computing máy tính đại khơng tận dụng hết tài nguyên máy tính f Tương lai parallel computing Trong 20 năm vừa qua, tăng mạng lưới thông tin, hệ thống phân phối, kiến trúc máy tính sử dụng đa nhân xử lý parallel computing tương lai khoa học tính tốn Cùng khoảng thời gian siêu máy tính sử dụng parallel computing đạt gia tăng 500000 lần hiệu suất chưa có dấu hiệu dừng lại II Các ý tưởng Parallel computing Kiến trúc máy tính von Neumann Được đặt tên theo nhà toán học người Hungary : John von Neumann, tác giả 1945 dẫn yêu cầu chung cho máy tính điện tử Cịn biết đến “stored-program computer” (máy tính nhớ chương trình) - tập lệnh chương trình liệu lưu nhớ Kể từ hầu hết máy tính theo thiết kế sau: Gồm thành phần : Bộ nhớ (Memmory), khối điều khiển (Control Unit), Bộ logic-số học (Arithmetic Logic Unit), Đầu vào/Đầu (Inputs/Outputs) Bộ nhớ đọc/ghi, nhớ truy cập ngẫu nhiên dùng để lưu tập lệnh chương trình liệu Hình 3:John von Neumann Khối điều khiển lấy tập lệnh/dữ liệu từ nhớ, giải mã chúng giải để đạt yêu cầu chương trình Hình 4: Kiến trúc von Neumann Các máy tính song song (parallel computer) sử dụng kiến trúc nhân lên đơn vị, yêu cầu kiến trúc đảm bảo Flynn’s Classical Taxonomy (phân loại cổ điển Flynn) Có vài cách để phân biệt máy tính song song, cách thường sử dụng Flynn’s Taxonomy Phân loại Flynn phân biệt kiến trúc máy tính đa xử lý theo cách chúng phân loại theo hai chiều độc lập Luồng lệnh Luồng liệu Mỗi thứ nguyên có hai trạng thái có: Đơn Nhiều Dưới cách phân loại có theo Flynn : Hình 5: Phân loại cổ điển Flynn a, SISD: Tính tốn theo hướng liệu, không song song Lệnh đơn (SI): CPU thực luồng lệnh chu kỳ xung nhịp Dữ liệu đơn (SD): Chỉ luồng liệu sử dụng làm đầu vào chu kỳ xung nhịp Ví dụ: máy tính lớn hệ cũ, máy tính mini, máy trạm PC xử lý/lõi đơn Hình 6: Phân loại kiểu SISD b, SIMD: Thuộc loại tính toán song song Lệnh đơn: Tất đơn vị xử lý thực lệnh chu kỳ xung nhịp Nhiều liệu: Mỗi đơn vị xử lý hoạt động thành phần liệu khác Phù hợp cho vấn đề chuyên biệt đặc trưng mức độ đặn cao, chẳng hạn xử lý đồ họa/hình ảnh Thực thi đồng (lockstep) xác định Hai loại: Mảng xử lý Đường ống Vector Hầu hết máy tính đại, đặc biệt máy có xử lý đồ họa (GPU) sử dụng lệnh đơn vị thực thi SIMD Hình 7: Phân loại kiểu SIMD c, MISD: Thuộc loại tính tốn song song Nhiều lệnh: Mỗi đơn vị xử lý hoạt động độc lập liệu thông qua luồng lệnh riêng biệt 10 Điển hình Symmetric Multiprocessor Machine (Bộ đa xử lý đối xứng): hệ thống máy tính với nhiều xử lý giống hệt chia sẻ nhớ kết nối thông qua kênh Cache Coherent UMA: nhân xử lý cập nhật địa nhớ chia sẻ, tất nhân xử lý khác biết lần cập nhật (được thiết kế phần cứng) Hình 10: Uniform Memory Access Non-Uniform Memory Access (NUMA) Thường lắp đặt cách kết nối hay nhiều SMP Những nhân xử lý có thời gian truy cập khác tới nhớ Một nhân xử lý truy cập tới nhớ nhân xử lý khác cách trực tiếp Hình 11: Non-Uniform Memory Access Ưu điểm : Dễ dàng cho lập trình viên theo quan điểm nhớ Dữ liệu chia tác vụ nhanh đồng khoảng cách nhớ tới CPU ngắn Nhược điểm : 13 Sự thiếu hụt tính tỉ lệ nhớ CPU, thêm nhiều CPU gây tắc nghẽn đường dẫn nhớ chia sẻ-CPU Sự khó khăn cho lập trình viên đảm bảo tính đồng truy cập nhớ toàn cục Bộ nhớ phân tán Đặc tính chung Yêu cầu mạng lưới liên lạc để kết nối nhớ-bộ xử lý Các nhân xử lý có nhớ cục riêng, nhớ nằm nhân xử lý không nối tới nhân xử lý khác Khi nhân xử lý cần truy cập liệu nhân xử lý khác, lập trình viên cần xử lý thiết kế cách liệu chuyển Hình 12: Kiến trúc nhớ phân tán Ưu điểm Kích thước nhớ tăng số nhân xử lý tăng Mỗi nhân xử lý liên tục truy cập nhớ riêng mà khơng ảnh hưởng tới nhớ tồn cục Nhược điểm Lập trình viên phải thiết kế cách thức liệu chuyển nhân xử lý Khó khăn việc ánh xạ cấu trúc liệu có tới tổ chức nhớ Bộ nhớ chia sẻ - phân tán Đặc tính chung Thành phần nhớ chia sẻ GPU máy chia sẻ nhớ Thành phần nhớ phân tán mạng lưới nhớ chia sẻ/GPU, truy cập vào nhớ Ưu nhược điểm: Chia sẻ ưu nhược điểm chung kiến trúc nhớ 14 IV Mơ hình Parallel programming Một vài mơ hình parallel programming thường dùng : Chia sẻ nhớ (Shared memory) (khơng có threads) Chia sẻ nhớ (Shared memory) (có threads) Phân tán nhớ/Truyền tin (Distributed Memory) Dữ liệu song song (Data parallel) Hybrid Single Program Multiple Data Multiple Program Multiple Data Mơ hình parallel programming tồn lớp trừu tượng phía phần cứng kiến trúc nhớ Những mơ hình cài đặt kiến trúc phần cứng nào, điển : Shared memory model Distributed memory machine Distributed memory model Shared memory machine Shared Memory Model (khơng có threads) Các nhân xử lý, tác vụ chia sẻ không gian địa chung, đọc viết cách không đồng Một số chế lock/semaphore sử dụng để điều khiển truy cập tới nhớ chung, giải tranh chấp tài nguyên, tranh đua ngăn chặn deadlock Ưu điểm: từ góc nhìn lập trình viên khơng cần phân biệt đường truyền liệu tác vụ, nhân xử lý có quyền truy cập vào nhớ chung Nhược điểm: khó để hiểu quản lý liệu cục Shared memory model Ví dụ cách triển khai: SHMEM 15 Hình 13: Shared Memory Model(without Threads) Shared Memory Model (có threads) Một tiến trình “lớn” có nhiều đường dẫn xử lý “nhỏ” (threads) thực đồng thời Mỗi thread có liệu cục riêng, đồng thời chia sẻ tài nguyên nhớ liệu tiến trình cha Các threads liên lạc với qua nhớ toàn cục, yêu cầu đồng để đảm bảo không thread cập nhật địa nhớ thời điểm Ví dụ cách triển khai: POSIX Threads, OpenMP Hình14: Threads model Distributed Memory/Message Passing Model Một tập tác vụ sử dụng nhớ cục riêng q trình tính tốn, nhiều tác vụ nằm nhiều máy tính vật lý Các tác vụ trao đổi liệu thông qua việc liên lạc (gửi truyền tin) Sự truyền liệu thường yêu cầu “hợp tác” từ tiến trình (một phép gửi tin phải có phép nhận tin tương ứng) Ví dụ cách triển khai: Message Passing Interface (MPI) Hình 15: Distributed memory model 16 Data Parallel Model (hay Partitioned Global Address Space Model – Khơng gian địa tồn cầu phân vùng) Vùng địa xem toàn cục Phần lớn tác vụ song song tập trung vào việc thực phép toán tập liệu Tập liệu thường xếp theo cấu trúc chung array cube Một tập tác vụ thực thi chung cấu trúc liệu, nhiên tác vụ lại làm việc phần khác cấu trúc liệu chung Các tác vụ thực phép toán phân vùng chúng Hình 16: Data parallel model  Lưu ý: Trên kiến trúc Shared Memory, tất tác vụ có quyền truy cập tới cấu trúc liệu thơng qua nhớ toàn cục Trên kiến trúc Distributed Memory, cấu trúc liệu chung chia cho tác vụ (theo logic và/hoặc vật lý) Ví dụ cách triển khai: Coarray Fortran, Unified Parallel C, Global Arrays, X10, Chapel Hybrid Model Là kết hợp nhiều mơ hình parallel programming trước Một mơ hình hybrid thường dùng kết hợp Message Passing Model (MPI) Threads Model (OpenMP), đó: Các thread chuyên thực cơng việc tính tốn sử dụng liệu cục bộ, node Sự liên lạc tiến trình node khác thực mạng lưới sử dụng MPI Hình 17: Hybrid model with MPI Một số mơ hình hybrid thơng dụng khác: MPI với CPU-GPU, MPI với POSIX Threads 17 Single Program Multiple Data (SPMD) Là mơ hình parallel programing bậc cao xây dựng từ kết hợp mơ hình giới thiệu bên Single Program: Mọi tác vụ thực thi liên tục chương trình Chương trình thread, message passing, data parallel hybrid Multiple Data: Mọi tác vụ sử dụng liệu khác Hình 18 :SPMD model Một chương trình sử dụng SPMD thường phải cần logic thiết lập sẵn bên phép tác vụ khác rẽ nhánh thực thi theo yêu cầu phần chương trình thiết kế để thực thi Như tác vụ khơng cần thiết phải thực thi tồn chương trình mà phần Multiple Program Multiple Data (MPMD) Cũng SPMD, MPMD mô hình parallel programing bậc cao xây dựng từ kết hợp mơ hình giới thiệu bên Multiple Program: tác vụ thực thi liên tục chương trình khác Chương trình thread, message passing, data parallel hybrid Multiple Data: Mọi tác vụ sử dụng liệu khác Hình 19: MPMD model V Thiết kế Parallel programming Song song hóa tự động thủ cơng Thiết kế phát triển chương trình song song chất trình thủ cơng Lập trình viên thường chịu trách nhiệm cho việc xác định thực song song Thông thường, việc phát triển mã song song theo cách thủ cơng q trình tốn thời gian, phức tạp, dễ xảy lỗi lặp lặp lại Trong nhiều năm nay, có nhiều cơng cụ khác để hỗ trợ người lập trình chuyển đổi chương trình nối tiếp thành chương trình song song Loại cơng cụ phổ biến sử dụng để tự động song song hóa chương trình nối tiếp trình biên dịch tiền xử lý song song hóa Trình biên dịch song song thường hoạt động theo hai cách khác : 18 + Hoàn toàn tự động : Trình biên dịch phân tích mã nguồn xác định hội cho song song Phân tích bao gồm việc xác định yếu tố cản trở tính song song đánh giá chi phí xem liệu tính song song có thực cải thiện hiệu suất hay khơng Các vịng lặp (do, for) mục tiêu thường xuyên để thực song song hóa tự động + Lập trình viên đạo Bằng cách sử dụng "compiler directives" cờ trình biên dịch, lập trình viên thơng báo rõ ràng cho trình biên dịch cách song song hóa mã Có thể sử dụng kết hợp với số mức độ song song tự động Quá trình song song hóa tạo trình biên dịch phổ biến thực cách sử dụng nhớ luồng chia sẻ nút (chẳng hạn OpenMP) Nếu bạn bắt đầu với code có bị hạn chế thời gian ngân sách việc song song hóa tự động câu trả lời Tuy nhiên, có số lưu ý quan trọng áp dụng cho việc song song hóa tự động: Kết sai tạo Hiệu suất thực suy giảm Kém linh hoạt nhiều so với song song hóa thủ công Giới hạn tập hợp (chủ yếu vịng lặp) mã Thực tế khơng song song hóa mã phân tích trình biên dịch cho thấy có chất ức chế mã phức tạp Phần lại phần áp dụng cho phương pháp phát triển mã song song thủ cơng Hiểu vấn đề chương trình Chương trình = thuật toán + liệu + (phần cứng) Bước việc phát triển phần mềm song song trước tiên phải hiểu vấn đề mà ta muốn giải song song Nếu ta bắt đầu với chương trình nối tiếp, điều có nghĩa ta phải hiểu code có Trước dành thời gian phát triển giải pháp song song cho vấn đề, ta cần xác định xem vấn đề có thực song song hay khơng => Cần xác định xem vấn đề giải cách song song hay không ? VD : + Vấn đề khó giải song song : Tính chuỗi số Fibonacci Tổng quát phần tử thứ n : F(n) = F(n – 1) + F(n – 2) => số thứ n phụ thuộc vào số trước nên ta dường khơng thể tính toán song song lúc nhiều phần tử chuỗi fibonacci 19 + Vấn đề giải song song : Tính tổng chữ số số dãy số Tổng digits số tổng chữ số số => tổng số riêng biệt nên ta tính tốn song song số mà khơng cần liệu liên quan đến Phân vùng Một bước việc thiết kế chương trình song song chia vấn đề thành “khối” công việc riêng biệt để phân bổ cho nhiều nhiệm vụ Điều gọi phân hủy phân vùng Có hai cách để phân vùng cơng việc tính tốn tác vụ song song: phân tách theo miền phân tách chức : Phân tách theo miền : Trong kiểu phân vùng này, liệu liên tiếp gần chia thành tác vụ (khối) Mỗi tác vụ song song sau hoạt động phần liệu Hình 20: Phân tách theo miền Phân tách theo chức : Trong kiểu này, liệu có chức tính toán liên quan, cần thiết với chia thành tác vụ (khối) Và tác vụ chịu trách nhiệm giải phần vấn đề lớn Hình 21: Phân tách theo chức 20 VI So sánh Parallel computing với thuật toán khác So với Serial Computing VD : Xử lý mảng - Trong ví dụ ta xử lý mảng chiều Ta thực hàm tác động fcn(i, j) lên phần tử a(i, j) Hàm fcn(i, j) phụ thuộc vào phần tử a(i, j) không phụ thuộc vào phần tử khác mảng Ta tiến hành xử lý mảng cách đoạn code : - j = 1,n i = 1,n fcn(i,j) = a(i,j) end end => Tính tốn tuyến tính phần tử thời gian => Mất nhiều thời gian công sức => Vậy tính tốn vấn đề cách song song không? - Giải pháp Parallel computing :  Ta chia mảng thành phần mảng giống để tính tốn song song, đồng thời lúc  Ta làm phép tính fcn(i, j) khơng liên quan đến phần tử khác mảng j = task1, taskn i = 1, n fcn(i,j) = a(i,j) end end 21 So với Distributed Computing Trong Distributed Computing (điện toán phân tán) : Chúng ta có nhiều máy tính tự trị mà người dùng dường coi hệ thống Trong hệ thống phân tán khơng có nhớ dùng chung máy tính giao tiếp với thơng qua việc truyền tin nhắn Trong điện toán phân tán, nhiệm vụ phân chia máy tính khác Máy tính phân tán có hai ưu điểm chính: Khả mở rộng dễ dàng : Chỉ cần thêm nhiều máy tính để mở rộng hệ thống, khả xử lý tính tốn Dự phịng : Vì nhiều máy khác cung cấp dịch vụ nên dịch vụ tiếp tục chạy (hoặc nhiều) máy tính bị hỏng Sự khác Parallel computing với Distributed Computing : Số lượng máy tính cần thiết :Tính tốn song song thường u cầu máy tính có nhiều xử lý Mặt khác, điện toán phân tán bao gồm số hệ thống máy tính tự trị (và thường tách biệt mặt địa lý và/hoặc xa) làm việc nhiệm vụ phân chia Khả mở rộng : Hệ thống tính tốn song song có khả mở rộng so với hệ thống tính tốn phân tán nhớ máy tính xử lý nhiều xử lý lúc Một hệ thống điện tốn phân tán ln mở rộng quy mơ với máy tính bổ sung Memory : Trong tính tốn song song, tất xử lý chia sẻ nhớ xử lý giao tiếp với nhờ trợ giúp nhớ dùng chung Mặt khác, hệ thống máy tính phân tán có nhớ xử lý riêng Đồng hóa : Trong điện toán song song, tất xử lý chia sẻ đồng hồ chủ để đồng hóa, hệ thống máy tính phân tán sử dụng thuật tốn đồng hóa Cách sử dụng : Điện toán song song sử dụng để tăng hiệu suất máy tính tính tốn khoa học, điện toán phân tán sử dụng để chia sẻ tài nguyên cải thiện khả mở rộng Khi nên sử dụng tính tốn song song : Phương pháp tính tốn lý tưởng cho thứ liên quan đến mô mô hình hóa phức tạp 22 Các ứng dụng phổ biến bao gồm khảo sát địa chấn, vật lý thiên văn tính tốn, mơ hình khí hậu, quản lý rủi ro tài chính, ước tính nơng nghiệp, hiệu chỉnh màu video, hình ảnh y tế, khám phá thuốc động lực học chất lỏng tính tốn Khi nên sử dụng máy tính phân tán : Điện tốn phân tán giải pháp tốt để xây dựng triển khai ứng dụng mạnh mẽ chạy nhiều người dùng khu vực địa lý khác Bất tìm kiếm Google sử dụng điện toán phân tán Kiến trúc hệ thống phân tán định hình phần lớn mà gọi “kinh doanh đại”, bao gồm điện toán dựa đám mây, điện toán biên phần mềm dạng dịch vụ (SaaS) So sánh thực tế Dưới thực nghiệm chạy thực tế parallel computing so với serial computing chạy thực tế matlab : VD1 : Tạo ma trận ngẫu nhiên A có giá trị từ đến 500 từ hàm rand(A) Hàm eig(rand(A)) : dùng để tính giá trị riêng ma trận ngẫu nhiên vừa tạo Hàm abs : tính giá trị tuyệt đối Hàm max : tính giá trị lớn Serial computing : Elapsed time : thời gian xử lý Parallel computing : 23 NumWorkers 6, hiểu số lượng nhân thực đơn vị thời gian để xử lý lệnh Elapsed time : 24.201(s) thời gian chạy để tạo parallel pool, phân chia xử dụng luồng (threads) CPU Elapsed time : 6.82(s) thời gian chạy thực tế lần sau sau khởi tạo, phân chia parallel pool VD2 : Parallel programming ngơn ngữ C: POSIX Threads:  Chương trình 24  Kết biên dịch chạy: 25 VII, Phần kết: Trong tiểu luận này, em nghiên cứu tính tốn song song, lĩnh vực quan trọng khoa học máy tính em giới thiệu khái niệm, phân loại, ngun lý tính tốn song song trình bày số phương pháp thiết kế thuật toán song song Cuối việc so sánh tính tốn song song với thuật tốn khác giải số toán Nghiên cứu em đóng góp nhìn tổng quan tính tốn song song, ví dụ minh họa cho tính tốn song song để làm rõ Tính tốn song song có nhiều ưu điểm tiềm việc tăng tốc độ khả giải toán phức tạp, khơng xử lý ảnh, mà cịn nhiều lĩnh vực khác Tuy nhiên, nghiên cứu em cịn nhiều hạn chế khó khăn Một số số là: giới hạn số lượng loại xử lý, phụ thuộc thuật toán song song vào kiến trúc máy tính, phức tạp khó kiểm sốt q trình xử lý song song, v.v Tuy nhiên, cản trở lớn hạn chế mặt kiến thức kinh nghiệm thực tiễn dẫn đến việc nghiên cứu tránh khỏi sai xót Trong tương lai, Em mong muốn cải tiến phát triển nghiên cứu mình, khám phá thêm hướng nghiên cứu tính tốn song song Một số gợi ý khuyến nghị mà em hướng tới đề tài là: nghiên cứu kiến trúc máy tính song song hiệu hơn, thiết kế cài đặt thuật toán song song phù hợp với tốn cụ thể, sử dụng cơng cụ xử lý song song đại tiện lợi hơn, v.v Em xin chân thành cảm ơn thầy mơn - TS Hồng Gia Hưng, TS Phạm Hùng Mạnh, ThS Trần Hiếu quan tâm đọc tiểu luận em Em mong nhận ý kiến đóng góp góp ý quý báu thầy để nghiên cứu em hoàn thiện Em xin chân thành cảm ơn! 26 VIII, Tài liệu tham khảo: Computer Architecture, Sixth Edition_ A Quantitative Approach (PDF) Link : https://www.javatpoint.com/what-is-parallel-computing Link: https://www.spiceworks.com/tech/iot/articles/what-is-parallel-processing/ Link: https://www.cs.cmu.edu/afs/cs/academic/class/15210-f15/www/tapp.html The Algorithm Design Manual 2nd ed 2008 Edition Introduction to Parallel Computing (From Algorithms to Programming on State-of-the-Art Platforms) 27

Ngày đăng: 12/12/2023, 11:33

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN