Luận văn Thạc sĩ Khoa học: 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

68 84 0
Luận văn Thạc sĩ Khoa học: 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

Đ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

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 Non­Uniform 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. 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 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ả 

Ngày đăng: 17/01/2020, 07:07

Từ khóa liên quan

Mục lục

  • MỞ ĐẦU

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        • KẾT LUẬN

        • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan