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

Báo cáo btl thuộc học phần tính toán hiệu năng cao đánh giá hiệu năng cao bài toán giải phương trình tuyến tính sử dụng mpi

40 0 0

Đ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 đề Đánh Giá Hiệu Năng Cao Bài Toán Giải Phương Trình Tuyến Tính Sử Dụng MPI
Tác giả Trịnh Đức Nhân, Vũ Quang Trường, Nguyễn Tiến Tú
Người hướng dẫn Hà Mạnh Đào
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo
Thành phố Hà Nội
Định dạng
Số trang 40
Dung lượng 1,1 MB

Nội dung

Nhận thấy được tầm quan trọngđó, nhóm chúng em đã quyết định chọn đề tài “Đánh giá hiệu năng cao bàitoán giải phương trình tuyến tính sử dụng MPI” với mong muốn nghiêncứu, tìm tòi, phát

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

-🙙🕮🙛 -BÁO CÁO BTL THUỘC HỌC PHẦN:

Tính toán hiệu năng cao

Đánh giá hiệu năng cao bài toán giải phương trình tuyến tính sử

dụng MPI Giảng viên hướng dẫn : Hà Mạnh Đào

Trang 2

M唃⌀C L唃⌀C

2.2 Tổng quan về lập trình song song với MPI 8

3.2 Giới thiệu các phương pháp giải phương trình tuyến tính song song 19

Trang 4

CHƯƠNG I: MỞ ĐẦU

1.1 Ý tưởng nghiên cứu

Hiện nay, nhu cầu tính toán trong lĩnh vực khoa học và công nghệ ngàycàng cao và trở thành một thách thức vì phương pháp xử lý tuần tự với một bộ

xử lý không thể đáp ứng được Vì vậy việc xây dựng các hệ thống máy tínhmạnh là một nhiệm vụ quan trọng trong lĩnh vực tính toán hiệu năng cao(High Performance Computing) Các bài toán phức tạp và đòi hỏi sự tính toánlớn luôn được tìm thấy và không ngừng tăng lên nhằm để giải quyết các bàitoán trong lĩnh vực khoa học và công nghệ Nhận thấy được tầm quan trọng

đó, nhóm chúng em đã quyết định chọn đề tài “Đánh giá hiệu năng cao bài toán giải phương trình tuyến tính sử dụng MPI” với mong muốn nghiên

cứu, tìm tòi, phát triển một chương trình sử dụng tính toán song song để giúp

xử lý bài toán một cách nhanh chóng và dễ dàng hơn

1.2 Những kiến thức và kỹ năng cần đạt được

➢ Kiến thức cơ bản về môn học tính toán hiệu năng cao

➢ Kiến thức cơ bản về MPI

➢ Kỹ năng làm việc nhóm

1.3.Yêu cầu về đầu ra sản phẩm nghiên cứu

➢ Tiết kiệm thời gian, công sức về xử lý bài toán

➢ Lưu trữ thông tin an toàn

➢ Thuận tiện cho việc sử dụng chương trình để xử lý bài toán phươngtrình tuyến tính

1.4 Ý tưởng về hoạt động của sản phẩm

Sản phẩm được tạo ra bằng phương pháp nghiên cứu, tìm tòi, phát triểnđồng thời cài đặt, chạy một chương trình giải bài toán phương trình tuyến tính

Trang 5

1.5 Các công cụ được sử dụng để làm sản phẩm

➢ Visual studio

Trang 6

CHƯƠNG II : KI쨃ĀN THỨC CƠ SỞ

2.1 Giới thiệu về tính toán song song

2.1.1 Tính toán song song là gì?

➢ Thông thường, phần mềm được viết cho tính toán tuần tự (serial

computation):

● Được chạy trên máy tính đơn với một bộ xử lý trung tâm (CPU)

● Một bài toán (problem) sẽ được chia thành một chuỗi các câu lệnh rời rạc

● Các câu lệnh được thực hiện một cách tuần tự

● Tại mỗi thời điểm chỉ thực hiện được một câu lệnh

➢ Ý nghĩa đơn giản nhất của tính toán song song là việc sử dụng đồng thời nhiều tài nguyên máy tính để giải quyết bài toán về tính toán

● Để chạy trên nhiều CPU

● Một bài toán được chia thành các phần riêng biệt mà có thể đượcgiải quyết đồng thời

● Mỗi phần được chia nhỏ hơn dưới một dãy các câu lệnh

● Các câu lệnh của mỗi phần thực thi đồng thời trên các CPU khác nhau

Tính toán song song là một hình thức tính toán trong đó nhiều

