Tải bản đầy đủ (.pdf) (30 trang)

báo cáo thực nghiệm tính toán hiệu năng cao đánh giá hiệu năng bài toán giải hệ phương trình tuyến tính sử dụng openmp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.28 MB, 30 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

Hà Nội - Năm 2022

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>MỤC LỤC</b>

<b>LỜI NĨI ĐẦU...3</b>

<b>DANH MỤC HÌNH ẢNH...5</b>

<b>CHƯƠNG 1: CƠ SỞ LÝ THUYẾT...6</b>

<b>1.1. Giới thiệu về tính tốn song song...6</b>

<b>1.1.1. Thế nào là lập trình, tính tốn song song?...6</b>

<b>1.1.2. Tại sao cần tính tốn song song?...7</b>

<b>1.1.3. Tính tốn song song để làm gì?...7</b>

<b>1.1.4. So sánh tính tốn tuần tự và lập trình tính tốn song song...8</b>

<b>1.2. Một số vấn đề liên quan đến lập trình và tính tốn song song...8</b>

<b>1.3.2. Mơ hình gửi thơng điệp...11</b>

<b>1.3.3. Mơ hình song song dữ liệu...13</b>

<b>CHƯƠNG 2: TỔNG QUÁT BÀI TOÁN...21</b>

<b>2.1. Phát biết bài bài toán...21</b>

<b>2.2. Giải pháp thực hiện bài toán...21</b>

<b>2.2.1. Nội dung phương pháp...21</b>

<b>2.2.2. Thiết kế thuật toán tuần tự...22</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>LỜI NÓI ĐẦU</b>

<b>1. Giới thiệu</b>

Ngày nay với sự phát triển của cơng nghệ thơng tin, các máy tính đa nhân,đa lõi (multiple processor) đang dần dần thay thế cho bộ xử lý đơn lõi (singleprocessor) vì các lý do khác nhau như:

- Tốc độ của bộ xử lý đơn lõi (single processor) đã đến giới hạn. - Đáp ứng nhu cầu tính tốn nhanh của người dùng.

- Giải quyết các bài toán lớn mà với bộ xử lý đơn lõi khơng đáp ứngđược.

- Giảm chi phí đầu tư nhưng vẫn đạt hiệu quả trong tính tốn.

Tuy nhiên với lối lập trình truyền thống là lập trình tuần tự thì hầu hết cácchương trình ứng dụng đều được lập trình, thiết kế trên bộ xử lý đơn lõi(single processor). Như vậy sẽ không khai thác hết hiệu năng tính tốn mà bộxử lý đa nhân, đa lõi mang lại đồng thời khó đáp ứng được yêu cầu tính tốncủa người dùng.

Một thách thức, một u cầu đặt ra là làm thế nào để khai thác được hiệunăng tính tốn mà bộ xử lý đa nhân, đa lõi mang lại. Khơng cịn cách nàokhác là thay vì lập trình, tính tốn tuần tự chuyển sang lập trình, tính tốnsong song. Lập trình, tính tốn song song ra đời nhằm khai thác, phát huyhiệu năng tính tốn của bộ xử lý đa lõi, đồng thời giảm thời gian tính tốn củacác bài tốn có khối lượng dữ liệu lớn.

<b>2. Đặt vấn đề</b>

Các bài toán về ma trận nói chung và bài tốn giải hệ phương trình tuyếntính ln là bài tốn kinh điển đã được nghiên cứu rất nhiều và ứng dụngtrong những hệ thống chuyên biệt. Rất nhiều nghiên cứu đã cải tiến nhữngthuật toán và tối ưu thuật tốn về khơng gian và thời gian xử lý. Với sự bùngnổ thông tin và sự phát triển của cơng nghệ thơng tin, u cầu bài tốn đặt ralà làm thế nào để giải quyết vấn đề giải một hệ phương trình tuyến tính vớinguồn dữ liệu lớn và phân tán, đáp ứng được mục tiêu rút ngắn thời gian tínhtốn.

<b>3. Mục đích</b>

Đánh giá hiệu năng bài tốn giải hệ phương trình tuyến tính sử dụngOpenMP.

