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

MỘT số PHƯƠNG PHÁP THIẾT kế THUẬT TOÁN cơ bản TRONG TÍNH TOÁN SONG SONG và ỨNG DỤNG

60 578 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

Định dạng
Số trang 60
Dung lượng 1,68 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Việc nghiên cứu thiết kế các máy tính song song, và các thuật toán song songcũng như các ngôn ngữ lập trình hỗ trợ lập trình song song bắt đầu được quan tâmtừ những năm 70, cho đến nay c

Trang 1

`ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

Ngô Thị Minh Nguyệt

MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ KHOA HỌC

Hà Nội- Năm 2014

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

Ngô Thị Minh Nguyệt

MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG

Chuyên ngành: Bảo đảm toán học cho máy tính và hệ thống tính toán

Mã số: 62 46 01 10

LUẬN VĂN THẠC SĨ KHOA HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC

PGS.TS NGUYỄN HỮU ĐIỂN

Hà Nội - Năm 2014

Trang 3

LỜI CẢM ƠN

Trong quá trình tìm hiểu nghiên cứu để hoàn thành luận văn, tôi gặp không ítkhó khăn, nhưng những lúc như vậy, tôi luôn nhận được sự động viên, khích lệ củathầy giáo, PGS TS Nguyễn Hữu Điển Thầy đã tận tình hướng dẫn, định hướngcho tôi trong phương pháp nghiên cứu khoa học cũng như hỗ trợ tôi trong việc tìmtài liệu

Để có được những kết quả trong luận văn này, tôi xin gửi lời cảm ơn sâu sắcđến thầy giáo, PGS TS Nguyễn Hữu Điển, Trung Tâm Tính Toán Hiệu Năng Caotrường Đại học Khoa học Tự nhiên – Đại học Quốc gia Hà Nội

Tôi cũng xin gửi lời cảm ơn đến các thầy cô của tôi về sự dạy dỗ ân cần trongthời gian tôi học cao học tại trường Đại học KHTN - ĐHQGHN Tôi xin cảm ơncác thầy cô, các anh chị của Trung Tâm Tính Toán Hiệu Năng Cao đã tạo điều kiện

và giúp đỡ tôi rất nhiều trong việc hoàn thành luận văn

Cuối cùng tôi xin cảm ơn gia đình, người thân và các bạn của tôi những người

đã luôn bên cạnh, động viên và khích lệ tôi để có được kết quả như ngày hôm nay

Hà Nội, ngày 29 tháng 9 năm 2014

Người thực hiện, học viên

Ngô Thị Minh Nguyệt

Lớp Cao học BĐT 2008 – 2010

Trang 4

MỤC LỤC

Trang

Trang phụ bìa

Mục lục

Danh mục các ký hiệu

Danh mục các bảng

Danh mục các hình vẽ

Danh mục các thuật toán

MỞ ĐẦU 9

Chương 1 – TÍNH TOÁN SONG SONG 11

1.1 Tổng quan về xử lý song song 11

1.2 Các mô hình lập trình song song 17

1.2.1 Mô hình chia sẻ bộ nhớ 17

1.2.2 Mô hình luồng 17

1.2.3 Mô hình truyền thông điệp 18

1.2.4 Mô hình phân hoạch dữ liệu 19

1.3 Thiết kế và đánh giá thuật toán song song 19

1.3.1 Định nghĩa thuật toán song song 19

1.3.2 Các nguyên lý thiết kế thuật toán song song 20

1.3.3 Các cách tiếp cận trong thiết kế thuật toán song song 21

1.3.4 Phân tích và đánh giá thuật toán song song 21

1.4 Mô hình lập trình truyền thông điệp – MPI song song 25

1.4.1 Giới thiệu mô hình truyền thông điệp 25

1.4.2 Lập trình truyền thông điệp - MPI 26

Trang 5

1.4.3 Cấu trúc chương trình MPI 29

Chương 2 – SONG SONG HÓA THUẬT TOÁN TÌM XÂU CON CHUNG DÀI NHẤT 30

2.1 Đặt vấn đề 30

2.2 Bài toán tìm xâu con chung dài nhất 31

2.3 Thuật toán quy hoạch động giải bài toán tìm xâu con chung dài nhất của hai xâu 32

2.4 Phương pháp phần tử trội trong bài toán xâu con chung dài nhất 36

2.5 Phương pháp song song trong bài toán xâu con chung dài nhất 41

2.6 Kết luận chương 48

Chương 3 – KẾT QUẢ THỰC NGHIỆM 49

3.1 Bộ dữ liệu 49

3.2 Môi trường chạy 50

3.3 Kết quả chạy thực nghiệm 51

KẾT LUẬN 58

TÀI LIỆU THAM KHẢO 59

PHỤ LỤC 60

Trang 6

BẢNG THUẬT NGỮ VIẾT TẮT

CPU Central Processing Unit Bộ xử lý trung tâm

DNA Deoxyribo nucleic acid Axít deoxyribosenucleic

HPC High Performance Computing Tính toán/máy tính hiệu năng caoLCS Longest Common Subsequence Dãy con chung dài nhất

MIMD Multiple Instruction multiple Data Đa luồng lệnh đa luồng dữ liệuMISD Multiple Instruction Simple Data Đa luồng lệnh đơn luồng dữ liệu

MPI Message Passing Interface Giao diện truyền thông điệp

NUMA Non-Uniform Memory Access Truy cập bộ nhớ không đồng thờiRNA Ribo nucleic acid Axít ribonucleic

SIMD Simple Instruction Multiple Data Đơn luồng lệnh đa luồng dữ liệuSISD Simple Instruction simpleData Đơn luồng lệnh đơn luồng dữ liệuTCP Transmission Control Protocol Giao thức điều khiển truyền thông UDP User Datagram Protocol Giao thức gói người dùng

UMA Uniform Memory Access Truy cập bộ nhớ đồng thời

Trang 7

DANH MỤC CÁC BẢNG

Trang

Bảng 2.1 Độ dài xâu ký tự của một số dữ liệu tin sinh học 32 Bảng 2.2 Ví dụ về các điểm trội trong ma trận phương án 37 Bảng 2.3 Ví dụ về việc xây dựng lại ma trận phương án với các phần tử trội.

39 Bảng 2.4 Ví dụ về việc tìm các phần tử trội độc lập trên hai vùng khác nhau.

41 Bảng 2.4 Chia ô vùng tìm kiếm và xác định các vùng tìm kiếm đồng thời 42 Bảng 3.1 Dữ liệu thực nghiệm thuật toán 49 Bảng 3.2 Bảng thống kê các loại amino axit [28] 50 Bảng 3.3 Số phần tử trội trung bình đối với số xâu khác nhau trên bảng chữ

cái 4 ký tự và độ dài xâu bằng 64: 51 Bảng 3.4 Số phần tử trội trung bình đối với số xâu khác nhau trên bảng chữ

cái 20 ký tự và độ dài xâu bằng 64: 52 Bảng 3.5 Thời gian chạy thuật toán với độ dài xâu là 64 trên bảng chữ cái 4

ký tự (giây) 52 Bảng 3.6 Thời gian chạy thuật toán với độ dài xâu là 64 trên bảng chữ cái 20

ký tự (giây): 53 Bảng 3.7 Thời gian chạy thuật toán với độ dài xâu là 128 trên bảng chữ cái 4

ký tự (giây): 54 Bảng 3.8 Thời gian chạy thuật toán với độ dài xâu là 128 trên bảng chữ cái

20 ký tự (giây): 54

Trang 8

DANH MỤC CÁC HÌNH VẼ

Trang

Hình 1.1 Mô tả kiến trúc Von Neumann 11

Hình 1.2: Mô hình máy MIMD 13

Hình 1.3: Mô hình máy tính SIMD 13

Hình 1.4: Mô hình máy MIMD 14

Hình 1.5: Máy tính chia sẻ bộ nhớ 15

Hình 1.6: Máy tính bộ nhớ phân tán 15

Hình 1.7: Mô hình luồng 18

Hình 1.8: Mô hình truyền thông điệp 18

Hình 1.9: Mô hình lập trình song song dữ liệu 19

Hình 1.10 Luật Amdahl 24

Hình 1.11: Sự trao đổi thông điệp giữa hai tiến trình 25

Hình 1.12: Cấu trúc chương trình MPI 29

Hình 3.1 Thời gian chạy của thuật toán với 8 xâu độ dài 64 trên bảng chữ cái 4 và 20 ký tự 55

Hình 3.2 Thời gian chạy của thuật toán với 2 xâu độ dài 4096 trên bảng chữ cái 20 ký tự 55

Hình 3.3 Hệ số tăng tốc của thuật toán với 2 xâu độ dài 4096 trên bảng chữ cái 20 ký tự 56

Hình 3.4 Hệ số tăng tốc của thuật toán với 8 xâu độ dài 64 trên bảng chữ cái 4 và 20 ký tự 56

Hình 3.5 Hệ số hiệu quả của thuật toán với 8 xâu độ dài 64 trên bảng chữ cái 4 và 20 ký tự 57

Trang 9

DANH MỤC CÁC THUẬT TOÁN

Trang

Thuật toán 2.1 Thuật toán tuần tự tìm dãy con chung dài nhất 34

Thuật toán 2.2 Thuật toán tuần tự in ra dãy con chung dài nhất 35

Thuật toán 2.3 Thuật toán tìm phần tử trội 40

Thuật toán 2.4 Thuật toán song song tìm xâu con chung dài nhất 46

Trang 10

và chỉ được sử dụng trong một số lĩnh vực kỹ thuật nhất định, thì ngày nay chúng đã

có khả năng tính toán và tốc độ xử lý vượt trội trở thành một công cụ không thểthiếu trong mọi lĩnh vực của đời sống

Những máy tính ra đời đầu tiên, do hạn chế về tốc độ xử lý và cơ chế vào ra dữliệu nên việc lập trình rất khó khăn Điều này làm cho máy tính không có khả năng

sử dụng dễ dàng và phổ cập, nó chỉ được ứng dụng trong một số lĩnh vực khoa họcđặc biệt

Ngày nay, cùng với sự phát triển mạnh mẽ của thiết bị lưu trữ, bộ nhớ, tốc độ

xử lý và các thiết bị ngoại vi,… máy tính đã trở nên thân thiện hơn với người sửdụng, cũng như tốc độ tính toán nhanh hơn rất nhiều Nhờ đó mà rất nhiều bài toánlớn đã có khả năng thực thi và nhiều ứng dụng được đưa ra

Tuy nhiên, một thực tế là còn rất nhiều vấn đề lớn với số lượng cần tính toánkhổng lồ mà một máy tính thông thường không thể giải quyết được Vào thập kỷ

70, các nhà khoa học đã đưa ra ý tưởng về cấu trúc song song nhằm kết hợp sức

mạnh của nhiều bộ xử lý trên một máy tính, hoặc kết hợp nhiều máy tính với nhauthông qua mạng máy tính tạo thành máy song song ảo. Ngoài việc tính nhanh, cácmáy tính song song có độ an toàn cao hơn máy tính đơn, khi một vài bộ xử lý hỏngthì máy tính song song vẫn có thể hoạt động được trong khi máy tính đơn thì khônglàm được điều đó

Hiện nay trên thế giới đã có những máy tính song song chứa đến hàng nghìn

bộ xử lý Để khai thác tiềm năng và sức mạnh của máy tính song song, cùng vớiviệc thiết kế kiến trúc song song ta còn phải nghiên cứu những vấn đề quan trọng

khác như hệ điều hành hỗ trợ xử lý song song, các ngôn ngữ lập trình và thuật toán

song song

Trang 11

Việc nghiên cứu thiết kế các máy tính song song, và các thuật toán song songcũng như các ngôn ngữ lập trình hỗ trợ lập trình song song bắt đầu được quan tâm

từ những năm 70, cho đến nay các ứng dụng của chúng đã lan rộng khắp các lĩnhvực của đời sống như đánh giá khả năng rủi ro về tài chính: dùng để mô hình hoácác xu hướng trên thị trường… Hỗ trợ quyết định như phân tích thị trường, dự báothời tiết… Trí tuệ nhân tạo như thiết kế robot… Xử lý ảnh ứng dụng trong công

nghệ nhận dạng… Điều khiển tự động… Trong đó bài toán có liên quan tới sắp xếp

đóng một vai trò quan trọng, hay gặp trong các lời giải các bài toán tìm kiếm, tracứu, … Do vậy việc nghiên cứu các thuật toán sắp xếp cơ bản, đặc biệt là các thuậttoán song song trên bài toán sắp xếp là rất cần thiết

Trong phạm vi luận văn này trình bày ba phần chính, Chương 1 trình bày tổng

quan về xử lý song song, thuật toán song song và giới thiệu lập trình song song với

MPI , Chương 2 trình bày về phương pháp thiết kế thuật toán tìm dãy con chung dài nhất trong tính toán song song; Chương 3 trình bày một số kết quả thực nghiệm

trên dữ liệu cho chương trình song song tìm dãy con chung dài nhât Với thời giantiếp cận vấn đề và lượng thông tin còn hạn chế, luận văn còn nhiều thiếu sót Tôi rấtmong nhận được sự góp ý của các thầy, các cô và các anh/chị để có thể tiếp tục pháttriển đề tài đã nghiên cứu và đạt được kết quả

Chương 1 – TÍNH TOÁN SONG SONG

Trang 12

.6 Tổng quan về xử lý song song

Trong những thập niên 60, nền tảng để thiết kế máy tính đều dựa trên mô hìnhcủa John Von Neumann (Hình 1.1), với một đơn vị xử lý được nối với một vùng lưutrữ làm bộ nhớ và tại một thời điểm chỉ có một lệnh được thực thi [14]

Hình 1.1 Mô tả kiến trúc Von Neumann

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ìnhkiế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ánlớ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, hay gọi là xử lý song song hoặc kết hợp sức mạnhtính toán của nhiều máy tính dựa trên kết nối mạng (máy tính song song)

Kể từ lúc này, để khai thác được sức mạnh tiềm tàng trong mô hình máy tínhnhiều bộ xử lý song song, cũng như trong mô hình mạng máy tính xử lý song songthì việc xây dựng thiết kế giải thuật song song là điều quan trọng Giải thuật songsong có thể phân rã công việc trên các phần tử xử lý khác nhau

1.1.1 Một số khái niệm về xử lý song song

Định nghĩa về xử lý song song

Tính toán song song hay xử lý song song: là quá trình xử lý thông tin trong đó

nhiều đơn vị dữ liệu được xử lý đồng thời bởi một hay nhiều bộ xử lý để giải quyếtmột bài toán [1]

Máy tính song song là tập hợp các bộ xử lý kết nối với nhau theo một kiến trúc

xác định để cùng hợp tác hoạt động và trao đổi dữ liệu [1]

Phân biệt xử lý song song và xử lý tuần tự

Bộ nhớ

Bộ xử lý

Trang 13

Trong tính toán tuần tự với một bộ xử lý thì tại mỗi thời điểm chỉ được thựchiện một phép toán Trong tính toán song song thì nhiều bộ xử lý cùng kết hợp vớinhau để giải quyết cùng một bài toán cho nên giảm được thời gian xử lý vì mỗi thờiđiểm có thể thực hiện đồng thời nhiều phép toán.

Mục đích của xử lý song song

Thực hiện tính toán nhanh trên cơ sở sử dụng nhiều bộ xử lý đồng thời Cùngvới tốc độ xử lý nhanh, việc xử lý song song cũng sẽ giải được những bài toán phứctạp yêu cầu khối lượng tính toán lớn

Cài đặt giải thuật song song

Để cài đặt các giải thuật song song trên các máy tính song song, phải sử dụngnhững ngôn ngữ lập trình song song như: OpenMP với C/C++, MPI với C/C++,v.v

1.1.2 Phân loại các kiến trúc của máy tinh song song

1.1.2.1 Phân loại theo kiến trúc máy tính của Flynn.

Một trong những phân loại hay được nhắc tới là của Flynn – 1966 [6] MichaelFlynn phân các kiến trúc máy tính thành bốn loại dựa vào sự phân phối luông dữliệu (data stream ) và phân phối các luồng lệnh (instruction stream) trên mỗi bộ

xử lý

Mô hình SISD (đơn luồng lệnh, đơn luồng dữ liệu)

Trang 14

Đây chính là kiến trúc tuần tự Von Neuman , máy tính SISD chỉ có một CPU,các dòng lệnh được thực hiện một cách tuần tự Hệ thống SISD (hình 1.2: trong đótại mỗi thời điểm chỉ thực hiện một lệnh trên một mục dữ liệu)

Hình 1.2: Mô hình máy SISD

hình SIMD (Đơn luồng lệnh, đa dữ liệu )

Máy tính loại SIMD có một đơn vị điều khiển để điều khiển nhiều đơn vị xử lýthực hiện theo một luồng các câu lệnh CPU phát sinh tín hiệu điều khiển tới tất cảcác phần tử xử lý, những bộ xử lý này cùng thực hiện một phép toán trên các mục

dữ liệu khác nhau

Hình 1.3: Mô hình máy tính SIMD

Mô hình MISD (Đa luồng lệnh, đơn dữ liệu)

Máy tính MISD có thể thực hiện nhiều nhiều lệnh trên cùng một mục dữ liệu,

- Các máy tính yêu cầu mỗi đơn vị xử lý (PU) nhận những lệnh khác nhau đểthực hiện trên cùng một mục dữ liệu

Trang 15

- Các máy tính có các luồng dữ liệu được chuyển tuần tự theo dãy các CPUliên tiếp gọi là kiến trúc hình ống xử lýtheo vector thông qua một dãy các bước,trong đó mỗi bước thực hiện một chức năng và sau đó chuyển kết quảcho PU thựchiện bước tiếp theo

Mô hình MIMD (đa luồng lệnh, đa luồng dữ liệu)

Máy tính loại MIMD còn gọi là đa bộ xử lý, trong đó mỗi bộ xử lý có thể thựchiện những luồng lệnh khác nhau trên các luồng dữ liệu riêng

Hầu hết các hệ thống MIMD đều có bộ nhớ riêng và cũng có thể truy cập vàođược bộ nhớ chung khi cần, do vậy giảm thiểu được sự trao đổi giữa các bộ xử lýtrong hệ thống

Hình 1.4: Mô hình máy MIMD

Đây là kiến trúc phức tạp nhất, nhưng nó là mô hình hỗ trợ xử lý song songcao nhất, bởi chúng có thể thực thi các lệnh khác nhau trên nhiều dòng dữ liệu khácnhau tại một thời điểm

Theo Flynn: có hai họ kiến trúc quan trọng cho các máy tính song song: SIMD

và MIMD Những kiến trúc khác có thể xếp theo hai mẫu đó Mục tiêu của xử lýsong song là khai thác đến mức tối đa các khả năng sử dụng của các thiết bị phầncứng nhằm giải quyết nhanh những bài toán đặt ra trong thực tế

1.1.2.2 Phân loại theo mô hình bộ nhớ

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

Trang 16

Đặc điểm của máy tính song song loại này là các nút tính toán đều có thể truynhập vào bộ nhớ dùng chung như là bộ nhó toàn cục Nhiều bộ xử lý hoạt động độclập nhưng cùng sử dụng chung một bộ nhớ, mỗi sự thay đổi nội dung các ngăn nhớđều được các bộ xử lý biết

Ưu điểm chính của mô hình này là cung cấp một vúng nhớ toàn cục do đó dễdàng cho việc lập trình về mặt sử dụng bộ nhớ đồng thời việc trao đổi thông tingiữa các modul tính toán là tương đối nhanh chóng và dễ dàng

Hình 1.5: Máy tính chia sẻ bộ nhớ

Nhược điểm của mô hình này chính là sự mất cân đối giữa CPU và bộ nhớ.Việc tăng CPU làm tăng thêm lưu lượng trên đường dẫn từ bộ nhớ tới CPU

Mô hình bộ nhớ phân tán

Mô hình này yêu cầu một mạng truyền thông để kết nối các bộ nhớ của các bộ

vi xử lý Mỗi CPU đều gắn với một bộ nhớ riêng và các thao tác của mỗi CPU trên

bộ nhớ của mình thì không được các CPU khác biết tới

Ưu điểm của mô hình này là kích thước bộ nhớ cân bằng với số lượng các bộ

xử lý

Hình 1.6: Máy tính bộ nhớ phân tán

Trang 17

Nhược điểm chính của mô hình này chính là người lập trình phải tự thiết lậplấy phương thức trao đổi thông tin giữa các CPU trong quá trình tính toán mà việcnày đôi khi là rất khó khăn.

Mô hình bộ nhớ lai.

Hầu hết các máy tính nhanh và lớn ngày nay đều xây dựng dựa trên sự kết hợpgiữa kiến trúc chia sẻ bộ nhớ chung và bộ nhớ phân tán Sự kết hợp đó tạo nên mộtmáy tính với tên gọi máy tính có bộ nhớ lai

1.1.3 Song song hóa máy tính tuần tự

Trong kiến trúc tuần tự có thể tận dụng tốc độ cực nhanh của bộ xử lý để thựchiện xử lý song song theo nguyên lý chia sẻ thời gian và chia sẻ tài nguyên

Các thanh ghi được sử dụng trực tiếp cho ALU Bộ nhớ cache được xem nhưvùng đệm giữa bộ xử lý chính Sự song song hóa trong sự trao đổi dữ liệu theo cấutrúc phân cấp là cách khai thác chung để cải tiến hiệu quả xử lý của hệ hống Các hệđiều hành của máy tính đơn bộ xử lý cho phép thực hiện song song dựa vào cáchtiếp cận phần mềm

Trong cùng một khoảng thời gian, có nhiều tiến trình cùng truy cập vào dữ iệu

từ những thiết bị vào/ra chung Phần lớn các chương trình đều có hai phần: phầnvào/ra và các thành phần tính toán trong quá trình xử lý Các hệ điều hành đachương trình luân phiên thực hiện các chương trình khác nhau

Để thực hiện việc này hệ điều hành sử dụng Bộ lập lịch chia sẻ thời gian làmnhiệm vụ phân chia CPU cho mỗi tiến trình một khoảng thời gian cố định theophương pháp quay vòng tròn Bằng cách đó, tất cả các tiến trình đều được sẵn sàng

để thực hiện trên cơ sở được phép sử dụng CPU và những tài nguyên khác của hệthống

Do vậy, về nguyên tắc việc phát triển những chương trình song song trên máyđơn bộ xử lý thực hiện được nếu có hệ điều hành cho phép nhiều tiến trình thựchiện, nghĩa là có thể xem hệ thống như là đa bộ xử lý

Trang 18

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

Việc đưa ra một mô hình máy tính chung cho việc lập trình giúp cho việc thiết

kế giải thuật giải thuật trở nên đơn giản hơn Lập trình song song đưa thêm nhữngkhó khăn mới vào mô hình lập trình tuần tự Nếu chương trình được thực hiện ởmức thấp nhất thì không những số lệnh thực hiện là rất lớn mà nó còn phải quản lýtrực tiếp quá trình thực hiện song song của hàng nghìn bộ xử lý và kết hợp hàngtriệu tương tác liên bộ xử lý Bởi vậy khả năng trừu tượng và tính toán module làcác đặc tính rất quan trọng trong lập trình song song Các mô hình thông dụng baogồm:

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

- Mô hình luồng

- Mô hình truyền thông điệp

- Mô hình song song dữ liệu.

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

Trong mô hình này, nhiệm vụ cùng chia sẻ một không gian địa chỉ chung cóthể được truy cập đọc ghi theo phương thức không đồng bộ.Các cơ chế khác nhaunhư khóa (locks) và semaphore được điều khiển để truy cập đến bộ nhớ toàn cục Nhược điểm của mô hình này là khó giữ lại được tính nguyên thủy của dữ liệukhi mà nhiều bộ xử lý dùng cùng dữ liệu này

Lợi thế của mô hình là người lập trình không cần chỉ định việc truyền sữ liệugiữa các task; chương trình được phát triển thường được đơn giản hóa

1.1.5 Mô hình luồng

Trong mô hình luồng chương trình chính được chia thành các nhiệm vụ Mỗinhiệm vụ được thực hiện bởi các luồng một cách đồng thời Mỗi một luồng có dữliệu riêng của nó và chia sẻ dữ liệu toàn cục của chương trình chính Các nhiệm vụđưa cho mỗi luồng là các thủ tục con của chương trình chính Và bất kì luồng nàocũng có thể thực hiện bất kì thủ tục con nào tại cùng thời điểm với các luồngkhác.Trong mô hình luồng các luồng kết nối với nhau thông qua bộ nhớ toàn cục

Trang 19

với việc kết nối này thì chương trình phải được xây dựng một cách đồng bộ để tránhcùng một lúc có nhiều luồng cùng cập nhập một vị trí trong bộ nhớ toàn cục

Hình 1.7: Mô tả chương trình trong tệp a.out, chương trình khởi động chạynhư một tiến trình đơn, sau đó các tiến trình được khởi tạo để chạy đồng thời, cáctiến trình có thể sử dụng tài nguyên của a.out và có thể kết thúc riêng rẽ

1.1.6 Mô hình truyền thông điệp

Trong mô hình truyền thông điệp chương trình song song được chia thành cáctác nhiệm Một tập các tác nhiệm sử dụng bộ nhớ cục bộ riêng của chúng trong quátrình tính toán Nhiều tác nhiệm có thể nằm trên cùng một máy cũng như nằm trênnhiều máy

Hình 1.8: Mô hình truyền thông điệp

Các tác nhiệm vụ trao đổi dữ liệu thông qua truyền thông bằng cách gửi vànhận các thông điệp

Có nhiều thư viện truyền thông điệp, nhưng chúng khác nhau đáng kể, gâykhó khăn cho các nhà lập trình trong việc phát triển các ứng dụng di động MPIForum được lập ra với mục đích thiết lập một chuẩn cho việc triển khai mô hìnhtruyền thông điệp Hiện nay, MPI là chuẩn cho mô hình truyền thông điệp

Trang 20

1.1.7 Mô hình phân hoạch dữ liệu

Mô hình lập trình song song dữ liệu giúp lập trình các chương trình song songđược thực hiện trên một tập dữ liệu lớn Tập dữ liệu ở đây thường được xắp xếptheo một cấu trúc nhất định như là mảng hoặc theo khối Với mô hình này thì cácnhiệm vụ của chương trình làm việc với cùng một cấu trúc dữ liệu Tuy nhiên mỗinhiệm vụ sẽ làm việc trên từng phân vùng khác nhau của dữ liệu và các nhiệm vụphải thưc hiện các thao tác giống nhau

Hình 1.9: Mô hình lập trình phân hoạch dữ liệuTrong kiến trúc chia sẻ bộ nhớ chung, tất cả các nhiệm vụ truy cập vào cấutrúc dữ liệu thông qua bộ nhớ toàn cục Còn đối với kiến trúc bộ nhớ phân tán thì dữliệu được chia ra và lưu trữ trên các bộ nhớ cục bộ của các bộ xử lý

.6 Thiết kế và đánh giá thuật toán song song

2.1 Định nghĩa thuật toán song song

Thuật toán song song là một tập hợp các tiến trình (process) hay các tác vụ (task)

có thể thực thi đồng thời và có thể trao đổi dữ liệu với nhau để kết hợp giải quyết vấn

đề đặt ra [6]

Những thuật toán, trong đó có một số thao tác có thể thực hiện đồng thời đượcgọi là thuật toán song song

Trang 21

2.2 Các nguyên lý thiết kế thuật toán song song

Khi muốn thực hiện việc xử lý song song ta phải xét cả kiến trúc máy tính vàcác thuật toán song song Để thiết kế được các thuật toán song song cần phải thựchiện

- Phân chia dữ liệu cho các tác vụ

- Chỉ ra cách truy cập và chia sẻ dữ liệu

- Phân các tác vụ cho các tiến trình (bộ xử lý)

- Các tiến trình được đồng bộ ra sao

Khi thiết kế một thuật toán song song có thể sử dụng năm nguyên lí chínhtrong thiết kế thuật toán song song:

+ Nguyên lý lập lịch: Mục đích là giảm tối thiểu các bộ xử lý dùng trong thuậttoán sao cho thời gian tính toán là không tăng

+ Nguyên lý hình ống: Nguyên lý này được áp dụng khi bài toán xuất hiệndãy các thao tác {T1, T2, , Tn}, trong đó Ti+1 thực hiện sau khi Ti kết thúc

+ Nguyên lý chia để trị: Chia bài toán thành những phần nhỏ hơn tương đốiđộc lập với nhau và giải quyết chúng một cách song song

+ Nguyên lý đồ thị phụ thuộc dữ liệu: Phân tích mối quan hệ dữ liệu trong tínhtoán để xây dựng đồ thị phụ thuộc dữ liệu và dựa vào nó để xây dựng thuật toánsong song

+ Nguyên lý điều kiện tương tranh: Nếu hai tiến trình cùng muốn truy cập vàocùng một mục dữ liệu chia sẻ thì chúng phải tương tranh với nhau

Ngoài những nguyên lý nêu trên, khi thiết kế thuật toán song song ta còn phảichú ý đến kiến trúc của hệ thống tính toán Khi chuyển một thuật toán tuần tự sangthuật toán song song hoặc chuyển một thuật toán song song thích hợp với kiến trúcđang có Cần xác định được kiến trúc tính toán nào sẽ phù hợp với bài toán vànhững bài toán loại nào sẽ xử lý hiệu quả trong kiến trúc song song cho trước

Trang 22

2.3 Các cách tiếp cận trong thiết kế thuật toán song song

Có ba phương pháp tiếp cận để thiết kế thuật toán song song:

- Song song hoá những thuật toán tuần tự, biến đổi những cấu trúc tuần tự đểtận dụng khả năng song song tự nhiên của tất cả các thành phần trong hệthống xử lý

- Thiết kế thuật toán song song mới trên cơ sở thuật toán song song đã có

- Thiết kế thuật toán song song hoàn toàn mới thích ứng với những cấu trúcsong song

2.4 Phân tích và đánh giá thuật toán song song.

Trong thuật toán tuần tự chúng ta chỉ quan tâm tới độ phức tạp về thời gian vàkhông gian, nhưng trong thuật toán song song thường có thêm một số đại lượng đolường khác Độ phức tạp thời gian của thuật toán song song không chỉ đơn giản làviệc đếm số câu lệnh cơ bản như trong thuật toán tuần tự mà thay vào đó nó phụthuộc vào các phép toán cơ bản này có thể được thực hiện trên pp 1 bộ xử lýnhư thế nào Bên cạnh độ phức tạp thời gian độ phức tạp về số bộ xử lý cũng là mộtđại lượng quan trọng trong phân tích thuật toán song song

Thiết kế thuật toán song song hiệu quả bao gồm việc lựa chọn cấu trúc dữ liệuphù hợp, phân bố bộ xử lý và cuối cùng là thực hiện thuật toán Ba đại lượng nàytác động lẫn nhau như một tổ chức tính toán

Đánh giá thuật toán song song

Độ phức tạp tính toán của thuật toán song song không chỉ phụ thuộc vào kích

cỡ của dữ liệu đầu vào mà còn phụ thuộc vào kiến trúc máy tính song song và sốlượng các bộ xử lý được phép sử dụng trong hệ thống Độ phức tạp thời gian làthước đo quan trọng nhất đánh giá mức độ hiệu quả của thuật toán song song.Chúng ta giả thiết rằng mô hình tính toán có p bộ xử lý Nghĩa là mức độ song song

là có giới hạn Ngược lại, mức độ song song không bị giới hạn khi số các bộ xử lý

là không bị chặn Độ phức tạp thời gian của thuật toán song song sử dụng p bộ xử

lý để giải một bài toán có kích cỡ n là hàm fn,p xác định thời gian cực đại trôiqua giữa thời điểm bắt đầu thực hiện thuật toán bởi một bộ xử lý và thời điểm kết

Trang 23

thúc của các bộ xử lý đối với bộ dữ liệu vào bất kỳ Có hai loại thao tác khác nhautrong các thuật toán song song:

1 Các phép toán cơ sở như +, -, *, /, AND, OR, v.v…

2 Các phép toán truyền dữ liệu trên các kênh truyền

Độ phức tạp thời gian của thuật toán song song được xác định bởi số các phéptoán cơ sở và số các bước truyền tải dữ liệu giữa các bộ xử lý với nhau Từ đó suy

ra, độ phức tạp thời gian của thuật toán song song không chỉ phụ thuộc vào mô hìnhtính toán mà còn phụ thuộc vào số bộ xử lý được sử dụng

Nói chung, chương trình tính toán song song thường bắt đầu bằng việc nhập

dữ liệu vào bộ nhớ và kích hoạt một phần tử xử lý Mỗi bước tính toán, phần tử xử

lý này có thể đọc một số dữ liệu từ bộ nhớ, thực hiện một số phép toán cơ sở và ghikết quả vào bộ nhớ riêng hoặc bộ nhớ chung Đồng thời mỗi bước tính toán, mộtphần tử xử lý có thể kích hoạt một hay một số phần tử xử lý khác Thực tế thì cácmáy tính đều có số bộ xử lý là hữu hạn, nên những thuật toán song song không bịgiới hạn chỉ có nghĩa sử dụng khi chúng có thể chuyển đổi về thuật toán song song

bị giới hạn

Thời gian tính toán song song

Để đánh giá được độ phức tạp tính toán của các thuật toán song song, ngoài sốbước tính toán chúng ta còn cần đánh giá thời gian truyền thông của các tiến trình.Trong một hệ thống truyền thông điệp, thời gian truyền thông điệp cũng phải đượcxem xét trong thời gian thực hiện của thuật toán

Thời gian thực hiện song song: ký hiệu là t p gồm hai phần t compt comm

ttt . (1.1)

Trong đó, t complà thời gian tính toán và t comm là thời gian truyền thông dữ liệu

Thời gian tính toán t comp được xác định giống như thuật toán tuần tự Khi cónhiều tiến trình thực hiện đồng thời thì chỉ cần tính thời gian thực hiện của tiến trìnhphức tạp nhất Trong phân tích độ phức tạp tính toán, chúng ta luôn giả thiết rằng,

Trang 24

tất cả các bộ xử lý là giống nhau và cùng một tốc độ xử lý như nhau Đối với nhữngcụm máy tính không thuần nhất thì điều này không đảm bảo nên việc đánh giá thờitính toán của những hệ như thế là rất phức tạp

Thời gian truyền thông t comm lại phụ thuộc vào kích cỡ của các thông điệp,vào cấu hình kết nối mạng đường truyền và cả cách thức truyền tải thông điệp.Công thức ước lượng thời gian truyền thông được xác định như sau:

tt   n t (1.2)Trong đó, t startup là thời gian cần thiết để gửi những thông điệp không phải là

dữ liệu Nó bao gồm cả thời gian để đóng gói thông điệp ở nơi gửi và thời gian mởgói ở nơi nhận Để đơn giản chúng ta giả thiết thời gian này là hằng số

data

t là thời gian cần thiết để chuyển một mục dữ liệu (data word) từ nơi gửi

tới nơi nhận, được giả thiết là hằng số và n là số từ dữ liệu được trao đổi trong hệ

thống

Chi phí cho một thuật toán song songđược xác định bằng tích của thời gian tính toán song song và số bộ xử lý được sử dụng Chi phí này phản ánh tổng số thời gian mà một bộ xử lý dùng để giải quyết bài toán.

Một thuật toán song song sử dụng p bộ vi xử lý để giải quyết bài toán đặt ratrong O T đơn vị thời gian, sử dụng p bộ xử lý trong t p đơn vị thời gian, khi đó

chi phí cho thuật toán song song C p:

t

p s

Trang 25

Giả sử các bộ xử lý trong hệ thống song song hoàn toàn giống với bộ xử lý sử

dụng trong tính toán tuần tự và t s là thời gian thực hiện bài toán bằng tính toán tuần

tự tối ưu nhất Hệ số tăng tốc lí tưởng đạt được khi S pp

Rõ ràng khả năng tăng tốc càng lớn thì giải thuật song song càng tốt

Tuy nhiên, năm 1967 Amdahl đã đưa ra luật về giới hạn khả năng tăng tốc nhưsau:

Khi tăng số lượng bộ xử lý trong máy tính song song, khối lượng công việcđược phân phối cho nhiều bộ xử lý thực hiện Mục tiêu chính là tìm được kết quảbài toán nhanh nhất có thể hay nói cách khác là giảm đến mức tối đa thời gian tínhtoán

Luật Amdahl: luật này phát biểu rằng nếu P là tỉ lệ có thể song song hóa củathuật toán tuần tự thì hệ số tăng tốc lớn nhất có thể đạt được khi sử dụng N bộ xử

P N

Trang 26

Hiệu suất của tính toán song song là tỉ số giữa hệ số tăng tốc và số các phần tử

xử lý trong hệ thống song song:

pt

t p

S E

p

s p

p   (1.5)

Thuật toán song song có thể có độ phức tạp lớn hơn thuật toán tuần tự, do đórất khó để đánh giá thuật toán song song Kết quả đạt được thường được đánh giábằng thực nghiệm chương trình

.6 Mô hình lập trình truyền thông điệp – MPI song song

2.1 Giới thiệu mô hình truyền thông điệp

Có rất nhiều ngôn ngữ lập trình và các thư viện được xây dựng nên để dànhcho lập trình song song Mô hình truyền thông điệp chuẩn MPI (MessagePassingInterface) là một giao diện chuẩn cho phép nhiều máy tính giao tiếp với nhau, được

sử dụng trong các cụm máy tính và siêu máy tính và là một trong các mô hình cổnhất được sử dụng rộng rãi nhất trong các mô hình dùng cho lập trình trên các máytính song song bởi vì nó yêu cầu tối thiểu về phần cứng

Có hai tính chất quan trọng tạo nên bản chất của mô hình truyền thông điệp:thứ nhất là nó giả sử không gian địa chỉ được phân chia và thứ hai là nó chỉ hỗ trợsong song hóa tường minh

Hình 1.11: Sự trao đổi thông điệp giữa hai tiến trình

Trang 27

2.2 Lập trình truyền thông điệp - MPI

Giới thiệu về MPI

MPI là giao thức độc lập ngôn ngữ sử dụng cho các máy tính song song MPI

là một giao diện lập trình ứng dụng truyền thông điệp với mục đích là đem lại hiệunăng cao, khả năng mở rộng và linh hoạt

MPI là một thư viện chương trình mà có thể được gọi trực tiếp từ chương trìnhFortran, C/C++ và bất cứ ngôn ngữ nào khác tương thích với thư viện hàm (như C#,Java và Python) Lợi ích của việc sử dụng MPI là tính khả chuyển (vì MPI được càiđặt cho hầu hết các kiến trúc bộ nhớ phân tán) và tốc độ (vì mỗi cài được được tối

ưu hoá về nguyên lý cho phần cứng mà nó thực thi trên đó)

MPI sử dụng đặc tả độc lập ngôn ngữ (LIS) cho các lời gọi hàm Hiện nay, cácchuẩn MPI có hai phiên bản phổ biến là 1.2 (gọi tắt là MPI-1) chủ yếu là truyềnthông điệp và có môi trường hoạt động tĩnh, và phiên bản MPI-2.1 (gọi tắt là MPI-2) bao gồm nhiều đặc điểm mới như vào/ra song song, quản lý tiến trình động vàtruy cập bộ nhớ từ xa MPI-2 gần như bao hàm toàn bộ MPI-1, mặc dù có một sốhàm đã bị loại bỏ Vì thế, các chương trình viết theo MPI-1.2 vẫn có thể tương thíchvới chuẩn MPI-2

Chức năng của MPI

Chức năng của thư viện MPI bao gồm (nhưng không hạn chế) các hoạt độnggửi nhận điểm-điểm, lựa chọn topo tiến trình logic dạng hình học phẳng hay đồ thị,trao đổi dữ liệu giữa các cặp tiến trình, phối hợp kết quả từng phần của quá trìnhtính toán, các nút đồng bộ cũng như các thông tin về mạng v.v

Trong chương trình MPI thì số lượng các tiến trình là cố định, các tiến trình cóthể thực hiện trao đổi thông tin một-một để gửi dữ liệu từ tiến trình này sang tiếntrình khác Một nhóm các tiến trình có thể thực hiện các thao tác kết hợp để thựchiện các thao tác chung và phổ biến như là phép công hay broadcast MPI có khảnăng thăm dò các thông điệp có hỗ trợ truyền thông bất đồng bộ

Các thuật toán chỉ tạo ra một tác vụ trên một bộ xử lý có thể apd dụng trựctieeos các thủ tục trao đổi kết hợp hay một-một nhằm đáp ứng các yêu cầu truyển

Trang 28

thông TRong khi đó các thuật toán tác vụ động hay dựa trên sự thực thi đồng thờicủa nhiều tác vụ trên cùng một bộ xử lý, thì cần phải điều chỉnh lại cho thích hợpvới mô hình MPI.

Một số khái niệm về MPI

Bộ truyền thông: Bộ truyền thông chịu trách nhiệm kết nối các tiến trình sử

dụng MPI Trong truyền thông, mỗi tiến trình có một bộ nhận diện độc lập và cáctiến trình được sắp xếp theo một thứ tự topo nhất định MPI cũng có các nhóm,nhưng chủ yếu phục vụ cho tổ chức và tái tổ chức các tiến trình con, trước khi các

bộ truyền thông khác được tạo ra MPI hiểu được các hoạt động nhóm truyền thôngnội bộ đơn, và hoạt động truyền thông liên nhóm Trong MPI-1, hoạt động truyềnthông của nhóm đơn là phổ biến nhất, còn truyền thông liên nhóm giữ vai trò quantrọng nhất trong MPI-2 để mở rộng cho quản lý tiến trình động và truyền thông tậpthể

Cơ sở điểm-điểm: Các hoạt động điểm-điểm, thực sự hữu ích trong truyền

thông không đồng đều, mỗi tiến trình lặp đi lặp lại trao đổi các vùng dữ liệu với tiếntrình khác giữa các bước tính toán, trong kiến trúc chủ-tớ, tiến trình chủ thườngxuyên gửi dữ liệu cho tiến trình kia mỗi khi có một tác vụ hoàn thành

MPI-1 đặc tả cơ chế truyền thông điểm-điểm không khoá và có khoá

Cơ sở cộng tác tập thể: Chức năng hoạt động tập thể trong MPI liên quan

đến truyền thông giữa mọi tiến trình trong nhóm Một hàm, hay gặp, dạng này là

MPI_Bcast Hàm này lấy dữ liệu từ một nút đặc biệt nào đó và gửi thông điệp tới

mọi tiến trình trong nhóm Một hàm khác đó là MPI_Reduce, hàm này dùng để lấy

dữ liệu từ mọi tiến trình khác trong nhóm Các loại hàm này thường hữu ích khi bắtđầu hoặc kết thúc quá trình tính toán phân tán lớn Còn có một số hàm phức tạp hơn

như MPI_Alltoall, hàm này tái sắp xếp n phần dữ liệu từ mỗi tiến trình để nút thứ

nlấy dữ liệu phần tử thứ n từ mỗi nút.

Các loại dữ liệu: Nhiều hàm MPI cần chúng ta đặc tả loại dữ liệu được gửi

giữa các bộ xử lý Điều này xuất phát từ việc các tham số của hàm MPI đều là các

biến, không phải là loại được định nghĩa trước Nếu loại dữ liệu là chuẩn như int,

Trang 29

char, double , thì ta có thể sử dụng các loại dữ liệu định nghĩa của MPI như MPI_INT, MPI_CHAR, MPI_DOUBLE… Giả sử ta có một mảng các số nguyên, và

mọi bộ xử lý muốn gửi các mảng dữ liệu đó tới nút gốc, thì có thể gọi hàm

MPI_Gather(array, 100, MPI_INT, receive_array, 100, MPI_INT, root, comm);

Truyền thông một phía (MPI-2): MPI-2 xác định ba thao tác truyền thông

một phía, bao gồm Put, Get, và Accumulate, dùng để ghi, đọc đối với bộ nhớ từ xa,

và một thao thác rút gọn một số tác vụ trên cùng một bộ nhớ đó

Các hàm này thường được sử dụng trong các thuật toán mà việc đồng bộ làkhông thuận tiện (ví dụ như nhân ma trận phân tán), hoặc ở những bài toán mànhiệm vụ cần cân bằng tải trong khi các bộ xử lý khác đang sử dụng dữ liệu

Quản lý tiến trình động (MPI-2): Vấn đề cốt lõi của đặc điểm này đó là “khả

năng của một tiến trình MPI có thể tạo ra một tiến trình MPI mới hoặc để thiết lậpmột giao tiếp với các tiến trình MPI để có thể khởi động rời rạc nhau” Chuẩn MPI-

2 mô tả ba giao diện chính để các tiến trình MPI có thể thiết lập giao tiếp động, đólà: MPI_Comm_spawn, MPI_Comm_accept/MPI_Comm_connect

MPI_Comm_join Hàm MPI_Comm_spawn cho phép một tiến trình MPI có thể

nhân bản một số tiến trình MPI nữa Tập hợp các tiến trình MPI mới nhân bản này

tạo thành một bộ truyền thông MPI_COMM_WORLD và có thể giao tiếp với tiến trình cha Hàm MPI_Comm_spawn_multiple là một biến thể, nó cho phép các tiến

trình nhân bản khác nhau với các tham số khác nhau

MPI vào/ra (MPI-2): Đặc điểm vào ra song song được giới thiệu với MPI-2,

đôi khi còn được gọi là MPI-IO, liên quan đến một tập các hàm cho phép có thểgiảm bớt khó khăn trong quản lý vào/ra trên các hệ thống phân tán, cũng như là chophép các tệp có thể được truy cập dễ dàng hơn

Trang 30

2.3 Cấu trúc chương trình MPI

Các tập tin thư viện: liên quan đến các hàm các thủ tục, các kiểu dữ liệu Baogồm tập tin h như mpi.h mpio.h và các tập tin khác Thông thường người lập trìnhchỉ cần dùng thư viện mpi.h là đủ

Môi trường MPI: Tất cả các kiểu dữ liệu, các thủ tục, các giá trị defined nếumuốn dùng nó, sau khi gọi các tập tin thư viện liên kết thì phải khởi tạo môi trường

sử dụng thì mới có thể dùng được các chức năng mà MPI cung cấp Các thủ tục,hàm MPI: sử dụng giống như các hàm trong C và cả các ngôn ngữ khác như Fortran

Hình 1.12: Cấu trúc chương trình MPI

Các tập tin thư viện

Khởi tạo môi trường MPI

Thực hiện các thủ tục hàm của MPI

Thoát khỏi môi trường MPI

Ngày đăng: 18/06/2016, 22:11

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Đoàn Văn Ban, Nguyễn Mậu Hân (2006), Xử lý song song và phân tán, NXB KHKT Sách, tạp chí
Tiêu đề: Xử lý song song và phân tán
Tác giả: Đoàn Văn Ban, Nguyễn Mậu Hân
Nhà XB: NXB KHKT
Năm: 2006
2. Nguyễn Hữu Điển (2006), Một số vấn đề về thuật toán, NXB giáo dục.Tiếng Anh Sách, tạp chí
Tiêu đề: Một số vấn đề về thuật toán
Tác giả: Nguyễn Hữu Điển
Nhà XB: NXB giáo dục.Tiếng Anh
Năm: 2006
3. Barry Wilkinson, Michael Allen, Parallel Programming, Prentice Hall, 1999 Sách, tạp chí
Tiêu đề: Parallel Programming
4. Cameron Hughes, Tracey Hughes (2003), Parallel and Distributed Programming Using C++, Addison Wesley Sách, tạp chí
Tiêu đề: Parallel and Distributed Programming Using C++
Tác giả: Cameron Hughes, Tracey Hughes
Năm: 2003
5. David Ashton, William Gropp, Ewing Lusk: Installation and User’s Guide to MPICH, a Portable Implementation of MPI Version 1.2.5, Agonne National Laboratory Sách, tạp chí
Tiêu đề: Installation and User’s Guide to MPICH, a Portable Implementation of MPI Version 1.2.5
6. H. Roosta (2000), Parallel Processing and Parallel Algorithms, Springer- Verlag Sách, tạp chí
Tiêu đề: Parallel Processing and Parallel Algorithms
Tác giả: H. Roosta
Năm: 2000
8. K. Hakata and H. Imai. Algorithms for the longest common subsequence problem for multiple strings based on geometric maxima. Optimization Methods and Software, 10(2):233–260, 1998 Sách, tạp chí
Tiêu đề: Optimization Methods and Software
9. Myers, G. (1999). A fast bit-vector algorithm for approximate string matching based on dynamic programming. Journal of the ACM (JACM), 46(3), 395-415 Sách, tạp chí
Tiêu đề: Journal of the ACM (JACM), 46
Tác giả: Myers, G
Năm: 1999
10. M. Sasikumar, Dinesh Shikhare, P. Ravi Prakash (2000), Introduction to Parallel Processing, Prentice – Hall Sách, tạp chí
Tiêu đề: Introduction to Parallel Processing
Tác giả: M. Sasikumar, Dinesh Shikhare, P. Ravi Prakash
Năm: 2000
11. Jones, N. C., & Pevzner, P. (2004). An introduction to bioinformatics algorithms. MIT press Sách, tạp chí
Tiêu đề: An introduction to bioinformatics algorithms
Tác giả: Jones, N. C., & Pevzner, P
Năm: 2004
12. Pevsner, J. (2009). Bioinformatics and functional genomics. John Wiley & Sons Sách, tạp chí
Tiêu đề: Bioinformatics and functional genomics
Tác giả: Pevsner, J
Năm: 2009
13. Seyed H. Roosta, Parallel Processing and Parallel Algorithms, Springer-Verlag, 2000 Sách, tạp chí
Tiêu đề: Parallel Processing and Parallel Algorithms

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w