phép tính được thực hiện đồng thời, hoạt động trên nguyên tắc là những vấn đề lớn đều có thể chia thành nhiều phần nhỏ hơn, sau đó được giải quyết tương tranh ("trong lĩnh vực tính toán")

2.1.2 Tài nguyên

➢ Các nguồn tài nguyên tính toán có thể bao gồm:

● Một máy tính đơn với nhiều bộ vi xử lý (CPU);

Trang 7

● Một máy tính đơn với một hoặc nhiều CPU và một số tài nguyên chuyên dụng như GPU, FPGA …;

● Một số lượng tùy ý các máy tính được kết nối bởi một mạng máytính;

● Hoặc kết hợp của cả hai loại trên

2.1.3 Các vấn đề tính toán

➢ Vấn đề tính toán thường được thể hiện qua các đặc điểm như khả năng:

● Chia thành các phần riêng biệt các công việc để có thể giải quyết cùng một lúc;

● Thực thi nhiều câu lệnh chương trình tại nhiều thời điểm;

● Giải quyết bài toán trong thời gian ít hơn với nhiều tài nguyên tính toán hơn là thực thi chỉ trên một tài nguyên tính toán duy nhất

2.1.4 Các giới hạn của tính toán tuần tự

➢ Các giới hạn để tính toán tuần tự - Cả hai lý do giới hạn về vật lý và thực tiễn đặt ra những hạn chế đáng kể để xây dựng được ứng dụng chạy nhanh hơn trên máy tính tuần tự

➢ Tốc độ truyền dẫn – Tốc độ của máy tính tuần tự phụ thuộc trực tiếp vào tốc độ di chuyển của dữ liệu trên phần cứng

➢ Giới hạn để thu nhỏ - công nghệ bộ vi xử lý ngày càng cho phép tăng

số transistor được đặt trên các con chip Tuy nhiên, thậm chí ngay cả các transistor có kích thước là phân tử hoặc mức nguyên tử thì số lượngtích hợp trên thiết bị cũng sẽ đạt tới giới hạn

➢ Hạn chế về kinh tế - Giá thành sẽ càng đắt khi tạo ra một bộ đơn vi xử

lý (VXL) chạy nhanh Sẽ kinh tế hơn nếu sử dụng một số lượng bộ vi

xử lý nhanh vừa phải nhưng có thể đạt được hiệu suất như bộ VXL đơnchạy nhanh (hoặc tốt hơn)

2.1.5 Các kiến trúc bộ nhớ

Trang 8

➢ Bộ nhớ phân tán - Distributed Memory

➢ Lai bộ nhớ chia sẻ và phân tán - Hybrid Distributed Shared Memory

2.1.6 Các mô hình lâ ̣p trình song song

➢ Mô hình chia sẻ bộ nhớ

➢ Mô hình luồng (Thread)

➢ Mô hình gửi thông điệp (MPI)

➢ Mô hình song song dữ liệu

MPI được phát triển bởi một diễn đàn mở quốc tế, bao gồm các đạidiện từ ngành công nghiệp, các học viện và phòng thí nghiệm của chính phủ

Nó đã nhanh chóng được chấp nhận rộng rãi bởi được thiết kế cẩn thận chophép hiệu suất tối đa trên một loạt các hệ thống, và nó dựa trên truyền thôngđiệp, một trong những mô hình mạnh mẽ nhất và được sử dụng rộng rãi cholập trình các hệ thống song song.Những nỗ lực cho MPI bắt đầu vào mùa hènăm 1991, khi một nhóm nhỏ các nhà nghiên cứu bắt đầu thảo luận tại mộtnơi hẻo lánh trên núi ở Úc.Nội dung đó lại được thảo luận tại hội thảo “tiêuchuẩn cho truyền thông điệp trong một môi trường bộ nhớ phân tán”(Standards for Message Passing in a Distributed Memory environment) tổchức vào ngày 29 – 30 tháng 4 năm 1992 tại Williamsburg, Virginia Tại hộithảo này, các tính năng cơ bản cần thiết cho một MPI chuẩn đã được thảoluận, mà một nhóm cộng tác đã được thành lập để tiếp tục quá trình tiêuchuẩn hoá Jack Dongarra, Rolf Hempel Hempel, Tony Hey và DavidW.Walker đưa ra một bản dự thảo sơ bộ được biết đến như MPI-1 trong tháng

Trang 9

11 năm 1992 Trong tháng 11 năm 1992, một cuộc họp của nhóm cộng tácMPI đã được tổ chức tại Minneapolis, mà tại đó hội thảo quyết định đặt cácquá trình tiêu chuẩn hoá trên một cơ sở chính thức hơn Nhóm cộng tác MPI