<b>4. Nội dung</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Trên cơ sở sử dụng thư viện OpenMP trong việc giảm thời gian tính tốncủa bài tốn tìm số ngun tố có số chữ số lớn. Nội dung của bài báo cáo baogồm:

- Chương 1: Tìm hiểu các cơ sở lý thuyết về tính tốn song song và lậptrình song song.

- Chương 2: Phát biểu tổng quan về bài toán, đưa ra giải pháp thực hiệnbài tốn.

- Chương 3: Tiến hành cài đặt chương trình và đánh giá hiệu năng, năngsuất tính tốn.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>DANH MỤC HÌNH ẢNH</b>

<b>Hình 1. 1. Tính tốn tuần tự...6</b>

<b>Hình 1. 2. Tính tốn song song...6</b>

<b>Hình 1. 3. Mơ hình gửi thơng điệp...12</b>

<b>Hình 1. 4. Mơ hình song song dữ liệu...13</b>

<b>Hình 2. 3. Giới hạn speedup theo tỉ lệ song song và số bộ vi xử lý...25</b>

<b>Hình 3. 1. Cấu hình máy tính thực hiện tính tốn...28</b>

<b>Hình 3. 2. Kết qua tính tốn với ma trận vng kích thước 100...31</b>

<b>Hình 3. 3. Kết quả tính tốn với ma trận vng kích thước 500...31</b>

<b>Hình 3. 4. Kết quả tính tốn với ma trận vng kích thước 1000...32</b>

<b>Hình 3. 5. Kết quả tính tốn với ma trận vng kích thước 1500...32</b>

<b>Hình 3. 6. Kết quả tính tốn với ma trận vng kích thước 2000...33</b>

<b>Hình 3. 7. Kết quả tính tốn với ma trận vng kích thước 2500...33</b>

<b>Hình 3. 8. Biểu đồ hệ số SpeedUp theo kích thước ma trận...34</b>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>CHƯƠNG 1: CƠ SỞ LÝ THUYẾT</b>

<b>1.1. Giới thiệu về tính tốn song song1.1.1. Thế nào là lập trình, tính tốn song song?</b>

Tính tốn song song là một hình thức tính tốn trong đó nhiều phéptính được thực hiện đồng thời, hoạt động truyên nguyên tắc là những vấn đềlớn đều có thể chia thành nhiều vấn đề nhỏ hơn, sau dó được giải qut tươngtranh (“trong lĩnh vực tính tốn”).

Có nhiều hình thức khác nhau của tính tốn song song: song song dữliệu, song song cấp lệnh và song song tác vụ. Song song đã được sử dụngnhiều năm qua chủ u trong lĩnh vực tính tốn hiệu năng cao. Tính tốn songsong đã trở thành mơ hình thống trị trong lĩnh vực kiến trúc máy tính, phầnlớn là dưới dạng bộ xử lý đa nhân.

Thông thường, phần mềm được viết cho tính tốn tuần tự, được chạytrên các máy tính đơn với 1 bộ xử lý trung tâm. Một bài toán được chia thànhmột chuỗi các câu lệnh rời rạc, các câu lệnh này sẽ được thực hiện một cáchtuần tự, và tại mỗi thời điểm chỉ thực hiện được 1 câu lệnh.

<b>Hình 1. 1. Tính tốn tuần tự</b>

Ý nghĩa đơn giản nhất của tính tốn song song là việc sử dụn đồng thờinhiều tài nguyên máy tính để giải quyết bài tốn về tính tốn. Để chạy trênnhiều CPU, một bài toán lớn được chia thành các bài tốn nhỏ riêng biệt màcó thể giải quyết đồng thời, mỗi phần lại được chia nhỏ hơn dưới dạng dãycá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ácnhau.

<b>Hình 1. 2. Tính tốn song song</b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Vấn đề của tính toán song song thường được thể hiện qua các đặc điểmnhư 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ếtcù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 tốn trong thời gian ít hơn và nhiều tài nguyên máytính hơn là thực thi trê một tài ngun duy nhất.

