TÌM HIỂU VÀ ỨNG DỤNG MPI VÀO ĐIỆN TOÁN SONG SONG

29 362 0
TÌM HIỂU VÀ ỨNG DỤNG MPI VÀO ĐIỆN TOÁN 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

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  TÍNH TOÁN LƯỚI ĐỀ TÀI: TÌM HIỂU VÀ ỨNG DỤNG MPI VÀO ĐIỆN TOÁN SONG SONG GVHD: PGS. TS. Nguyễn Phi Khứ Thực hiện: Vưu Văn Tòng – CH1101146 Thành phố Hồ Chí Minh - Tháng 07 Năm 2013 Tính Toán Lưới NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 2 Tính Toán Lưới NỘI DUNG Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 3 Tính Toán Lưới DANH SÁCH HÌNH DANH SÁCH BẢNG Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 4 Tính Toán Lưới 1. GIỚI THIỆU VỀ ĐIỆN TOÁN SONG SONG 1.1. Điện toán song song là gì? Các phần mềm truyền thống được thiết kế theo dạng tuần tự: - Chạy trên một máy vi tính với một bộ xử lý đơn lẻ - Một vấn đề được tách thành cách chuỗi chỉ thị đơn lẻ rời rạc - Những chỉ thị được thực thi một cách tuần tự, hết chỉ thị này tới chỉ thị khác - Chỉ có một chỉ thị được thực thi tại một điểm thời gian nào đó. Hình 1: Điện toán tuần tự Về cơ bản, điện toán song song là việc đồng thời sử dụng nhiều tài nguyên tính toán để giải quyết một vấn đề tính toán. - Chạy trên nhiều bộ vi xử lý - Một vấn đề được tách thành những phần rời rạc có khả năng thực thi đồng thời. - Mỗi phần trên lại được tách thành một chuỗi các chỉ thị. - Các chỉ thị từ mỗi phần sẽ được thực thi đồng thời trên những bộ xử lý khác nhau. - Một cơ chế điều khiển/hợp tác sẽ được cài đặt để kiểm soát việc thực thi này. Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 5 Tính Toán Lưới Hình 2: Điện toán song song 1.2. Tại sao chọn điện toán song song Những lý do chính điện toán song song được chọn: - Tiết kiệm thời gian và tiền bạc: trên lý thuyết, một chương trình sử dụng nhiều tài nguyên sẽ rút ngắn được thời gian thực thi kèm với chi phí. Một số chương trình càng chạy lâu thì chi phí càng nhiều: bảo trì, giám sát….Thêm nữa, những máy tính song song này hoàn toàn có thể được xây dựng từ những thành phần rẻ tiền. - Giải quyết được những vấn đề lớn hơn: nhiều vấn đề cực lớn hoặc cực kỳ phức tạp thì không thể được hiện thực trên máy tính đơn lẽ được, đặc biệt là máy tính với bộ nhớ ít, vi xử lý yếu. Ví dụ: "Grand Challenge" (en.wikipedia.org/wiki/Grand_Challenge) là một vấn đề mà yêu cầu đến tốc độ PetaFLOPS (một triệu tỷ phép tính toán số động trên giây) của bộ vi xử lý và lượng bộ nhớ lên đến PetaBytes (một triệu tỷ bytes). - Khả năng tính toán đồng thời: Một tài nguyên tính toán đơn lẽ chỉ có thể làm một việc tại một thời điểm. Nhiều tài nguyên tính toán có thể làm nhiều việc đồng thời nhau. Ví dụ, Access Grid cung cấp một hệ thống mạng hợp tác mà người dùng trên toàn thế giới có thể được đáp ứng và tiến hành công việc một cách "ảo hóa" Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 6 Tính Toán Lưới - Sử dụng tài nguyên từ xa: sử dụng các tài nguyên tính toán trên một mạng rộng hoặc Internet khi tài nguyên cục bộ bị khan hiếm. Ví dụ: SETI@home (setiathome.berkeley.edu) có đến 1.3 triệu người dùng, 3.4 triệu máy tính ở gần như mỗi quốc gia trên thế giới. Nguồn: www.boincsynergy.com/stats/ (tháng 6, 2013). - Giải quyết những hạn chế của điện toán tuần tự: việc xây dựng những máy tính nhanh hơn gặp nhiều khó khăn cả về tính vật lý cũng như tính ứng dụng. Chẳng hạn đối với tốc độ chuyển tải, tốc độ của máy tính tuần tự sẽ phụ thuộc vào việc dữ liệu di chuyển giữa các phần cứng nhanh cỡ nào, tốc độ này luôn có giới hạn tuyệt đối là tốc độ ánh sáng (30 cm/ nano giây) và giới hạn truyền tải của dây đồng (9 cm/ nano giây). Do đó, việc tăng tốc độ này đòi hỏi sự gia tăng tương ứng của các thành phần. 1.3. Các mô hình lập trình song song Đối với lập trình song song, có vài mô hình được sử dụng phổ biến: a. Bộ nhớ chia sẻ Trong mô hình này, các tác vụ chia sẻ một không gian bộ nhớ để chúng có thể đọc và ghi một cách bất đồng bộ. Việc truy cập vào bộ nhớ chia sẻ này thường được điều khiển bởi cơ chế mutex hay semaphore. Thuận lợi của mô hình này: chương trình thường đơn giản, không quan tâm đến việc chia sẻ dữ liệu giữa các tác vụ Bất lợi: việc quản lý dữ liệu cục bộ sẽ là một việc phức tạp, khi nhiều tiến trình truy xuất dữ liệu đồng thời có khả năng gây ra lỗi cache hoặc bus bị quá tải. b. Bộ nhớ phân tán hay giao diện truyền nhận thông điệp Mô hình này có các đặc điểm: - Một tập hợp các tác vụ sử dụng bộ nhớ của riêng nó trong suốt quá trình tính toán. - Các tác vụ có thể trao đổi dữ liệu thông qua cơ chế truyền và nhận thông điệp. Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 7 Tính Toán Lưới - Việc trao đổi dữ liệu thường cần phải có sự hợp tác giữa các tiến trình với nhau. Như việc truyền dữ liệu bằng một hàm nào đó cần có hàm để nhận tương ứng. Những cơ chế truyền nhận thông điệp thường được hiện thực thông qua các thư viện. Người lập trình chỉ cần xác định được phần có thể song song hóa của chương trình và hiện thực nó. Hình 3: Cơ chế truyền thông điệp Có nhiều thư viện truyền nhận thông đã được ra đời từ năm 1992, trong đó MPI (Message Passing Interface) đã trở thành một tiêu chuẩn công nghiệp thay thế hầu hết các thư viện truyền nhận thông điệp khác. c. Mô hình dữ liệu song song Mô hình này có những tính chất sau: - Không gian địa chỉ được thiết kế mang tính toàn cục - Hầu hết những công việc song song là tập trung xử lý trên những tập dữ liệu có cấu trúc như là mảng - Một tập hợp các tác vụ làm việc tập thể trên cùng cấu trúc dữ liệu, tuy nhiên mỗi tác vụ lại làm việc trên những phần khác nhau của cấu trúc dữ liệu đó. Chẳng hạn, tác vụ A làm việc trên mảng ARR từ vị trí 1 đến 25, tác vụ B cũng làm việc trên mảng ARR nhưng từ vị trí 26 đến 50. - Những tác vụ này thực thi những hành động giống y như nhau trên tập dữ liệu mà nó làm việc. Chẳng hạn, cộng 4 vào mỗi phần tử của ARR. Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 8 Tính Toán Lưới Hình 4: Mô hình dữ liệu song song Đối với kiến trúc bộ nhớ chia sẽ, dữ liệu sẽ được lưu trữ trên bộ nhớ toàn cục. Các tác vụ sẽ truy cập dữ liệu này một cách toàn cục. Đối với kiến trúc bộ nhớ phân tán, dữ liệu sẽ được tách ra từng phần và lưu trữ ở bộ nhớ cục bộ của từng tác vụ. 1.4. Các bước để thiết kế những chương trình song song 1. Song song hóa bằng tay hay sử dụng công cụ (tự động) Thông thường việc thiết kế những chương trình song song được làm một cách thủ công là chính, người lập trình thường chịu trách nhiệm cho cả việc thiết kế lẫn việc hiện thực nó. Việc thiết kế thủ công như thế này thường tốn thời gian, phức tạp và ẩn chứa nhiều lỗi. Do đó, nhiều công cụ đã được ra đời với mục đích chính thường là: tự động song song hóa một chương trình tuần tự. Các công cụ này có thể là một bộ tiền xử lý hay một trình biên dịch. Nếu như chúng ta chỉ có thời gian và ngân sách hạn chế, thì công cụ tự động sẽ là câu trả lời. Tuy nhiên, cần phải cân nhắc những điều có thể xảy ra với công cụ này như: kết quả bị sai, hiệu suất giảm nhiều, hạn chế trong các vòng lặp… 2. Hiểu vấn đề và chương trình Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 9 Tính Toán Lưới Bước đầu tiên của công việc thiết kế chương trình là phải hiểu rõ vấn đề mà mình đang gặp phải. Sau đó, phải xác định xem liệu chương trình có thể song song hóa được hay không? Ví dụ vấn đề có thể song song hóa được: “cho một mảng số nguyên gồm 1 triệu phần tử, hãy tìm số nguyên nhỏ nhất trong mảng”. Để song song hóa, ta tách mảng thành n phần bằng nhau, tìm số nhỏ nhất trong mỗi phần và làm bước thu thập để tìm số nhỏ nhất của mảng trong danh sách các số nhỏ nhất của mỗi phần. Một ví dụ điển hình về vấn đề KHÔNG song song hóa được: “tính toán chuỗi số Fibonacy bằng công thức: F(n) = F(n-1) + F(n-2)”. Rõ ràng, việc tính toán F(n) sẽ phụ thuộc vào hai số đã tìm ra trước nó là F(n-1) và F(n- 2). Do đó, việc song song hóa không thể thực hiện được. 3. Phân hoạch Một trong những bước đầu tiên để thiết kế chương trình song song là tách vấn đề ra thành từng phần nhỏ hơn. Tách theo dữ liệu: tập dữ liệu của vấn đề sẽ được chia ra để phân phối cho các tác vụ xử lý. Như vậy, mỗi tác vụ sẽ thực hiện những chức năng giống nhau trên các phần dữ liệu khác nhau. Hình 5: Sự phân hoạch dữ liệu Tách theo chức năng: những chỉ thị dùng để giải quyết vấn đề được tách ra và phân phối vào các tác vụ. Như vậy, mỗi tác vụ sẽ thực hiện những hành động, chức năng khác nhau. Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 10 [...]... http://condor.cc.ku.edu/~grobe/docs/intro -MPI- C.shtml [6] http://www.eecs.wsu.edu/~cs460/cs550/Installing _MPI. pdf  Danh sách giáo trình và sách điện tử [7] Nguyễn Phi Khứ, CGrid computing, đại học Công Nghệ Thông Tin, đại học quốc gia thành phố Hồ Chí Minh Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 28 Tính Toán Lưới Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 29 ... Tương tự MPI_ Send, MPI_ Recv cũng là một hàm chờ để nhận hết dữ liệu trước khi thực hiện câu lệnh kế tiếp 6 MPI_ Finalize - Ngược lại với MPI_ Init, MPI_ Finalize dùng để kết thúc môi trường thực thi MPI - int MPI_ Finalize( void ) - Tất cả các tiến trình phải gọi hàm này trước khi kết thúc Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 20 Tính Toán Lưới 3 ỨNG DỤNG MPI VÀO LẬP TRÌNH SONG SONG 3.1... dụng MPI- 3) Tạo thư mục để giải nén và cài đặt MPI: $ cd ~; mkdir MPI $ cd MPI; mkdir mpi- 3.0rc1-install $ tar -xzvf mpich-3.0rc1.tar.gz -C /home/vmcentos /MPI Hình 10: Cấu trúc thư mục Vào thư mục MPI vừa giải nén để cấu hình và cài đặt: $ cd ~ /MPI/ mpich-3.0rc1 $ /configure -prefix=/home/vmcentos /MPI/ mpi-3.0rc1-install enableshared Chờ đến khi cấu hình hoàn tất: Tìm hiểu và ứng dụng MPI vào điện toán. .. đây: Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 26 Tính Toán Lưới - Tìm hiểu sâu hơn về MPI, về các chức năng cũng như hệ thống thư viện hàm của nó - Thiết kế và xây dựng hệ thống điện toán song song trên các máy thật, kết nối với nhau bằng mạng nội bộ hoặc internet - Tìm những vấn đề có thể được song song hóa mà chưa được hiện thực để hiện thực nó trên hệ thống (đa số là các bài toán đồ... communicator Các loại dữ liệu mà MPI có thể cung cấp cho datatype và tương ứng với kiểu dữ liệu của ngôn ngữ C: MPI datatype MPI_ INT MPI_ SHORT MPI_ LONG MPI_ FLOAT MPI_ DOUBL Kiểu của C int short long float double E MPI_ CHAR MPI_ BYTE char unsigned char Bảng 1: Kiểu dữ liệu của MPI Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 19 Tính Toán Lưới Khi MPI_ Send được gọi, nó sẽ tạm dừng chương trình đang gọi... số lượng tiến trình) Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 25 Tính Toán Lưới 4 KẾT LUẬN 4.1 Kết quả đạt được Qua quá trình học tập môn tính toán lưới cũng như tìm hiểu và làm bài thu hoạch, em đã rút ra được nhiều kiến thức và kinh nghiệm quý báu cho bản thân Đối với bài thu hoạch này, những kết quả đã đạt được: - Tìm hiểu thêm một bước nữa về điện toán song song, các mô hình lập trình... mpicc arraysum.c -o sumarray -I. /MPI/ mpi-3.0rc1-install/include/ -L. /MPI/ mpi-3.0rc1-install/lib -lmpich Sau đó, thêm thuộc tính thực thi vào “sumarray” $ chmod +x sumarray Tiếp theo, sao chép chương trình qua tất cả các máy khác (centos_m2) Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 24 Tính Toán Lưới $ scp sumarray centos_m2:sumarray 3.1.3 Kết quả thực thi và so sánh Ta có thể kiểm tra được... của MPI - Nhiều chức năng: có khoảng 440 hàm được định nghĩa trong MPI- 3, trong đó hỗ trợ hầu hết những chức năng của MPI- 1 và MPI- 2 - Tính sẵn có: tồn tại nhiều sự cài đặt khác nhau trên các lĩnh vực kể cả những lĩnh vực chung hay riêng Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 13 Tính Toán Lưới 2.2 Cài đặt môi trường MPI Trong phần này, em sẽ trình bày về cách cài đặt và cấu hình MPI. .. \n",my_pid,hn); Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 22 Tính Toán Lưới for(i=1;i> machines Giờ là lúc ta chạy thử một chương trình song song có sẵn trong . Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 2 Tính Toán Lưới NỘI DUNG Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 3 Tính Toán Lưới DANH SÁCH HÌNH DANH SÁCH BẢNG Tìm hiểu. thực thi này. Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 5 Tính Toán Lưới Hình 2: Điện toán song song 1.2. Tại sao chọn điện toán song song Những lý do chính điện toán song song được. Lưới DANH SÁCH HÌNH DANH SÁCH BẢNG Tìm hiểu và ứng dụng MPI vào điện toán song song Trang 4 Tính Toán Lưới 1. GIỚI THIỆU VỀ ĐIỆN TOÁN SONG SONG 1.1. Điện toán song song là gì? Các phần mềm truyền thống

Ngày đăng: 09/04/2015, 19:17

Từ khóa liên quan

Mục lục

  • 1. GIỚI THIỆU VỀ ĐIỆN TOÁN SONG SONG

    • 1.1. Điện toán song song là gì?

    • 1.2. Tại sao chọn điện toán song song

    • 1.3. Các mô hình lập trình song song

    • 1.4. Các bước để thiết kế những chương trình song song

    • 2. MPI (MESSAGE PASSING INTERFACE)

      • 2.1. MPI là gì?

      • 2.2. Cài đặt môi trường MPI

      • 2.3. Một số hàm MPI dùng trong lập trình song song

      • 3. ỨNG DỤNG MPI VÀO LẬP TRÌNH SONG SONG

        • 3.1. Tính tổng các số trong một mảng số nguyên

        • 3.1.1. Đặt vấn đề và phân tích

        • 3.1.2. Giải quyết vấn đề và mã chương trình

        • 3.1.3. Kết quả thực thi và so sánh

        • 4. KẾT LUẬN

          • 4.1. Kết quả đạt được

          • 4.2. Hạn chế

          • 4.3. Hướng phát triển

          • 5. TÀI LIỆU THAM KHẢO

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

Tài liệu liên quan