đã gặp nhau 6 tuần một lần trong suốt 9 tháng đầu của năm 1993 Bản dự thảochuẩn MPI đã được trình bày tại hội nghị Siêu máy tính năm 93 trong tháng

11 năm 1993

Sau một thời gian nhận những ý kiến đóng góp từ cộng đồng, một số kết quả được thay đổi trong MPI, phiên bản 1.0 của MPI được phát hành vào tháng 6 năm 1994 Thông qua những cuộc gặp gỡ và thư điện tử, các nhà nghiên cứu đã thảo luận với nhau thành lập diễn đàn MPI, trong đó tất cả các thành viên của cộng đồng điện toán hiệu suất cao đều có thể đăng ký làm thành viên của diễn đàn

MPI đã thu hút sự tham gia khoảng 80 người từ 40 tổ chức, chủ yếu là

ở Mỹ và Châu Âu Hầu hết các nhà cung cấp chính của máy tính đều đượctham gia vào MPI cùng với các nhà nghiên cứu từ các trường đại học, phòngthí nghiệm của chính phủ và ngành công nghiệp

2.2.2 Một số đặc điểm của MPI

MPI là một giao thức truyền thông độc lập với ngôn ngữ dùng để lậptrình máy tính song song MPI hỗ trợ cả giao tiếp điểm – điểm và giao tiếp tậpthể Mục tiêu của MPI là hiệu suất, khả năng mở rộng và khả năng di dộngcao.MPI thường xuyên chạy trên các máy tính chia sẻ bộ nhớ.Mặc dù MPIthuộc về lớp thứ 5 và lớp cao hơn của mô hình OSI, nhưng những triển khai

có thể bao gồm hầu hết các lớp, với socket và TCP (Transmission ControlProtocol) được dùng trong tần vận chuyển.Hầu hết các triển khai MPI baogồm một thiết lập định tuyến riêng có thể được gọi trực tiếp từ C, C++,Fortran hay bất kỳ ngôn ngữ nào có giao diện với các thư viện, bao gồm C#,Java hoặc Python Những ưu điểm ucar MPI vượt qua những thư viện truyềnthông điệp cũ là tính di động (MPI có thể được triển khai cho hầu hết các kiếntrúc bộ nhớ phân tán) và tốc độ (MPI thực hiện nguyên tắc tối ưu hoá cho

Trang 10

phần cứ mà nó chạy).

MPI sử dụng LIS (Language Independent Specifications) để gọi vàràng buộc ngôn ngữ Phiên bản đầu tiên được phát hành chỉ định ràng buộcANSI C và Fortran 77 cùng với LIS Năm 2008, chuẩn MPI-1.3 chứa khoảng

128 chức năng, đây cũng là phát hành cuối cùng của seri MPI-1 trong năm2008

Phiên bản MPI-2.2 bao gồm những tính năng nới như là I/O song song,quản lý tiến trình động và điều hành bộ nhớ từ xa LIS của MPI-2 thiết lậphơn 500 hàm và cung cấp ràng buộc ngôn ngữ cho ANSI C, ANSI C++ vàANSI Fortran (Fortran 90) Khả năng tương tác đối tượng cũng được thêmvào để cho phép lập trình truyền thông điệp bằng ngôn ngữ hỗn hợp dễ dànghơn

MPI cung cấp mô hình liên kết ảo, đồng bộ hoá và chức năng liên lạcgiữa một tập hợp các tiến trình (đã được ánh xạ tới các nút/máy chủ/máy tính

cụ thể) trong một ngôn ngữ độc lập, với cú pháp ngôn ngữ đặc trưng (ràngbuộc), cùng với một vài tính năng ngôn ngữ đặc trưng Những chương trìnhMPI luôn luôn làm việc với các tiến trình, nhưng những lập trình viên thườngxem các tiến trình như là những bộ vi xử lý Thông thường, để đạt hiệu suấttối đa, mỗi CPU (hoặc 1 nhân trong một máy tính đa nhân) sẽ được giao chỉmột tiến trình duy nhất.Những chức năng thư viện MPI bao gồm (không giớihạn) những hoạt động nhận/gửi loại điểm – điểm, lựa chọn giữa mô hình xử

lý logic Cartesian hoặc mô hình xử lý logic đồ thị tương đồng, trao đổi dữliệu giữa những cặp tiến trình, kết hợp các kết quả từng phần của tính toán(thu thập và giảm các hoạt động), đồng bộ hoá các nút cũng như thu thậpthông tin liên quan đến mạng như số lượng của tiến trình trong phiên tínhtoán, nhận dạng bộ vi xử lý hiện tại mà bộ vi xử lý được ánh xạ, những tiếntrình lân cận truy cập trong một mô hình liên kết logic