<b>1.1.2. Tại sao cần tính tốn song song?</b>

Theo xu hướng phát triển của công nghệ thông tin, các bộ xử lý đanhân, đa lõi (multiple processor) đang dần dần thay thế các bộ xử lý đơn lõi(single processor) tuy nhiên với lối lập trình truyền thống (lập trình tuần tự),các câu lệnh, các quá trình xử lý được thực hịên một cách lần lượt, tuần tựnhư vậy sẽ không phát huy hết công năng, hiệu năng của bộ vi xử lý đa nhân,đa lõi (multiple processor). Lập trình, tính tốn song song ra đời như một lờigiải cho yêu cầu, thách thức đặt ra là làm thế nào để phát huy công năng, hiệunăng của bộ đa xử lý (multiple processor).

Trên thực tế, có rất nhiều bài tốn với dữ liệu lớn, độ phức tạp tính tốncao mà địi hỏi thời gian xử lý ngắn, độ chính xác cao. Vd: các bài toán liênquan tới xử lý ảnh, xử lý tín hiệu, dự báo thời tiết, mơ phỏng giao thông, môphỏng sự chuyển động của các phân tử, ngun tử, mơ phỏng bản đồ gen, cácbài tốn liên quan đến cơ sở dữ liệu và khai thác cơ sở dữ liệu. . . với bộ xử lýđơn lõi thì khó có thể thực hiện và cho kết quả như mong muốn được.

Lập trình, tính tốn song song là lời giải đáp cho bài toán tăng hiệunăng xử lý đồng thời rút ngắn thời gian xử lý tính tốn của người dùng.

Việc tính tốn song song có thể:

- Tận dụng các nguồn tài nguyên như khai thác tài ngun tính tốncó sẵn trên mạng diện rộng, hoặc thậm chí sử dụng internet khi cáctài nguyên cục bộ hạn chế.

- Tiết kiệm chi phí – sử dụng nhiều tài ngun máy tính “rẻ” thay vìđầu tư một hệ thống siêu máy tính đắt đỏ.

- Khác phục những hạn chế về bộ nhớ - các máy tính đơn có tàingun bộ nhỡ rất hữu hạn. Đối với những bài toán lớn, sử dụng bộnhớ của nhiều máy tính có thể vượt qua trở ngại này.

<b>1.1.3. Tính tốn song song để làm gì?</b>

Phát huy cơng năng, hiệu năng của bộ xử lý đa nhân, đa lõi.

Giải quyết một số bài toán lớn mà bộ xử lý đơn lõi (single processor)không thực hiện được. Tăng hiệu quả tính tốn đồng thời giảm thời gian tínhtốn.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Tính tốn song song là sự tiến hóa của tính tốn tuần tự nhằm cố gắngmô phỏng các trạng thái diễn ra trong thế giới tự nhiên mà nó rất phức tạp,các sự kiện liên quan xảy ra cùng một thời điểm, nhưng trong cùng một chuỗisự kiện như:

- Quỹ đạo hành tính và thiên hà- Các mơ hình thời tiết cà đại dương.- Kiến tạo địa chất.

- Dây chuyền lắp ráp ơ tơ.…

Tính tốn song song có thể được coi là “tính tốn hiệu năng cao” và làđộng lực để mô phỏng các hệ thống phức tạp để giải quyết các bài toán lớnnhư:

- Dự báo thời tiết và khí hậu.- Các phản ứng hóa học và hạt nhân.- Các bài tốn sinh học và gen người.- Các hoạt động địa chất.

- Các mạch điện tử.

- Các thiết bị cơ khí phức tạp.…

<b>1.1.4. So sánh tính tốn tuần tự và lập trình tính tốn song song.Lập trình tính tốn tuần tựLập trình tính tốn song song</b>

- Chương trình ứng dụng chạytrên bộ xử lý đơn (singleprocessor).

- Các chỉ thị lệnh được bộ xửlý (CPU) thực hiện một cách lầnlượt, tuần tự.

- Mỗi chỉ thị lệnh chỉ thựcthiện trên duy nhất một thànhphần dữ liệu.

