TÌM HIỂU VỀ XỬ LÝ SONG SONG

16 108 0
TÌM HIỂU VỀ XỬ LÝ SONG SONG

Đ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

PHẦN II: NỘI DUNG 1. NHỮNG KHÁI NIỆM CƠ BẢN VỀ TÍNH TOÁN SONG SONG 1.1 . Tính toán tuần tự Một vấn đề được chia thành một dãy rời rạc các chỉ thị (Instruction – lệnh máy tính) mà máy tính có thể hiểu để thực hiện. Máy tính thực hiện các chỉ thị theo thứ tự mà chúng xuất hiện. Chỉ có duy nhất một chỉ thị được thực hiện tại một thời điểm. Các phần mềm ứng dụng đều được viết cho các máy tính tuần tự. Máy tính tuần tự là loại máy tính thực hiện các lệnh một cách tuần tự và tại mỗi thời điểm chỉ một chỉ thị duy nhất được thực hiện. Với những bài toán yêu cầu về khả năng tính toán và lưu trữ lớn thì mô hình kiến trúc này còn hạn chế. Để tăng cường sức mạnh tính toán giải quyết các bài toán lớn có độ tính toán cao, người ta đưa ra kiến trúc mới, với ý tưởng kết hợp nhiều bộ xử lý vào trong một máy tính, mà hay gọi là xử lý song song tính toán song song 1.2. Tính toán song song Định nghĩa: Tính toán song song là quá trình tính toán gồm nhiều tiến trình được kích hoạt đồng thời và cùng tham gia tính toán giải quyết một vấn đề, và nói chung phải thực hiện trên các hệ thống đa bộ xử lí. Một vấn đề cần tính toán được phân hoạch thành các phần tính toán rời rạc, các phần này lại có thể tính toán được đồng thời (song song). Từng phần của phân hoạch lại được chia nhỏ thành chuỗi các chỉ thị và được thực hiện tuần tự. Các chỉ thị của từng phần thực hiện đồng thời trên các CPU khác nhau. Quan niệm đơn giản nhất, tính toán song song là việc sử dụng đồng thời nhiều máy tính được kết nối thành mạng hoặc chỉ trên một máy tính nhưng có nhiều hơn hai bộ xử lý. Trong tính toán song song hiện nay, có hai công nghệ chính: Thứ nhất là sử dụng các siêu máy tính với rất nhiều bộ xử lý được tích hợp bên trong được thiết kế đồng bộ cả về phần cứng và phần mềm. Các công nghệ được áp dụng trong các siêu máy tính thường là các công nghệ tiên tiến làm cho giá thành của hệ thống siêu tính tăng rất cao.Vì thế các siêu máy tính thường được sử dụng trong các lĩnh vực mà vấn đề tính toán phức tạp, nhạy cảm và yêu cầu thời gian thực như mô phỏng thực hiện của các động cơ máy bay, quốc phòng, vũ trụ...