2.2.3 Mục tiêu thiết kế của MPI bao gồm:

➢ Thiết kế một giao diện lập trình ứng dụng Mặc dù MPI gần đây được

Trang 11

sử dụng như một chương trình dịch và một thư viện ở thời gian chạy,nhưng thiết kế của MPI chủ yếu phản ánh nhu cầu nhận thức của nhữngngười lập trình ứng dụng.

➢ Cho phép truyền thông một cách hiệu quả: tránh việc sao chép dữ liệu

từ bộ nhớ sang bộ nhớ và cho phép gối chồng (overlap) giữa các tínhtoán và truyền thông và offload để truyền thông đồng xử lý khi có thể

➢ Cho phép thực thi trên một môi trường không đồng nhất

➢ Có thể được gắn kết dễ dàng vào trong các chương trình ngôn ngữ C vàFortran Cung cấp một giao thức truyền thông tin cậy: người dùngkhông cần phải lo lắng tới thất bại trong truyền thông Các thất bại nàyđược xử lý bởi các hệ thống truyền thông cơ sở phía sau

➢ Định nghĩa một giao thức không quá khác biệt so với các môi trườngsong song hiện tại như PVM (Parallel Virtual Machine), NX, Express

và cung cấp các mở rộng cho phép độ linh hoạt cao hơn

➢ Định nghĩa một giao thức có thể được thực thi trên các môi trường(flatform) của nhiều nhà cung cấp mà không cần thay đổi nào đáng kểtrong truyền thông cơ sở và phần mềm hệ thống

➢ Ngữ nghĩa của giao thức là độc lập với ngôn ngữ

➢ Giao thức được thiết kế cho phép sử dụng luồng một cách an toàn

* Các tính năng chủ yếu của MPI

➢ Một lượng lớn các hàm truyền thông điểm – điểm (phong phú hơn rấtnhiều so với các môi trường lập trình song song khác)

➢ Một lượng lớn các thủ tục truyền thông chọn lọc, được sử dụng để giaotiếp giữa một nhóm các bộ xử lý trong hệ thống

➢ Một ngữ cảnh truyền thông hỗ trợ cho việc thiết kế các thư viện phầnmềm song song

➢ Có khả năng xác định các topology truyền thông

➢ Có khả năng định nghĩa các kiểu dữ liệu mới để mô tả các thông báodựa trên các dữ liệu không liên tục

Trang 12

* Các tiến trình

➢ Một chương trình MPI bao gồm các bộ xử lý độc lập, thực thi các mã

lệnh riêng của chúng trong một mô hình MIMD (MultipleInstruction Multiple Data) Các tập lệnh được thực thi bởi các bộ xử

lý không nhất thiết phải giống nhau, việc truyền thông giữa các bộ xử

lý được thực hiện thông qua việc gọi các hàm truyền thông củaMPI

➢ MPI không định rõ kiểu thực thi cho mỗi bộ xử lý Bộ xử lý A có thể

chạy tuần tự, hoặc có thể thực thi ở dạng đa luồng với các luồngđược kích hoạt đồng thời

➢ Điều này thực hiện được do tính chất luồng an toàn (thread-safe) của

MPI bằng cách tránh sử dụng các trạng thái tuyệt đối

* Ứng dụng MPI

Một ứng dụng MPI có thể được thực thi như là một tập các nhiệm vụ truyền thông đồng thời Một chương trình bao gồm các đoạn mã của người lập trình được liên kết với các hàm thư viện được cung cấp bởi phần mềm MPI Mỗi nhiệm vụ được chỉ định một thứ hạng (rank) duy nhất trong khoảng1-> n-1 với các ứng dụng có n nhiệm vụ Các hạng này được sử dụng để xác định các nhiệm vụ MPI khác nhau trong việc gửi và nhận tin cũng như thực hiện các thao tác truyền thông nói chung Nhiệm vụ MPI có thể chạy trên cùng bộ xử lý hoặc các bộ xử lý khác nhau một cách đồng thời Lợi ích của các rank là làm cho thao tác phối hợp độc lập với vị trí vật lý của các thành phần

2.2.4 Năng lực tính toán

Việc song song hóa một chương trình nhằm làm cho chương trình đó chạy nhanh hơn, tuy nhiên chương trình đó sẽ chạy nhanh hơn bao nhiêu lần? Định luật Amdahl’s [3] cho phép ta xác định điều này Giả sử xét