- Lập trình viên chỉ cần đảmbảo viết đúng mã lệnh theo giảithuật chương trình là chươngtrình có thể dịch, chạy và cho rakết quả.

- Thường được áp dụng đối vớicác bài tốn có dữ liệu nhỏ, độ

- Chương trình ứng dụng chạytrên hai hoặc nhiều bộ xử lý.- Các chỉ thị lệnh được các bộvi xử lý thực hiện một cách songsong, đồng thời.

- Mỗi chỉ thị lệnh có thể thaotác trên hai hoặc nhiều thànhphần dữ liệu khác nhau.

- Ngoài việc đảm bảo viếtđúng mã lệnh theo giải thuật, lậptrình viên cịn phải chỉ ra trongchương trình đoạn mã nào đượcthực hiện song song, đồng thời. - Thường được áp dụng đốivới các bài tốn có dữ liệu lớn,

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

phức tạp bình thường và thời giancho phép.

độ phức tạp cao và thời gianngắn.

<b>1.2. Một số vấn đề liên quan đến lập trình và tính tốn song song.1.2.1. Định luật Amdal’s</b>

Định luật được Amdahl s phát biểu vào năm 1967 nhằm đánh giá hiệu‟năng của việc tính tốn song song.

Định luật được phát biểu như sau: Hiệu năng tính tốn của chươngtrình được định nghĩa là phân số của đoạn mã mà được thực thi song song.

- Nếu khơng có đoạn mã được thực thi song song, P = 0 speedup = 1(Không cải thiện được tốc độ).

- Nếu tất cả các đoạn mã được thực thi song song, P = 1 speedup tănglên đến vô cùng.

- Nếu 50% đoạn mã được thực thi song song, speedup đạt giá trị max.Công thức nêu lên mối quan hệ giữa hiệu năng tính tốn với bộ xửlý.

Trong đó:

- P: phân số song song- N: số bộ xử lý- S: Phân số tuần tự

<b>1.2.2. Cân bằng tải</b>

Thơng thường trong q trình thực hiện xử lý song song, dữ liệu đượcphân bố trên các bộ nhớ cục bộ của các bộ vi xử lý, khi đó khối lượng côngviệc cần phải phân phối hợp lý trong suốt q trình tính tốn. Tuy nhiên trongthực tế khơng phải lúc nào điều này cũng được thực hiện, vì vậy sẽ xảy ratrường hợp một số bộ xử lý thực hiện quá tải trong khi đó một số bộ xử lý lạikhơng thực hiện hết khả năng tính tốn của mình. Giải pháp được đặt ra là cânbằng tải động để phân phối công việc cho phù hợp với các bộ xử lý.

Thông thường khi phân phối xong công việc cho các bộ xử lý, quá trìnhcân bằng tải động sẽ thực hiện theo các bước sau đây:

- Giám sát hiệu năng của mỗi bộ xử lý.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

- Trao đổi thông tin trạng thái giữa các bộ xử lý.- Tính tốn và ra quyết định phân phối lại công việc.- Thực hiện chuyển đổi dữ liệu cho các bộ xử lý.

Để thực hiện được điều này có rất nhiều thuật tốn được đưa ra tuynhiên chúng được phân lớp thành các lớp sau:

- Cân bằng tải tập trung: Nhằm đưa ra các quyết định có tính chấttổng thể trong việc thực hiện phân phối các công việc cho các bộ xửlý. Các thuật toán trong lớp này sử dụng thơng tin hệ thống có tínhchất tồn cục để lưu lại trạng thái của các bộ xử lý. Các thơng tinnày sẽ cho phép thuật tốn phân phối lại công việc cho các bộ xử lýmột cách dễ dàng. Tuy nhiên khối lượng công việc tăng theo tỷ lệthuận với số lượng các bộ xử lý do vậy cần phải có số lượng lớn bộnhớ trên các bộ xử lý để lưu trữ thơng tin. Vì vậy các thuật tốnthuộc lớp này ít được sử dụng.

