Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
717,98 KB
Nội dung
`ĐẠ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 ĐẠ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 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 LỜI CẢM ƠN Trong trình tìm hiểu nghiên cứu để hoàn thành luận văn, gặp không khó khăn, lúc vậy, nhận động viên, khích lệ thầy giáo, PGS TS Nguyễn Hữu Điển Thầy tận tình hướng dẫn, định hướng cho phương pháp nghiên cứu khoa học hỗ trợ việc tìm tài liệu Để có kết luận văn này, 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 Cao trường Đại học Khoa học Tự nhiên – Đại học Quốc gia Hà Nội Tôi xin gửi lời cảm ơn đến thầy cô dạy dỗ ân cần thời gian học cao học trường Đại học KHTN - ĐHQGHN Tôi xin cảm ơn thầy cô, anh chị Trung Tâm Tính Toán Hiệu Năng Cao tạo điều kiện giúp đỡ nhiều việc hoàn thành luận văn Cuối xin cảm ơn gia đình, người thân bạn người bên cạnh, động viên khích lệ để có kết ngày hôm Hà Nội, ngày 29 tháng 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 MỤC LỤC Trang Trang phụ bìa Mục lục Danh mục ký hiệu Danh mục bảng Danh mục hình vẽ Danh mục thuật toán MỞ ĐẦU Chương – TÍNH TOÁN SONG SONG 11 1.1 Tổng quan xử lý song song 11 1.2 Các mô hình lập trình song song 17 1.3 1.4 1.2.1 Mô hình chia sẻ 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 liệu 19 Thiết kế đá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 thiết kế thuật toán song song 21 1.3.4 Phân tích đánh giá thuật toán song song 21 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 1.4.3 Cấu trúc chương trình MPI 29 Chương – 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 chung dài 31 2.3 Thuật toán quy hoạch động giải toán tìm xâu chung dài hai xâu 32 2.4 Phương pháp phần tử trội toán xâu chung dài 36 2.5 Phương pháp song song toán xâu chung dài 41 2.6 Kết luận chương 48 Chương – KẾT QUẢ THỰC NGHIỆM 49 3.1 Bộ liệu 49 3.2 Môi trường chạy 50 3.3 Kết chạy thực nghiệm 51 KẾT LUẬN 58 TÀI LIỆU THAM KHẢO 59 PHỤ LỤC Error! Bookmark not defined BẢNG THUẬT NGỮ VIẾT TẮT Thuật ngữ Tiếng Anh Nghĩa tiếng Việ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 cao LCS Longest Common Subsequence Dãy chung dài MIMD Multiple Instruction multiple Data Đa luồng lệnh đa luồng liệu MISD Multiple Instruction Simple Data Đa luồng lệnh đơn luồng liệu MPI Message Passing Interface Giao diện truyền thông điệp NUMA Non-Uniform Memory Access Truy cập nhớ không đồng thời RNA Ribo nucleic acid Axít ribonucleic SIMD Simple Instruction Multiple Data Đơn luồng lệnh đa luồng liệu SISD Simple Instruction simpleData Đơn luồng lệnh đơn luồng liệu TCP 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 nhớ đồng thời DANH MỤC CÁC BẢNG Trang Bảng 2.1 Độ dài xâu ký tự số liệu tin sinh học 32 Bảng 2.2 Ví dụ điểm trội ma trận phương án 37 Bảng 2.3 Ví dụ việc xây dựng lại ma trận phương án với phần tử trội 39 Bảng 2.4 Ví dụ việc tìm phần tử trội độc lập hai vùng khác 41 Bảng 2.4 Chia ô vùng tìm kiếm xác định 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ê loại amino axit [28] 50 Bảng 3.3 Số phần tử trội trung bình số xâu khác bảng chữ ký tự độ dài xâu 64: 51 Bảng 3.4 Số phần tử trội trung bình số xâu khác bảng chữ 20 ký tự độ dài xâu 64: 52 Bảng 3.5 Thời gian chạy thuật toán với độ dài xâu 64 bảng chữ ký tự (giây) 52 Bảng 3.6 Thời gian chạy thuật toán với độ dài xâu 64 bảng chữ 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 128 bảng chữ ký tự (giây): 54 Bảng 3.8 Thời gian chạy thuật toán với độ dài xâu 128 bảng chữ 20 ký tự (giây): 54 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ẻ nhớ 15 Hình 1.6: Máy tính 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 liệu .19 Hình 1.10 Luật Amdahl 24 Hình 1.11: Sự trao đổi thông điệp 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 thuật toán với xâu độ dài 64 bảng chữ 20 ký tự 55 Hình 3.2 Thời gian chạy thuật toán với xâu độ dài 4096 bảng chữ 20 ký tự 55 Hình 3.3 Hệ số tăng tốc thuật toán với xâu độ dài 4096 bảng chữ 20 ký tự 56 Hình 3.4 Hệ số tăng tốc thuật toán với xâu độ dài 64 bảng chữ 20 ký tự 56 Hình 3.5 Hệ số hiệu thuật toán với xâu độ dài 64 bảng chữ 20 ký tự 57 DANH MỤC CÁC THUẬT TOÁN Trang Thuật toán 2.1 Thuật toán tìm dãy chung dài 34 Thuật toán 2.2 Thuật toán in dãy chung dài 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 chung dài 46 MỞ ĐẦU Nhân loại ngày chứng kiến phát triển mạnh mẽ ngành Công nghệ thông tin, ngành mũi nhọn nhiều quốc gia giới Sự phát triển vượt bậc kết tất yếu phát triển thiết bị phần cứng phần mềm tiện ích Từ máy tính đơn giản, tốc độ xử lý chậm, sử dụng số lĩnh vực kỹ thuật định, ngày chúng có khả tính toán tốc độ xử lý vượt trội trở thành công cụ thiếu lĩnh vực đời sống Những máy tính đời đầu tiên, hạn chế tốc độ xử lý chế vào liệu nên việc lập trình khó khăn Điều làm cho máy tính khả sử dụng dễ dàng phổ cập, ứng dụng số lĩnh vực khoa học đặc biệt Ngày nay, với phát triển mạnh mẽ thiết bị lưu trữ, nhớ, tốc độ xử lý thiết bị ngoại vi,… máy tính trở nên thân thiện với người sử dụng, tốc độ tính toán nhanh nhiều Nhờ mà nhiều toán lớn có khả thực thi nhiều ứng dụng đưa Tuy nhiên, thực tế nhiều vấn đề lớn với số lượng cần tính toán khổng lồ mà máy tính thông thường giải Vào thập kỷ 70, nhà khoa học đưa ý tưởng cấu trúc song song nhằm kết hợp sức mạnh nhiều xử lý máy tính, kết hợp nhiều máy tính với thông qua mạng máy tính tạo thành máy song song ảo Ngoài việc tính nhanh, máy tính song song có độ an toàn cao máy tính đơn, vài xử lý hỏng máy tính song song hoạt động máy tính đơn không làm điều Hiện giới có máy tính song song chứa đến hàng nghìn xử lý Để khai thác tiềm sức mạnh máy tính song song, với việc thiết kế kiến trúc song song ta phải nghiên cứu vấn đề quan trọng khác hệ điều hành hỗ trợ xử lý song song, ngôn ngữ lập trình thuật toán song song (0,1) (1,0) Cứ tiếp tục vậy, bước có khối độc lập (2,0), (1,1) (0,2); bước (3,0), (2,1), (1,2), (0,3); bước (3,1), (2,2), (1,3); bước (3,2) (2,3) bước (3,3) Tuy toán phân tích số hoán vị toán NP-Hard, nhiên số xâu ký tự so sánh không lớn ( and b < MAXB − ) If( b > and b < MAXB − ) 7: Gửi Dˆ (b−1) cho xử lý Nhận Dˆ (b−1) Gán D = D U Dˆ (b ) 8: 9: endIf 10: Dˆ id(b ) = FindDominant( key[id ] ) 11: If( b > and b < d × (k − 1) ) 12: For i = to k 13: Nhận Dˆ i(b ) 14: Gán Dˆ (b ) = Dˆ b U Dˆ i(b ) 15: Dˆ id(b ) = FindDominant( key[id ] ) Gửi Dˆ id(b ) cho xử lý chủ endFor 16: endIf endIf 17: b++ b++ 18: endWhile endWhile Thuật toán 2.4 Thuật toán song song tìm xâu chung dài 46 Trong đó: - D tập phần tử trội - key[id ] mảng đánh dấu khối độc lập mà xử lý id cần phải thực bước lặp - Hàm getKey( b ) dùng để lấy khối độc lập gán cho xử lý bước xử lý b - Hàm FindDominant( key[id ] ) hàm tìm kiếm phần tử trội với vùng tìm kiếm khối key[id ] Dˆ id(b ) tập phần tử trội vùng tìm kiếm Giải thuật song song phải bước cuối thực khối công việc Gọi B (i ) số khối độc lập bước thực thứ i ( ≤ i ≤ (d × (k − 1)) ) Gọi h = B (i ) ÷ k với ÷ phép chia lấy phần nguyên làm tròn lên Khi số khối thực : d ×( k −1) B= ∑ (B ( ) ÷ k ) i i =0 Gọi t thời gian thực khối, thời gian tính toán thuật toán Bt So với thuật toán tuần tự, số khối phải tính toán thuật toán song song Xét với số chiều 2, thời gian thực thuật toán song song (2 × k − 1) so với (k ) thuật toán Như vậy, k tăng, thời gian xử lý thuật toán song song tốt thuật toán nhiều Khi số xâu ký tự tăng lên, đồng nghĩa với việc xuất nhiều ô độc lập cho phép tiến hành chạy song song Khi thuật toán hiệu việc tính toán phần tử trội, giúp giảm thời gian tính toán 47 2.6 Kết luận chương Chương giới thiệu toán tìm xâu chung dài nhiều xâu ký tự, phương pháp quy hoạch động giải toán Đồng thời, chương giới thiệu phương pháp phần tử trội giúp giảm chi phí vùng nhớ cho toán đề xuất giải pháp song song hiệu cho toán Các kết thực nghiệm tiến hành chương 48 Chương – KẾT QUẢ THỰC NGHIỆM Chương nhằm đưa số kết chạy chương trình song song tìm xâu chung dài số liệu sinh ngẫu nhiên, từ so sánh đánh giá lại thuật toán trình bày 3.1 Bộ liệu Dữ liệu thuật toán sinh ngẫu nhiên với số chuỗi tăng dần từ 2,4,8 xâu với độ dài xâu 64, 128, 256, 512 hai bảng chữ với số chữ 20 Bảng mô tả chi tiết liệu: Bảng 3.1 Dữ liệu thực nghiệm thuật toán stt Dữ liệu Số xâu ký tự Độ dài xâu ký tự Cỡ bảng chữ Data1.txt 10 64 Data2.txt 10 64 20 Data3.txt 10 128 4 Data4.txt 10 128 20 Data5.txt 10 256 20 Data6.txt 10 512 20 Data7.txt 10 2048 20 Data8.txt 10 4096 20 Trong bảng liệu này, bảng gồm ký tự đại diện cho liệu DNA, RNA với nucleotit A, U, G, C A, T, G, C Còn bảng chữ 20 ký tự với chữ đại diện cho Amino axit bảng 2.1 49 Bảng 3.2 Bảng thống kê loại amino axit [28] Tên Amino axit Ký hiệu viết tắt ký Ký hiệu viết tắt ký tự tự Alanine Ala A 7.8% Valine Val V 6.6% Leucine Leu L 9.1% Isoleucine Ile I 5.3% Proline Pro P 5.2% Methionine Met M 2.2% Phenylalamine Phe F 3.9% Tryptophane Trp W 1.4% Glycine Gly G 7.2% Serine Ser S 6.8% Threonine Thr T 5.9% Cysteine Cys C 2.8% Tyrosine Tyr Y 3.2% Asparagine Asn N 4.3% Glutamine Gln Q 4.3% Histidine His H 2.3% Lysine Lys K 5.9% Arginine Arg R 5.1% Aspartic Axit Asp D 5.3% Glutamic Axit Glu E 6.3% 3.2 Tỉ lệ xuất Môi trường chạy Chương trình cài đặt ngôn ngữ C, sử dụng thư viện song song MPI cài đặt hệ thống bó IBM 1350 trung tâm tính toán Hiệu cao với cấu sau: 50 • node tính toán, node gồm chip Intel Xeon Dual Core 3.2 GHz, GB RAM, 1x36 GB HDD, DVD ROM Tổng lực tính toán node khoảng 51.2 Gflops • node phục vụ lưu trữ, node gồm chip Intel Xeon Dual Core 3.2 GHz, GB RAM, 4x72 GB HDD • node đóng vai trò quản lí bao gồm chip Intel Xeon Dual Core 3.2 GHz, GB RAM, 2x36 GBHDD • Năng lực lưu trữ: thiết bị lưu trữ dùng chung EXP400 với 10x73 GB HDD SCSI 320 MBps 15KRpm, dùng hệ thống chia sẻ file: GPFS cho Linux v2.3.0.5 • Các node chạy HĐH Redhat Enterprise Linux 3.0 kết nối với thông qua mạng Gethernet 3.3 Kết chạy thực nghiệm Dưới kết thu qua trình tính toán số nhận xét đánh giá hoạt động thuật toán song song tìm xâu chung dài nhiều xâu Bảng 3.3 Số phần tử trội trung bình số xâu khác bảng chữ ký tự độ dài xâu 64: Số xâu ký tự Số phần tử trội trung Độ dài xâu chung dài bình (ký tự) 309.4 43.3 2718.7 28.9 2354157.6 13.3 Từ bảng 3.3, số lượng phần tử trội trung bình nhỏ nhiều so với số phần tử ma trận phương án, nữa, độ dài xâu chung dài lại nhỏ 51 nhiều so với số phần tử trội Cụ thể hai chuỗi, số phần tử trội trung bình 309.4 so với 4096 phần tử ma trận phương án Tuy nhiên độ dài xâu chung dài lại 43.3 ký tự Đặc biệt, số xâu tăng lên số phần tử trội tăng theo với tốc độ nhanh độ dài xâu chung dài lại giảm đáng kể Với số xâu số phần tử trội 2718.7 độ dài xâu chung dài 28.9 Khi số xâu tăng lên thành số phần tử trội lớn với 2354157.6 phần tử độ dài xâu chung dài 13.3 Bảng 3.4 Số phần tử trội trung bình số xâu khác bảng chữ 20 ký tự độ dài xâu 64: Số xâu ký tự Số phần tử trội trung Độ dài xâu chung dài bình (ký tự) 135.7 20.8 230.3 9.4 2157.6 5.2 Bảng 3.5 Thời gian chạy thuật toán với độ dài xâu 64 bảng chữ ký tự (giây) Số xử lý \ Số xâu 0.00152 1.22 259234.4 0.08995 2.4144 150723.2 0.49937 3.5076 78358.7 1.47036 7.82 40762.1 52 Tương tự bảng 3.3, bảng 3.4 thể số phần tử trội độ dài xâu chung dài bảng chữ 20 ký tự Từ bảng ta có nhận xét số phần tử trội bảng chữ 20 ký tự số phần tử trội bảng chữ kỹ tự đáng kể Hơn nữa, số phần tử trội tăng độ dài xâu chung dài xâu giảm từ 20.8 đến 9.4, 5.2 với số xâu tương ứng 2, 4, Xét thời gian chạy, bảng 3.5, khí số xâu ký tự với độ dài 64 bảng ký tự cho thấy thời gian thực thuật toán ngắn, 0.00152 giây Thuật toán song song với số xử lý tăng thời gian tính toán chậm 0.08995, 0.49937, 1.47036 với 2, xử lý Đặc biệt số xâu tăng lên 4, thời gian tính toán 1.22 giây so với 2.4144 giây thuật toán song song với xử lý, 3.5076 giây với xử lý 7.82 giây với xử lý Có thể nhận thấy trường hợp này, thuật toán nhanh so với thuật toán song song số lượng tính toán không nhiều, thuật toán song song thời gian truyền thông xử lý Khi thời gian tính toán thấp nhiều so với thời gian truyền thông thuật toán song song không hiệu Khi tính toán đủ lớn, thời gian nhiều trường hợp với xâu, thuật toán song song tỏ có ưu hẳn Thời gian thực thuật toán giảm dần từ 259234.4 giây thuật toán 150723.2 giây thuật toán song song với xử lý đặc biệt giảm xuống 40762.1 giây xử lý Bảng 3.6 Thời gian chạy thuật toán với độ dài xâu 64 bảng chữ 20 ký tự (giây): Số xử lý \ Số xâu 0.00026 0.32865 55729.1 0.01174 0.43341 32864.3 0.42419 1.1378 17891.9 0.85971 3.212 9324.7 53 Cũng giống với bảng 3.5, thuật toán có thời gian chạy nhanh so với thuật toán song song với số xâu ký tự Tuy nhiên số xâu thuật toán song song chạy tốt hẳn Bảng 3.7 Thời gian chạy thuật toán với độ dài xâu 128 bảng chữ ký tự (giây): Số xử lý \ Số xâu 0.01673 66.9 0.815 35.96 1.18 24.7 2.42 30.721 Bảng 3.8 Thời gian chạy thuật toán với độ dài xâu 128 bảng chữ 20 ký tự (giây): Số xử lý \ Số xâu 0.00168 5.2 0.28505 4.93727 0.8 5.85548 1.41622 8.1261 Khi độ dài xâu ký tự tăng lên thành 128, việc tìm xâu chung dài hai xâu thuật toán nhanh so với thuật toán song song Tuy nhiên số xâu cần tìm rõ ràng, lúc thuật toán song song tỏ tốt bảng 3.7, thuật toán 66.9 giây thuật toán song song với hai xử lý 35.96 giây, 24.7 giây với xử lý 30.721 giây Rõ ràng, khối lượng tính toán tăng lên thuật toán song song chạy nhanh so với thuật toán 54 Thời gian chạy (s) 300000 250000 200000 64(4 ) 150000 64(20 ký tự) 100000 50000 Số xử lý Hình 3.1 Thời gian chạy thuật toán với xâu độ dài 64 bảng chữ 20 ký tự 40 Thời gian chạy (s) 35 30 25 20 4096(20 ký tự) 15 10 Số xử lý Hình 3.2 Thời gian chạy thuật toán với xâu độ dài 4096 bảng chữ 20 ký tự Hình 3.1 3.2 cho thấy thuật toán song song tỏ có hiệu kích thước toán tìm xâu chung dài đủ lớn Đối với trường hợp đặc biệt số xâu Thuật toán song song thực tốt độ dài xâu lớn 4096 Để đánh giá mức độ hiệu thuật toán song song trường hợp này, hình 3.3 thấy hệ số tăng tốc thuật toán Với số xử 55 lý 2, thuật toán có hệ số tăng tốc cỡ 1.3, với số xử lý 4, hệ số tăng tốc gần đặt với số xử lý hệ số đạt 3.3 Có thể với độ dài xâu 4096 thời gian tính toán với thời gian truyền thông thuật toán song song chênh lệch không nhiều dẫn đến hệ số tăng tốc không đạt cao 3.5 Hệ số tăng tốc 2.5 4096(20) 1.5 0.5 Số xử lý Hình 3.3 Hệ số tăng tốc thuật toán với xâu độ dài 4096 bảng chữ 20 ký tự Hệ số tăng tốc 64(4) 64(20) 1 Số xử lý Hình 3.4 Hệ số tăng tốc thuật toán với xâu độ dài 64 bảng chữ 20 ký tự 56 1,2 Hệ số hiệu 0,8 64(4) 0,6 64(20) 0,4 0,2 Số xử lý Hình 3.5 Hệ số hiệu thuật toán với xâu độ dài 64 bảng chữ 20 ký tự Đánh giá: Để đánh giá mức độ hiệu thuật toán song song, hình 3.5 thể hệ số tăng tốc thuật toán với xâu độ dài 64 bảng chữ ký tự 20 ký tự Với số xử lý tăng lên, thuật toán tăng tốc nhanh, từ cỡ 1.7 với xử lý tăng lên cỡ 3.2 với lên cỡ với xử lý Với bảng chữ ký tự, thuật toán có hệ số tăng tốc cao so với bảng chữ 20 ký tự Tuy nhiên xét mức độ hiệu thuật toán hình 3.5 số xử lý tăng lên mức độ hiệu lại giảm dần, từ khoảng 0.85 đến 0.8 đến 0.79 với 2, xử lý Như thuật toán song song thực hiệu công việc thực xử lý đủ lớn, trường hợp với số xâu lớn với độ dài xâu 64 với độ dài xâu lớn 4096 57 KẾT LUẬN Luận văn trình bày số nội dung sau: Một số kiến thức tổng quan xử lý song song bao gồm hệ thống song song, mô hình lập trình song song, nguyên lý thiết kế thuật toán song song kiến trúc cụm máy tính trung tâm tính toán hiệu cao Luận văn giới thiệu giao diện truyền thông điệp MPI nhằm mục đích áp dụng lập trình MPI với ngôn ngữ C cho toán tìm xâu chung nhiều xâu song song Trình bày thuật toán tìm xâu chung dài nhiều xâu, thuật toán điển hình tin sinh học, với phương pháp phần tử trội đề xuất giải thuật song song tìm xâu chung dài nhiều xâu Cài đặt chương trình tìm xâu chung dài nhiều xâu song song hệ thống song song trung tâm tính toán Hiệu cao với liệu sinh ngẫu nhiên theo chuẩn toán tin sinh học Từ kết nhận được, luận văn thuật toán tìm xâu chung dài với phương pháp phần tử trội tốt cho toán tìm xâu chung dài nhiều xâu phương pháp giảm thiểu vùng nhớ cần lưu, đồng thời từ phần tử trội dễ dàng tìm xâu cách nhanh chóng Thuật toán song song mang lại hiệu thời gian chạy giảm xâu có độ dài cao số xâu lớn Trong tương lai luận văn tiếp tục nghiên cứu thuật toán song song xâu tin sinh học toán bắt cặp trình tự, toán khôi phục chuỗi liên kết, v.v 58 TÀI LIỆU THAM KHẢO Tiếng Việt Đoàn Văn Ban, Nguyễn Mậu Hân (2006), Xử lý song song phân tán, NXB KHKT Nguyễn Hữu Điển (2006), Một số vấn đề thuật toán, NXB giáo dục Tiếng Anh Barry Wilkinson, Michael Allen, Parallel Programming, Prentice Hall, 1999 Cameron Hughes, Tracey Hughes (2003), Programming Using C++, Addison Wesley Parallel and Distributed 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 H Roosta (2000), Parallel Processing and Parallel Algorithms, SpringerVerlag Korkin, D., Wang, Q., & Shang, Y (2008, September) An efficient parallel algorithm for the multiple longest common subsequence (mlcs) problem In Parallel Processing, 2008 ICPP'08 37th International Conference on (pp 354-363) IEEE 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 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 10 M Sasikumar, Dinesh Shikhare, P Ravi Prakash (2000), Introduction to Parallel Processing, Prentice – Hall 11 Jones, N C., & Pevzner, P (2004) An introduction to bioinformatics algorithms MIT press 12 Pevsner, J (2009) Bioinformatics and functional genomics John Wiley & Sons 13 Seyed H Roosta, Parallel Processing and Parallel Algorithms, Springer-Verlag, 2000 59 [...]... 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úc song song 1.3.4 Phân tích và đánh... toán song song ta còn phải chú ý đế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ự sang thuậ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 20 1.3.3 Các cách tiếp cận trong thiết kế thuật toán song song... 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 đo lườ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... 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ệu phù 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ày tá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ỡ... tàng trong mô hình máy tính nhiều bộ xử lý song song, cũng như trong mô hình mạng máy tính xử lý song song thì 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 song song 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. .. Thiết kế và đánh giá thuật toán song song 1.3.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 được gọi là thuật toán song song 19 1.3.2 Các nguyên lý thiết kế. .. 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 ra trong 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... học và nghiên cứu protein Các ứng dụng chủ tập trung vào việc sử dụng thông tin kết hợp với tính toán trong việc tìm hiểu vai trò kết hợp giữa DNA, RNA và protein trong một cơ thể sống Bài toán tìm dãy con chung dài nhất của nhiều chuỗi được ứng dụng nhiều trong các lĩnh vực sinh học và di truyền học tính toán Đã có nhiều phương pháp có hiệu quả cho bài toán này với phương pháp quy hoạch động song song... hành), giải thuật và ngôn ngữ lập trình, … Độ phức tạp Độ phức tạp của tính 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 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ụng những ngôn ngữ lập trình song song như: OpenMP... 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ực hiệ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