về khía cạnh thời gian chạy chương trình, một phần p của chương trình

có thể song song hóa và phần 1-p còn lại buộc phải chạy tuần tự Trong

Trang 13

trường hợp lý tưởng, nếu thực thi chương trình sử dụng n bộ xử lý, thời gian chạy chương trình sẽ là 1-p + p/n của thời gian chạy chương trình một cách tuần tự Đây là hệ quả trực tiếp của định luật Amdahl áp dụng cho trường hợp thực thi lý tưởng.

Ví dụ: nếu 80% chương trình có thể được song song hóa, và ta có 4 bộ

xử lý, thời gian chạy song song sẽ là: 1 - 0.8 + 0.8/4 = 0.4 tức là bằng 40%thời gian chạy tuần tự

Hình 2.1: khả năng tăng tốc độ tính toán, trường hợp lý tưởng

Đối với chương trình trên, thời gian chạy song song sẽ không thể nào nhỏ hơn 20% thời gian chạy tuần tự cho dù ta sử dụng số lượng vô cùng lớn các bộ xử lý

Trên thực tế, khi chạy một chương trình song song, thường xuất hiện các chi phí truyền thông và việc phân công công việc không cân bằng giữa các bộ xử lý Do đó thời gian chạy chương trình sẽ là:

Trang 14

Hinh 2.2: Khả năng tăng tốc độ tính toán, trường hợp thực tế.

Do vậy để tăng tốc độ của chương trình ta cần:

● Tăng tỉ lệ (thành phần) được song song hóa của chương trình

● Phân công công việc một cách công bằng cho các bộ xử lý

● Giảm tới mức tối thiểu thời gian truyền thông

2.2.5 Mô hình lập trình

MPI ra đời mục đích dành cho các hệ thống máy tính có bộ nhớ phân tán Tuy nhiên MPI cũng có thể triển khai được trên hệ thống máy tính có bộ nhớ chia sẻ

Trang 15

● Với mỗi Communicator, mỗi processes có một ID nhất định.

● Rank được bắt đầu từ 0

● Sử dụng rank trong các message để chỉ ra nguồn (source) và đích(destination)

➢ Các hàm quản lý môi trường

● MPI_Comm_size : Xác định số lượng process trong nhóm ứng với một Communicator (thường là MPI_COMM_WORLD)int MPI_Comm_size(MPI_Comm comm,int *size )

● MPI_Comm_rank : Trả về id của Communicator hiện tại

int MPI_Comm_rank (comm,&rank)

Trang 16

● MPI_Abort : Hủy bỏ tất cả các MPI processes gắn với một Communicator

int MPI_Abort(MPI_Comm comm,int errorcode)

● MPI_Finalize : Kết thúc môi trường thực thi MPI

int MPI_Finalize()

➢ Ví dụ:

#include "mpi.h"

#include int main(int argc, char *argv[]) {

int numtasks, rank, rc;

/******* do some work *******/

MPI_Finalize();

}

Trang 17

2.2.7 Giao tiếp Point to Point

➢ MPI Point to Point là giao tiếp giữa hai và chỉ hai processes với nhau

➢ Khi một Process thực hiện giao thức truyền tin (send) thì nhiệm vụ khác phải có giao thức nhận tin (receive) tương ứng

➢ Các hàm trong Point-to-Point

2.2.8 Tham số trong các hàm

Trang 18

CHƯƠNG III: GIẢI QUY쨃ĀT BÀI TOÁN

3.1 Phát biểu bài toán

Hệ phương trình tuyến tính là tập hợp của hai hoặc nhiều phương

trình tuyến tính có cùng biến số giống nhau Phương trình tuyến tính có thể cómột biến, hai biến hoặc ba biến Dưới đây là dạng tổng quát của hệ với m phương trình và n ẩn

Dạng tổng quát hệ phương trình tuyến tính:

Trong đó:

Ký hiệu: Như chúng ta đã biết, hệ phương trình tuyến tính có thể viết

dưới dạng ma trận Do đó, hệ phương trình tuyến tính n biến có thể được viết dưới dạng:

Trang 19

3.2 Giới thiệu các phương pháp giải phương trình tuyến tính song song

Trang 20

➢ Nếu thì hệ phương trình có nghiệm duy nhất xác định bởi côngthức sau: , trong đó chính là ma trận thu được ma trận A

Hệ quả: Hệ phương trình tuyến tính thuần nhất n phương trình n ẩn có

nghiệm không tầm thường khi và chỉ khi định thức của ma trận các hệ

Ngày đăng: 22/03/2024, 22:37

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

TÀI LIỆU LIÊN QUAN

w