- Cân bằng tải phân tán hoàn toàn: Trong chiến lược này mỗi bộ xửlý có một bản sao về thơng tin trạng thái của hệ thống. Các bộ xử lýtrao đổi thông tin trạng thái với nhau và sử dụng các thông tin nàyđể làm thay đổi một cách cục bộ việc phân chia công việc. tuy nhiêncác bộ xử lý chỉ có thơng tin cục bộ nên việc cân bằng tải khơng tốtbằng các thuật tốn cân bằng tải tập trung.

- Cân bằng tải phân tán một nửa: Các thuật toán này chia các bộ xửlý ra thành từng miền, mỗi miền sử dụng thuật toán cân bằng tải tậptrung để phân chia khối lượng công việc cho các bộ xử lý.

<b>1.2.3. Sự bế tắc</b>

Sự bế tắc xảy ra khi có hơn một hoặc nhiều bộ xử lý cùng sử dụngchung một tài ngun hệ thống mà khơng có sự kiểm soát tốt. Sự bế tắc xảy ratrong các hệ điều hành đa nhiệm, các hệ thống đa bộ xử lý và đa máy tính.

Đối với các hệ thống đa máy tính, sự bế tắc phổ biến là bế tắc vùngđệm. Sự bế tắc vùng đệm xảy ra khi một tiến trình đợi một thơng điệp màthơng điệp này có thể khơng bao giờ nhận được khi vùng đệm của hệ thống đãbị đầy.

Các điều kiện gây lên sự bế tắc:

- Sự loại trừ lẫn nhau: Mỗi tiến trình có sự độc quyền khi sử dụng tàingun riêng của nó.

- Khơng có sự ưu tiên: Mỗi tiến trình khơng bao giờ giải phóng tàingun mà tiến trình đó đang chiếm giữ cho đến khi khơng cịn sửdụng chúng nữa.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

- Sự chờ đợi tài nguyên: Mỗi tiến trình đang chiếm giữ tài nguyêntrong khi lại đợi tiến trình khác giải phóng tài ngun cho chúng.- Sự chờ đợi giữa các tiến trình: Tiến trình đợi tài nguyên mà tiến

trình kế tiếp đang chiếm giữ mà tài ngun đó khơng được giảiphóng.

Một số cách khắc phục:

Cách thứ nhất ta sử dụng là dị tìm sự bế tắc khi chúng xảy ra và khôiphục lại. Một cách khác là sử dụng các thông tin yêu cầu tài nguyên của cáctiến trình để phân phối tài nguyên cho hợp lý tránh rơi vào tình trạng bế tắc.Cách thứ ba là ngăn cấm không để xảy ra đồng thời ba điều kiện cuối trongcác điều kiện nảy sinh bế tắc.

<b>1.3. Tổng quan về các mơ hình tính tốn song song</b>

Có nhiều mơ hình lập trình song song thường được sử dụng như:- Mơ hình chia sẻ bộ nhớ.

- Mơ hình luồng.- Mơ hình gửi thơng điệp.- Mơ hình song song dữ liệu.- Mơ hình lai giữa các mơ hình.

Các mơ hình lập trình song song tồn tại như một sự trừu tượng hóa trênkiến trúc phần cứng và phần mềm. Mặc dù khơng rõ ràng, các mơ hình nàykhơng cụ thể cho một kiểu kiến trúc máy tính hay bộ nhớ nào đặc biệt. Thựctế với bất ký mô hình nào về mặt lý thuyết đều có thể áp dụng cho bất kỳ kiếntrúc phần cứng.

<b>1.3.1. Mơ hình chia sẻ bộ nhớ</b>

Trong mơ hình lập trình chia sẻ bộ nhớ, các tác vụ chia sẻ không gianđịa chỉ trung mà chúng có thể đọc/ghi khơng đồng bộ. Các kỹ thuật khác nhaunhư lock/semaphore có thể được sử dụng để điều khiển truy cập tới vùng nhớchia sẻ.

Một thuận lợi của mơ hình này từ khía cạnh của lập trình viên là khơngcó khái niệm về quyền sở hữu dữ liệu nên không cần phải xác định một cáchrõ ràng về giao tiếp dữ liệu giữa các tác vụ. Vì vậy, phát triển chương trình cóthể được đơn giản hóa.