TRƯỜNG ĐẠI HỌC KHOA HỌC KHOA CÔNG NGHỆ THÔNG TIN LỚP: CAO HỌC KHMT K2020 ĐỀ TÀI: TÌM HIỂU VỀ TÍNH TỐN SONG SONG Gia Lai, tháng năm 2021 MỤC LỤC PHẦN I: LỜI GIỚI THIỆU PHẦN II: NỘI DUNG NHỮNG KHÁI NIỆM CƠ BẢN VỀ TÍNH TỐN SONG SONG .4 Xuất nhiều toán cần phải xử lý khối lượng liệu lớn: xử lý ngôn ngữ tự nhiên, dự báo thời tiết, … Tốc độ xử lý xử lý tăng có giới hạn: Hệ thống đơn xử lý không đáp ứng yêu cầu xử lý mặt thời gian .5 Trong tính tốn song song : 2.THUẬT TOÁN SONG SONG CÁC LỚP BÀI TỐN CĨ THỂ XỬ LÝ SONG SONG VÀ VÍ DỤ 10 3.1 Các lớp tốn xử lý song song 10 PHẦN III: KẾT LUẬN .15 TÀI LIỆU THAM KHẢO 16 PHẦN I: LỜI GIỚI THIỆU Trong thực tế, có nhiều lĩnh vực xử lý đồ họa, trí tuệ nhận tạo, lý thuyết đồ thị, lý thuyết nhận dạng, dự báo thời tiết dẫn đến toán xử lý khối lượng liệu lớn dẫn tới u cầu cần phải có hệ thống máy tính thật mạnh thực yêu cầu thực tế Hầu hết toán này, máy tính xử lý kiểu von Neumann khơng đáp ứng yêu cầu Mặc dù tốc độ số lượng xử lý tăng nhiều năm qua, giới hạn phương diện vật lý nên khả tính tốn chúng khơng thể tăng theo yêu cầu tại, không đáp ứng tương lai Điều dẫn tới muốn tăng khả tính tốn hệ thống máy tính, để giải tốn đáp ứng u cầu thực tế khơng cịn cách khác phải khai thác khả xử lý song song chúng Nghiên cứu xử lý song song khơng mang ý nghĩa khoa học, mà cịn có ý nghĩa thực tiễn lớn Việc nghiên cứu xử lý song song, từ lý thuyết ứng dụng, không giúp nắm tảng cơng nghệ, mà cịn giúp nhìn thấy tiềm to lớn xử lý song song cơng nghệ nói riêng lĩnh vực kinh tế quốc dân nói chung Trong phần tiểu luận em trình bày sơ lược số vấn đề tính toán (xử lý) song song, thuật toán song song Tuy nhiên thời gian thực kinh nghiệm em cịn hạn chế nên tiểu luận khơng tránh khỏi sai sót ngồi ý muốn Em mong nhận góp ý bảo Thầy bạn học viên lớp để tiểu luận hoàn thiện Cuối em xin chân thành cảm ơn Thầy TS Nguyễn Hoàng Minh tận tình giảng dạy, cung cấp tài liệu tham khảo để em hoàn thành tốt tiểu luận PHẦN II: NỘI DUNG NHỮNG KHÁI NIỆM CƠ BẢN VỀ TÍNH TỐN SONG SONG 1.1 Tính tốn - Một vấn đề chia thành dãy rời rạc thị (Instruction – lệnh máy tính) mà máy tính hiểu để thực - Máy tính thực thị theo thứ tự mà chúng xuất - Chỉ có thị thực thời điểm - Các phần mềm ứng dụng viết cho máy tính Máy tính loại máy tính thực lệnh cách thời điểm thị thực Với toán yêu cầu khả tính tốn lưu trữ lớn mơ hình kiến trúc hạn chế Để tăng cường sức mạnh tính tốn giải tốn lớn có độ tính tốn cao, người ta đưa kiến trúc mới, với ý tưởng kết hợp nhiều xử lý vào máy tính, mà hay gọi xử lý song song/ tính tốn song song 1.2 Tính tốn song song Định nghĩa: Tính tốn song song q trình tính tốn gồm nhiều tiến trình kích hoạt đồng thời tham gia tính tốn giải vấn đề, nói chung phải thực hệ thống đa xử lí - Một vấn đề cần tính tốn phân hoạch thành phần tính tốn rời rạc, phần lại tính toán đồng thời (song song) - Từng phần phân hoạch lại chia nhỏ thành chuỗi thị thực - Các thị phần thực đồng thời CPU khác Quan niệm đơn giản nhất, tính tốn song song việc sử dụng đồng thời nhiều máy tính kết nối thành mạng máy tính có nhiều hai xử lý Trong tính tốn song song nay, có hai cơng nghệ chính: Thứ sử dụng siêu máy tính với nhiều xử lý tích hợp bên thiết kế đồng phần cứng phần mềm Các công nghệ áp dụng siêu máy tính thường cơng nghệ tiên tiến làm cho giá thành hệ thống siêu tính tăng cao.Vì siêu máy tính thường sử dụng lĩnh vực mà vấn đề tính tốn phức tạp, nhạy cảm u cầu thời gian thực mô thực động máy bay, quốc phòng, vũ trụ Cách thứ hai kết nối máy tính lại với thực toán Hệ thống máy tính kết nối hệ thống tính tốn song song phân cụm Hệ thống có ưu điểm giá thành rẻ nhiều so với siêu máy tính có sức mạnh (do sử dụng thiết bị thơng thường) tính linh hoạt hệ thống (số nút, số xử lý, nhớ, thiết bị mạng mang tính tuỳ biến cao) Sự phát triển mạnh mẽ mạng máy tính, công nghệ mạng lấp hạn chế truyền thơng hệ thống máy tính song song phân cụm làm cho phát triển rộng rãi Các lĩnh vực sử dụng hệ thống tính tốn song song phân cụm thường u cầu tính tốn kiến trúc song song 1.3 Tại sử dụng tính tốn song song? - Xuất nhiều toán cần phải xử lý khối lượng liệu lớn: xử lý ngôn ngữ tự nhiên, dự báo thời tiết, … - Tốc độ xử lý xử lý tăng có giới hạn: Hệ thống đơn xử lý không đáp ứng yêu cầu xử lý mặt thời gian Trong tính tốn song song : • Tiết kiệm thời gian, tài • Giải vấn đề lớn hơn, phức tạp Nhiều vấn đề lớn và/hoặc phức tạp khơng thực tế khơng có khả giải chúng máy tính đơn, đặc biệt nhớ máy tính lại bị hạn chế Chẳng hạn vấn đề: - Dự báo thời tiết, bão, động đất, sóng thần, mơ hình sinh thái, … - Máy dị tìm web/CSDL để xử lý hàng triệu triệu giao dịch giây (cơng cụ tìm kiếm web/CSDL xử lý hàng triệu giao dịch/giây) • Cung cấp tính đồng thời • Sử dụng tài ngun phi cục Sử dụng tài ngun tính tốn mạng diện rộng, chí Internet tài nguyên nơi tính tốn tài ngun khan hiếm, khơng đủ • Những hạn chế tính tốn o Tốc độ truyền - tốc độ máy tính phụ thuộc trực tiếp vào tốc độ chuyển liệu qua phần cứng Giới hạn tốc độ tuyệt đối tốc độ ánh sáng (30 cm/nanosecond) hạn chế lan truyền (băng thông) dây đồng (9 cm/nanosecond) Để tăng tốc độ cần phải tăng số lượng phần tử xử lý, o Các giới hạn công nghệ tiểu họa vi xử lý (miniaturization – processor technology) cho phép tăng số lượng bóng bán dẫn đặt chip Tuy nhiên, với thành phần cấp độ phân tử nguyên tử giới hạn đạt đến dù thành phần nhỏ đến o Các hạn chế kinh tế - làm xử lý đơn nhanh đắt tiền o Các kiến trúc máy tính ngày dựa vào khả song song hóa phần cứng để cải thiện hiệu suất như:  Có nhiều đơn vị thực  Dùng lệnh đường ống (Pipelined instructions)  Đa nhân (Multi-core) Sự khác song song tuần tự:  Trong tính toán với BXL thời điểm, phép tốn  Trong tính tốn song song số BXL kết hợp với để giải vấn đề giảm thời gian xử lý Trong năm qua, phát triển mạnh mạng (network), hệ thống phân tán kiến trúc đa xử lý (thậm chí máy tính để bàn) cho thấy rõ song song xu hướng tính tốn Trong thời gian đó, siêu máy tính tăng 1000 lần hiệu xuất, tiếp tục tương lai Tính tốn song song sử dụng rộng rãi giới nhiều ứng dụng lớn 1.4 Các loại máy tính song song Phân loại theo Flynn Dù máy tính hay song song phải thực cách thực thi lệnh liệu Dựa vào số lượng dòng lệnh số lượng dòng liệu thực thi thời điểm mà Micheal Flynn phân máy tính thành loại: - Máy tính SISD: Đơn dịng lệnh-đơn dịng liệu - Máy tính MISD: Đa dịng lệnh – đơn dịng liệu - Máy tính SIMD: Đơn dòng lệnh – đa dòng liệu - Máy tính MIMD: Đa dịng lệnh – đa dịng liệu Kiến trúc nhớ máy tính song song - Hệ thống đa xử lý nhớ chia sẻ - Hệ thống đa máy tính nhớ phân tán - Hệ thống nhớ chia sẻ phân tán 1.5 Các mơ hình lập trình song song: Lập trình song song trừu tượng hoá kiến trúc phần cứng nhớ máy tính song song Mơ hình lập trình song song khơng đặc tả riêng cho loại kiến trúc nhớ hay máy tính cụ thể Một lý thuyết loại mơ hình lậo trình song song thể phần cứng Lập trình chia sẻ nhớ Trong mơ hình lập trình chia sẻ nhớ, tác vụ chia sẻ không gian địa chung nơi tác vụ đọc ghi liệu Các chế khác locks/semaphores dùng để điều khiển việc truy cập tới nhớ chia sẻ Một ưu điểm mơ hình theo quan điểm người lập trình khơng có quyền sử hữu liệu riêng nên khơng cần phải đặc tả việc truyền thông liệu tác vụ Việc phát triển chương trình đơn giản hố Nhược điểm quan trọng mơ hình ngơn ngữ việc thực trở nên khó hiểu khó quản lý vùng liệu Lập trình chia sẻ nhớ dựa vào tiến trình Tiến trình (processes) thể chương trình thực thi Yêu cầu xử lý song song khả tạo số tiến trình cần thiết cho toán khả huỷ bỏ tiến trình phần việc xử lý song song kết thúc để giải phóng tài nguyên mà tiến trình chiếm giữ khơng cản trở hoạt động tiến trình khác Các hệ điều hành Linux, Unix hay Windows phải điều phối hoạt động đồng tiến trình Khi muốn sử dụng nhớ chung, ta cần phải xin cấp phát nhớ sau sử dụng xong phải giải phóng chúng Khi có tiến trình truy cập vào nhớ với mục đích cập nhật phải đảm bảo khơng tiến trình liệu khác đọc liệu vùng nhớ việc cập nhật kết thúc Lập trình chia sẻ nhớ dựa vào luồng Các luồng tiến trình chia sẻ với khơng gian địa chương trình, đoạn liệu mơi trường xử lý, đồng thời có vùng liệu riêng để thao tác Công việc luồng miêu tả chương trình chương trình Một luồng thực thi chương trình lúc với luồng khác Các thể luồng có nhiều hệ điều hành hỗ trợ đa luồng như: SUN Solaris, Windows NT v.v nỗ lực tiểu chuẩn hố khơng giống đưa tới hai thể khác luồng là: POSIX Threads OpenMP Mơ hình truyền thơng điệp Giống mơ hình chia sẻ nhớ, đơn vị xử lý song song mơ hình truyền thơng điệp tiến trình Trong mơ hình truyền thơng điệp Các tiến trình thực xử lý khác không truy cập vào không gian nhớ chia sẻ Việc truyền thông tiến trình thơng qua việc gửi nhận thơng điệp Việc đồng hố tiến trình chương trình song song thực theo chế truyền thơng điệp Khi tiến trình muốn gửi thơng điệp phải chờ tiến trình nhận sẵn sàng nhận thơng điệp ngược lại, tương tự THUẬT TOÁN SONG SONG 2.1 Khái niệm thuật toán song song Thuật toán song song tập tiến trình (process) tác vụ (task) thực đồng thời trao đổi liệu với để kết hợp giải toán đặt Khi thiết kế thuật toán song song cần xác định Việc phân chia liệu cho tác vụ nào? Dữ liệu truy cập nào, Những liệu cần phải chia sẻ? Phân tác vụ cho tiến trình (bộ xử lý) nào? Các tiến trình đồng hóa sao? 2.2 Nguyên lý thiết kế thuật toán song song Phát triển thuật toán phần việc giải toán sử dụng máy tính Một thuật tốn chất cách làm hay số bước để giải toán đưa máy tính Một tương tự, thuật toán song song cách làm cho làm để giải toán đưa máy tính song song Tuy nhiên, việc đặc tả thuật toán song song liên quan tới nhiều việc sử dụng máy tính song song Trong thực tế, việc xây dựng thuật toán song song gồm số tất bước sau: - Xác định phần công việc thực đồng thời - Gán cơng việc thực đồng thời nhiều tiến trình chạy song song - Phân tán liệu đầu vào, đầu trung gian - Quản lý việc truy cập tới liệu chia sẻ - Đồng xử lý giai đoạn khác việc thực thi chương trình Có năm ngun lý thiết kế thuật toán song song: - Các nguyên lý lập lịch: Giảm tối thiểu BXL sử dụng thuật tốn cho thời gian tính tốn khơng tăng - Ngun lý hình ống: Ngun lý áp dụng toán xuất dãy thao tác {T1,T2, Tn} Trong T ( i+1) thực sau kết thúc Ti - Nguyên lý chia để trị: Chia toán thành phần nhỏ tương đối độc lập với giải chúng cách song song Có thể chia tốn theo miền liệu theo chức - Nguyên lý đồ thị phụ thuộc liệu: Phân tích mối quan hệ liệu tính tốn để xây dựng đồ thị phụ thuộc liệu dựa vào để xây dựng thuật toán song song - Nguyên lý điều kiện tương tranh: Nếu hai tiến trình muốn truy cập vào mục liệu chia sẻ chúng phải tương tranh với nhau, nghĩa chúng cản trở lẫn Trên kiến trúc máy tính khác hiệu thuật tốn khác Việc thiết kế thuật tốn song song phải dựa kiến thức kiến trúc máy tính, ngơn ngữ lập trình song song phương pháp tính tốn - Tác vụ (Task) - Tiến trình (process) - Thực - Thực song song Phương pháp luận để thiết kế thuật toán song song gồm bốn giai đoạn khác nhau: - Sự chia nhỏ toán (partitioning) - Thiết lập kênh truyền (communication) - Nhóm gom tác vụ (agglomeration) - Gán vào hệ thống (mapping) CÁC LỚP BÀI TỐN CĨ THỂ XỬ LÝ SONG SONG VÀ VÍ DỤ 3.1 Các lớp tốn xử lý song song Những tốn có u cầu xử lý khối lượng liệu lớn: xử lý ngôn ngữ tự nhiên, nhận dạng , xử lý ảnh ba chiều, dự báo thời tiết, … Từ tốn tách thành nhiều toán nhỏ, toán nhỏ có liệu độc lập với 10 3.2 Ví dụ tính tốn song song Ví dụ: Tính Pi • Giá trị số PI tính nhiều cách Xét phương pháp tính xấp xỉ số PI sau đây: Vẽ vòng tròn nội tiếp hình vng , hình Các điểm tạo hình vng cách ngẫu nhiên Xác định số điểm hình vng điểm vòng tròn Giả sử α tỷ số số điểm vòng tròn chia cho số điểm hình vng, ta có PI ≈ 4α Lưu ý điểm tạo nhiều, có xấp xỉ tốt Hình Tính PI phương pháp Mã chương trình viết C# static void Main(string[] args) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); double PI,circle_count; Int64 npoints = 10000000; //tong so diem Random random = new Random(); circle_count = 0; //tong so diem vong tron 11 for (int j = 0; j < npoints; j++) { double x = random.NextDouble(); double y = random.NextDouble(); if (IsInsideCircle(Distance(x, y, 0.5, 0.5), 0.5)) { circle_count++; } } PI = 4.0 * circle_count / npoints; Console.WriteLine("PI is:" + PI.ToString()); Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed); Console.ReadKey(); } static double Distance(double x, double y, double x1, double y1) { return Math.Sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1)); } static bool IsInsideCircle(double distance, double r) { return distance { ParallelRun(); }); stopwatch.Stop(); PI = 4.0 * circle_count / npoints; Console.WriteLine("PI is:" + PI.ToString()); Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed); Console.ReadKey(); } static void ParallelRun() { int total = 0; Random random = new Random(); for (int j = 0; j < myPoint; j++) { double x = random.NextDouble(); double y = random.NextDouble(); if (IsInsideCircle(Distance(x, y, 0.5, 0.5), 0.5)) { total++; 13 } } lock (_locker) circle_count += total; } static double Distance(double x, double y, double x1, double y1) { return Math.Sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1)); } static bool IsInsideCircle(double distance, double r) { return distance

Ngày đăng: 24/09/2021, 20:23

Từ khóa liên quan

Mục lục

  • 1.1 . Tính toán tuần tự

  • 1.2. Tính toán song song

  • 1.3. Tại sao sử dụng tính toán song song?

  • 1.5 Các mô hình lập trình song song:

  • 2.1. Khái niệm thuật toán song song

  • 2.2. Nguyên lý thiết kế thuật toán song song

  • 3.2 . Ví dụ tính toán song song Tính số PIThis example demonstrates calculations on 2-dimensional array elements, with the computation on each array element being independent from other array elements.Tính số Pi

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

Tài liệu liên quan