Đang tải... (xem toàn văn)
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.
`ĐẠ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 TỐN CƠ BẢN TRONG TÍNH TỐ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 TỐN CƠ BẢN TRONG TÍNH TỐN SONG SONG VÀ ỨNG DỤNG Chun ngành: Bảo đảm tốn học cho máy tính và hệ thống tính tố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 q trình tìm hiểu nghiên cứu để hồn thành luận văn, tơi gặp khơng ít khó khăn, nhưng những lúc như vậy, tơi ln nhận được sự động viên, khích lệ của 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 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ìm tà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 Tố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 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 trong thời gian tơi học cao học tại trường Đại học KHTN ĐHQGHN. Tơi xin cảm ơn các thầy cơ, các anh chị của Trung Tâm Tính Tốn Hiệu Năng Cao đã tạo điều kiện và giúp đỡ tơi rất nhiều trong việc hồ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 đã ln 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. 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 15 Chương 1 – TÍNH TỐN SONG SONG 17 1.1. Tổng quan về xử lý song song 17 1.2. Các mơ hình lập trình song song 23 1.3. Thiết kế và đánh giá thuật toán song song 26 1.4. Mơ hình lập trình truyền thơng điệp – MPI song song 32 Chương 2 – SONG SONG HĨA THUẬT TỐN TÌM XÂU CON CHUNG DÀI NHẤT 37 Chương 3 – KẾT QUẢ THỰC NGHIỆM 57 KẾT LUẬN 66 TÀI LIỆU THAM KHẢO 67 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 tốn/máy tính hiệu năng cao LCS 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ệu MISD 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 NonUniform Memory Access Truy cập bộ 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 dữ liệu SISD Simple Instruction simpleData Đơn luồng lệnh đơn luồng dữ 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 bộ nhớ đồng thời DANH MỤC CÁC BẢNG Trang Trang 7 8 Bảng 2.1 Độ dài xâu ký tự của một số dữ liệu tin sinh học 39 Bảng 2.2 Ví dụ về các điểm trội trong ma trận phương án. 45 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. 47 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. 49 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 50 Bảng 3.1. Dữ liệu thực nghiệm thuật toán 57 Bảng 3.2. Bảng thống kê các loại amino axit [28] 58 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: 59 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: 60 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) 60 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): 61 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): 62 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): 62 DANH MỤC CÁC HÌNH VẼ Trang Hình 1.1. Mơ tả kiến trúc Von Neumann 17 Hình 1.2: Mơ hình máy SISD 19 Hình 1.3: Mơ hình máy tính SIMD 20 Hình 1.4: Mơ hình máy MIMD 21 Hình 1.5: Máy tính chia sẻ bộ nhớ 22 Hình 1.6: Máy tính bộ nhớ phân tán 22 Hình 1.8: Mơ hình truyền thơng điệp 25 Hình 1.9: Mơ hình lập trình phân hoạch dữ liệu 26 Hình 1.10 Luật Amdahl 32 Hình 1.11: Sự trao đổi thơng điệp giữa hai tiến trình 33 Hình 1.12: Cấu trúc chương trình MPI 37 Hình 3.1. Thời gian chạy của thuật tốn với 8 xâu độ dài 64 trên bảng chữ cái 4 và 20 ký tự 63 Hình 3.2. Thời gian chạy của thuật tốn với 2 xâu độ dài 4096 trên bảng chữ cái 20 ký tự 63 Hình 3.3. Hệ số tăng tốc của thuật tốn với 2 xâu độ dài 4096 trên bảng chữ cái 20 ký tự 64 Hình 3.4. Hệ số tăng tốc của thuật tốn với 8 xâu độ dài 64 trên bảng chữ cái 4 và 20 ký tự 64 Hình 3.5. Hệ số hiệu quả của thuật tốn với 8 xâu độ dài 64 trên bảng chữ cái 4 và 20 ký tự 65 DANH MỤC CÁC THUẬT TỐN Trang Thuật tốn 2.1. Thuật tốn tuần tự tìm dãy con chung dài nhất 42 A 42 G 42 G 42 T 42 G 42 C 42 T 42 G 42 0 42 1 42 1 42 1 42 1 42 1 42 1 42 C 42 0 42 1 42 1 42 1 42 1 42 2 42 1 42 C 42 0 42 1 42 1 42 1 42 1 42 2 42 1 42 T 42 0 42 1 42 1 42 2 42 10 tròn). Đến bước thực hiện 1, dựa vào một phần tử trội tại bước 0, hai khối tại bước 1 sẽ thực hiện tìm kiếm các phần tử trội. Kết quả trả về được ba phần tử trội, sẽ được ghép lại với phần tử trội tại bước 0 cho các bước thực hiện 2, 3 và Giả thiết trong k bộ xử lý có một bộ xử lý là chủ (master) và các bộ còn lại là khách (slave). Gọi b là bước thực hiện và MAXB ( MAXB d k 1 ) là số bước tuần tự thực hiện. Một mảng hai chiều key sẽ lưu lại vị trí các ơ độc lập trong một bước của từng bộ xử lý. Mỗi bộ xử lý sẽ được gán một số hiệu id để phân biệt với các bộ xử lý khác và sẽ nhận được key tương ứng với số hiệu id của mình. Trong một vòng lặp, số thứ tự lặp được xác định bằng biến b , bộ xử lý chủ sẽ gửi cơng việc là một số khối độc lập cho từng bộ xử lý để tìm các phần tử trội. Các bộ xử lý sau khi tìm được các phần tử trội, sẽ gửi lại các phần tử này cho bộ xử lý chủ để tổng hợp lại để chuyển sang bước lặp b Thuật tốn song song được thể hiện như sau: Input d xâu ký tự độ dài n Output Tập các phần tử trội và xâu con chung dài nhất của d xâu ký tự MASTER SLAVER 1: b b 2: D D 3: While( b MAXB ) While( b MAXB ) 4: key =getKey( b ) 5: Gửi key[i ] cho bộ xử lý i Nhận key[id ] 6: If( b and b MAXB ) If( b and b MAXB ) 7: Gửi Dˆ b cho các bộ xử lý Nhận Dˆ b 8: Gán D D Dˆ b 9: endIf 10: Dˆ idb = FindDominant( key[id ] ) Dˆ idb = FindDominant( key[id ] ) 11: If( b and b d k ) 54 12: For i = 1 to k 13: Nhận Dˆ i b 14: Gán Dˆ b 15: endFor 16: endIf endIf 17: b b Gửi Dˆ idb cho bộ xử lý chủ Dˆ b Dˆ i b 18: endWhile endWhile Thuật tốn 2.4. Thuật tốn song song tìm xâu con chung dài nhất Trong đó: D là tập các phần tử trội key[id ] là một mảng đánh dấu các khối độc lập mà bộ xử lý id cần phải thực hiện trong một bước lặp. Hàm getKey( b ) dùng để lấy các khối độc lập gán cho các bộ xử lý ở bước xử lý tuần tự b Hàm FindDominant( key[id ] ) là hàm tìm kiếm các phần tử trội với vùng tìm kiếm là khối key[id ] Dˆ idb là tập các phần tử trội trong vùng tìm kiếm này Giải thuật song song phải mất một bước đầu tiên và cuối thực hiện tuần tự khối cơng việc Gọi B i số khối độc lập bước thực hiện thứ i ( i d k ). Gọi h Bi k với là phép chia lấy phần ngun làm tròn lên. Khi đó số khối thực hiện tuần tự sẽ là : B d k Bi k i Gọi t là thời gian thực hiện một khối, khi đó thời gian tính tốn của thuật tốn sẽ là Bt So với thuật tốn tuần tự, số khối phải tính tốn tuần tự của thuật tốn song song ln ít hơn. Xét với số chiều bằng 2, thời gian thực hiện của 55 thuật tốn song song là k so với k của thuật toán tuần tự. Như vậy, khi k càng tăng, thời gian xử lý của thuật toán song song sẽ tốt hơn thuật toán tuần tự khá nhiều. Khi số xâu ký tự tăng lên, đồng nghĩa với việc xuất hiện rất nhiều các ơ độc lập cho phép tiến hành chạy song song. Khi đó thuật tốn sẽ hiệu quả hơn trong việc tính tốn các phần tử trội, giúp giảm thời gian tính tốn 2.6 Kết luận chương Chương 2 đã giới thiệu về bài tốn tìm xâu con chung dài nhất của nhiều xâu ký tự, phương pháp quy hoạch động giải bài tốn này. Đồng thời, chương 2 cũng giới thiệu phương pháp phần tử trội giúp giảm chi phí vùng nhớ cho bài tốn và đề xuất một giải pháp song song hiệu quả cho bài tốn này. Các kết quả thực nghiệm được tiến hành trong chương 3. 56 Chương 3 – KẾT QUẢ THỰC NGHIỆM Chương này nhằm đưa ra một số kết quả khi chạy chương trình song song tìm xâu con chung dài nhất trên một số bộ dữ liệu được sinh ngẫu nhiên, từ đó so sánh và đánh giá lại các thuật tốn đã trình bày. 3.1 Bộ dữ liệu Dữ liệu của thuật tốn được 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 lần lượt bằng 64, 128, 256, 512 trên hai bảng chữ cái với số chữ cái là 4 và 20. Bảng 6 mơ tả chi tiết từng bộ dữ liệu: Bảng 3.1. Dữ liệu thực nghiệm thuật tốn stt Dữ liệu Số xâu ký tự Độ dài xâu ký tự Cỡ bảng chữ cái Data1.txt 10 64 Data2.txt 10 64 20 Data3.txt 10 128 4 Data4.txt 10 128 20 Data5.txt 10 256 20 57 Data6.txt 10 512 20 Data7.txt 10 2048 20 Data8.txt 10 4096 20 Trong bảng dữ liệu này, bảng chứ cái gồm 4 ký tự đại diện cho dữ liệu về DNA, RNA với các nucleotit là A, U, G, C hoặc A, T, G, C. Còn bảng chữ cái 20 ký tự với các chữ cái đại diện cho các Amino axit như trong bảng 2.1 Bảng 3.2. Bảng thống kê các loại amino axit [28] Tên Amino axit Ký hiệu viết tắt 3 Ký hiệu viết tắt 1 ký Tỉ lệ xuất ký tự Ala Val Leu Ile Pro Met Phe Trp Gly Ser Thr Cys Tyr Asn Gln His Lys Arg Asp Glu tự A V L I P M F W G S T C Y N Q H K R D E 7.8% 6.6% 9.1% 5.3% 5.2% 2.2% 3.9% 1.4% 7.2% 6.8% 5.9% 2.8% 3.2% 4.3% 4.3% 2.3% 5.9% 5.1% 5.3% 6.3% Alanine Valine Leucine Isoleucine Proline Methionine Phenylalamine Tryptophane Glycine Serine Threonine Cysteine Tyrosine Asparagine Glutamine Histidine Lysine Arginine Aspartic Axit Glutamic Axit 3.2 Mơi trường chạy 58 Chương trình được cài đặt bằng ngơn ngữ C, sử dụng thư viện song song MPI và được cài đặt trên hệ thống bó IBM 1350 của trung tâm tính tốn Hiệu năng cao với cấu hình như sau: 8 node tính tốn, mỗi node gồm 2 chip Intel Xeon Dual Core 3.2 GHz, 2 GB RAM, 1x36 GB HDD, DVD ROM. Tổng năng lực tính tốn của 8 node là khoảng 51.2 Gflops 2 node phục vụ lưu trữ, mỗi node gồm 2 chip Intel Xeon Dual Core 3.2 GHz, 3 GB RAM, 4x72 GB HDD 1 node đóng vai trò quản lí bao gồm chip Intel Xeon Dual Core 3.2 GHz, 3 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 và được kết nối với nhau thơng qua mạng Gethernet 3.3 Kết quả chạy thực nghiệm Dưới đây là các kết quả thu được của các qua trình tính tốn và một số nhận xét đánh giá về sự hoạt động của thuật tốn song song tìm xâu con chung dài nhất của nhiều xâu. 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: Số xâu ký tự Số phần tử trội trung Độ dài xâu con chung dài bình nhất (ký tự) 309.4 43.3 2718.7 28.9 59 2354157.6 13.3 Từ bảng 3.3, số lượng các phần tử trội trung bình là nhỏ hơn rất nhiều so với số phần tử của ma trận phương án, hơn nữa, độ dài xâu con chung dài nhất lại nhỏ hơn khá nhiều so với số phần tử trội. Cụ thể đối với hai chuỗi, số phần tử trội trung bình chỉ là 309.4 so với 4096 phần tử của ma trận phương án. Tuy nhiên độ dài xâu con chung dài nhất lại chỉ là 43.3 ký tự. Đặc biệt, khi số xâu càng tăng lên thì số phần tử trội cũng tăng theo với tốc độ khá nhanh nhưng độ dài xâu con chung dài nhất thì lại giảm đi đáng kể. Với số xâu là 4 thì số phần tử trội đã là 2718.7 trong khi độ dài xâu con chung dài nhất chỉ là 28.9. Khi số xâu tăng lên thành 8 thì số phần tử trội đã là rất lớn với 2354157.6 phần tử nhưng độ dài xâu con chung dài nhất chỉ là 13.3 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: Số xâu ký tự Số phần tử trội trung Độ dài xâu con chung dài bình nhất (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 là 64 trên bảng chữ cái 4 ký tự (giây) Số bộ 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 60 Tương tự như bảng 3.3, bảng 3.4 thể hiện số phần tử trội và độ dài xâu con chung dài nhất trên bảng chữ cái 20 ký tự. Từ bảng này ta có nhận xét số phần tử trội trên bảng chữ cái 20 ký tự ít hơn số phần tử trội trên bảng chữ cái 4 kỹ tự đáng kể. Hơn nữa, khi số phần tử trội tăng thì độ dài xâu con chung dài nhất của các xâu giảm đi lần lượt từ 20.8 rồi đến 9.4, 5.2 với số xâu tương ứng là 2, 4, 8. Xét về thời gian chạy, trên bảng 3.5, khí số xâu ký tự bằng 2 với độ dài 64 trên bảng chứ cái 4 ký tự cho thấy thời gian thực hiện thuật tốn tuần tự rất ngắn, bằng 0.00152 giây. Thuật tốn song song với số bộ xử lý càng tăng thì thời gian tính tốn càng chậm lần lượt bằng 0.08995, 0.49937, 1.47036 với 2, 4 và 8 xử lý. Đặc biệt khi số xâu tăng lên bằng 4, thời gian tính tốn tuần tự mất 1.22 giây so với 2.4144 giây của thuật tốn song song với 2 bộ xử lý, 3.5076 giây với 4 bộ xử lý và 7.82 giây với 8 bộ xử lý. Có thể nhận thấy trong trường hợp này, thuật tốn tuần tự nhanh hơn so với thuật tốn song song bởi số lượng tính tốn khơng nhiều, các thuật tốn song song mất thời gian truyền thơng giữa các bộ xử lý. Khi thời gian tính tốn thấp hơn rất nhiều so với thời gian truyền thơng thì các thuật tốn song song khơng hiệu quả. Khi các tính tốn đủ lớn, mất thời gian khá nhiều như trường hợp với 8 xâu, thuật tốn song song tỏ ra có ưu thế hơn hẳn. Thời gian thực hiện thuật tốn giảm dần từ 259234.4 giây đối với thuật tốn tuần tự chỉ còn 150723.2 giây đối với thuật tốn song song với 2 bộ xử lý và đặc biệt giảm xuống còn 40762.1 giây đối với 8 bộ xử lý Bảng 3.6. Thời gian chạy thuật tốn với độ dài xâu là 64 trên bảng chữ cái 20 ký tự (giây): Số bộ 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 61 Cũng giống với bảng 3.5, thuật tốn tuần tự có thời gian chạy nhanh hơn so với thuật tốn song song với số xâu ký tự là 2 và 4. Tuy nhiên khi số xâu là 8 thì thuật tốn song song chạy tốt hơn hẳn Bảng 3.7. Thời gian chạy thuật tốn với độ dài xâu là 128 trên bảng chữ cái 4 ký tự (giây): Số bộ xử lý \ Số xâu 4 0.01673 0.815 1.18 2.42 66.9 35.96 24.7 30.721 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): Số bộ xử lý \ Số xâu 4 0.00168 0.28505 0.8 1.41622 5.2 4.93727 5.85548 8.1261 Khi độ dài xâu ký tự được tăng lên thành 128, việc tìm xâu con chung dài nhất của hai xâu đối với thuật tốn tuần tự vẫn nhanh hơn so với thuật tốn song song. Tuy nhiên khi số xâu cần tìm là 4 thì rõ ràng, lúc này thuật tốn song song tỏ ra tốt hơn khi trong bảng 3.7, thuật tốn tuần tự mất 66.9 giây trong khi thuật tốn song song với hai bộ xử lý chỉ mất 35.96 giây, 24.7 giây với 4 bộ xử lý và 30.721 giây đối với 8 bộ. Rõ ràng, khi khối lượng tính tốn tăng lên thì thuật tốn song song chạy nhanh hơn so với thuật tốn tuần tự 62 Thời gian chạy (s) 300000 250000 200000 64(4 ) 64(20 ký tự) 150000 100000 50000 Số xử lý Hình 3.1. Thời gian chạy của thuật tốn với 8 xâu độ dài 64 trên bảng chữ cái 4 và 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 của thuật tốn với 2 xâu độ dài 4096 trên bảng chữ cái 20 ký tự Hình 3.1 và 3.2 cho thấy thuật tốn song song tỏ ra có hiệu quả khi kích thước của bài tốn tìm xâu con chung dài nhất đủ lớn. Đối với trường hợp đặc biệt khi số xâu bằng 2. Thuật tốn song song chỉ thực sự tốt khi độ dài xâu lớn hơn 4096. Để có thể đánh giá về mức độ hiệu quả của thuật tốn song song 63 trong trường hợp này, trong hình 3.3 chúng ta có thể thấy được hệ số tăng tốc của thuật tốn. Với số bộ xử lý bằng 2, thuật tốn có hệ số tăng tốc cỡ 1.3, với số bộ xử lý bằng 4, hệ số tăng tốc gần đặt 2 và với số bộ xử lý bằng 8 thì hệ số đạt cơ 3.3. Có thể với độ dài xâu là 4096 thì thời gian tính tốn với thời gian truyền thơng của thuật tốn song song chênh lệch khơng q nhiều dẫn đến hệ số tăng tốc không đạt cao. Hệ số tăng tốc 3.5 2.5 1.5 4096(20) 0.5 Số xử lý Hình 3.3. Hệ số tăng tốc của thuật tốn với 2 xâu độ dài 4096 trên bảng chữ cái 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 của thuật tốn với 8 xâu độ dài 64 trên bảng chữ cái 4 và 20 ký tự 64 1,2 Hệ số hiệu 0,8 64(4) 64(20) 0,6 0,4 0,2 Số xử lý Hình 3.5. Hệ số hiệu quả của thuật tốn với 8 xâu độ dài 64 trên bảng chữ cái 4 và 20 ký tự Đánh giá: Để đánh giá mức độ hiệu quả của thuật tốn song song, hình 3.5 thể hiện hệ số tăng tốc của thuật tốn với 8 xâu độ dài 64 trên bảng chữ cái 4 ký tự và 20 ký tự. Với số bộ xử lý càng tăng lên, thuật tốn tăng tốc càng nhanh, từ cỡ 1.7 với 2 bộ xử lý tăng lên cỡ 3.2 với 4 bộ và lên cỡ 6 với 8 bộ xử lý. Với bảng chữ cái 4 ký tự, thuật tốn có hệ số tăng tốc cao hơn so với bảng chữ cái 20 ký tự. Tuy nhiên khi xét về mức độ hiệu quả của thuật tốn hình 3.5 thì khi số bộ xử lý tăng lên thì mức độ hiệu quả trên mỗi bộ lại giảm dần, từ khoảng 0.85 đến 0.8 rồi đến 0.79 với 2, 4 và 8 bộ xử lý Như vậy thuật tốn song song chỉ thực sự hiệu quả khi cơng việc thực hiện tại mỗi bộ xử lý đủ lớn, trong trường hợp này là với số xâu lớn hơn bằng 8 với độ dài xâu là 64 hoặc với độ dài xâu lớn hơn 4096 65 KẾT LUẬN Luận văn đã trình bày được một số nội dung sau: Một số kiến thức tổng quan về xử lý song song bao gồm hệ thống song song, các mơ hình lập trình song song, ngun lý thiết kế thuật tốn song song và kiến trúc cụm máy tính của trung tâm tính tốn hiệu năng cao. Luận văn đã giới thiệu về 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 bài tốn tìm xâu con chung của nhiều xâu song song. Trình bày thuật tốn tìm xâu con chung dài nhất của nhiều xâu, một thuật tốn điển hình trong tin sinh học, với phương pháp phần tử trội và đề xuất một giải thuật song song tìm xâu con chung dài nhất của nhiều xâu. Cài đặt chương trình tìm xâu con chung dài nhất của nhiều xâu song song trên hệ thống song song của trung tâm tính tốn Hiệu năng cao với bộ dữ liệu được sinh ngẫu nhiên theo chuẩn của bài tốn tin sinh học. Từ các kết quả nhận được, luận văn đã chỉ ra rằng thuật tốn tìm xâu con chung dài nhất với phương pháp phần tử trội khá tốt cho bài tốn tìm xâu con chung dài nhất của nhiều xâu bởi phương pháp này giảm thiểu được vùng nhớ cần lưu, đồng thời từ các phần tử trội có thể dễ dàng tìm ra xâu con một cách nhanh chóng. Thuật tốn song song mang lại hiệu quả thời gian chạy giảm đối với những xâu có độ dài cao và số xâu lớn. Trong tương lai luận văn tiếp tục nghiên cứu các thuật tốn song song về xâu trong tin sinh học như bài tốn bắt cặp trình tự, bài tốn khơi phục chuỗi liên kết, .v.v 66 TÀI LIỆU THAM KHẢO Tiếng Việt Đồn Văn Ban, Nguyễn Mậu Hân (2006), Xử lý song song và phân tán, NXB KHKT Nguyễn Hữu Điển (2006), Một số vấn đề về thuật tốn, NXB giáo dục Tiếng Anh Barry Wilkinson, Michael Allen, Parallel Programming, Prentice Hall, 1999 Cameron Hughes, Tracey Hughes (2003), Parallel and Distributed Programming Using C++, Addison Wesley 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, Springer Verlag 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. 354363). 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 bitvector algorithm for approximate string matching based on dynamic programming. Journal of the ACM (JACM), 46(3), 395415 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, SpringerVerlag, 2000 67 68 ... 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 TỐN CƠ BẢN TRONG TÍNH TỐN SONG SONG VÀ ỨNG DỤNG Chun ngành: Bảo đảm tốn học cho máy tính và hệ thống tính tốn Mã số: 62 46 01 10... để 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 tốn song song mới trên cơ sở thuật tốn song song đã có Thiết kế thuật tốn song song hồn tồn mới thích ứng với những cấu trúc song song. 1.3.4... xử lý song song, thuật tố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 tốn tìm dãy con chung dài nhất trong tính tốn song song; Chương 3 trình bày một số kết quả