Một nhược điểm quan trong về hiệu suất là nó trở nên khó khăn trongviệc hiểu và quản lý dữ liệu cục bộ.

<b>1.3.2. Mơ hình gửi thơng điệp</b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>Hình 1. 3. Mơ hình gửi thơng điệp</b>

Mơ hình truyền thơng điệp được định nghĩa là: - Đặt q trình xử lý sử dụng một bộ nhớ cục bộ.

- Các bộ xử lý trao đổi với nhau thông qua việc gửi và nhận các thôngđiệp.

- Sự di chuyển dữ liệu yêu cầu sự kết hợp thao tác thực hiện của mỗiq trình xử lý (truyền nhận thơng điệp một cách nhịp nhàng). Lập trình với mơ hình truyền thông điệp sẽ liên kết tới các thư viện đểquản lý dữ liệu trao đổi giữa các bộ xử lý. Các thư viện này có sẵn trong mộtsố ngơn ngữ lập trình.

Mơ hình gửi thơng điệp (Message Passing) có một số đặc điểm nhưsau:

- Một tập các tác vụ sử dụng bộ nhớ cục bộ riêng của chúng khi tínhtốn. Nhiều tác vụ có thể cư trú trên cùng một máy tính hoặc quanhiều máy tính.

- Các tác vụ trao đổi dữ liệu thông qua truyền thông gửi và nhậnthông điệp.

- Truyền dữ liệu thường đòi hỏi các hoạt động phối hợp khi được thựcthi bởi mỗi xử lý. Ví dụ, thao tác gửi phải được so khớp với thao tácnhận.

Từ khía cạnh lập trình, thực thi mơ hình gửi thơng điệp thường baogồm một thư viện các chương trình cịn được nhúng vào trong mã nguồn. Cáclập trình viên có trách nhiệm xác định tất cả các xử lý song song.

Hiện nay MPI là một chuẩn công nghiệp, nằm trong chuẩn “de facto”cho kết nối giữa các nút chạy một chương trình song song trên bộ nhớ phântán. Với kiến trúc bộ nhớ chia sẻ, thực thi MPI thường không bao giờ sử dụng

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

giao tiếp các tác vụ qua mạng mà thay vào đó chúng sử dụng bộ nhớ chia sẻvì các lý do hiệu năng.

Tập MPI thực thi bao gồm thư viện các thủ tục sao cho có thể gọi đượctừ các chương trình Fortran, C, C++ hay Ada.

<b>1.3.3. Mơ hình song song dữ liệu</b>

Mơ hình song song dữ liệu (Data parallel) được định nghĩa là: - Mỗi q trình xử lý cơng việc được thực hiện trên một thành phần

của cấu trúc dữ liệu.

- Thường áp dụng với chương trình nhiều dữ liệu Single ProgramMultiple Data (SPMD)

- Dữ liệu của chương trình sẽ được chia cho các bộ xử lý. - Người lập trình khơng thấy được q trình trao đổi dữ liệu. - Thường được xây dựng theo kiểu “on top of ” một kiểu của thư viện

Message Passing.

Khi lập trình với mơ hình này, người lập trình phải viết chương trìnhvới cấu trúc dữ liệu song song và dịch với chương trình dịch dữ liệu songsong (Data parallel Compiler).

Chương trình dịch sẽ dịch chương trình thành mã chuẩn và gọi tới thưviện Message Passing để chia dữ liệu cho tất cả quá trình xử lý.

<b>Hình 1. 4. Mơ hình song song dữ liệu</b>

Mơ hình song song dữ liệu thể hiện qua các đặc điểm sau:

- Hầu hết các công việc song song tập trung cà thực hiện các thao táctrên một bộ dữ liệu. Bộ dữ liệu này thường được tổ chức thành mộtcấu trúc chung như mảng hay khối.

- Một tập các tác vụ làm việc trên cùng cấu trúc dữ liệu, tuy nhiênmỗi tác vụ làm việc trên các phần khác nhau của cùng cấu trúc dữliệu.

</div>

×