intTypePromotion=1

LUẬN VĂN: NGHIÊN CỨU HỆ THỐNG CỤM MÁY TÍNH XỬ LÝ SONG SONG ROCKS VÀ ỨNG DỤNG

Chia sẻ: Lan Lan | Ngày: | Loại File: PDF | Số trang:186

0
231
lượt xem
88
download

LUẬN VĂN: NGHIÊN CỨU HỆ THỐNG CỤM MÁY TÍNH XỬ LÝ SONG SONG ROCKS VÀ ỨNG DỤNG

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu này giới thiệu sơ lược về công nghệ xử lý song song nói chung và công nghệ xử lý song song phân cụm nói riêng, sau đó tập trung nghiên cứu một hệ thống cụm máy tính xử lý song song tiêu biểu: Rocks. Các nội dung chính được trình bày là: Các kiến trúc xử lý song song SISD, SIMD, MISD, MIMD (theo phân loại của Flynn), cùng các hệ thống tính toán đa nhân, các hệ thống đa xử lý đối xứng, các hệ thống tính toán lưới, tính toán cụm và các hệ thống xử...

Chủ đề:
Lưu

Nội dung Text: LUẬN VĂN: NGHIÊN CỨU HỆ THỐNG CỤM MÁY TÍNH XỬ LÝ SONG SONG ROCKS VÀ ỨNG DỤNG

  1. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG Đ ẠI HỌC CÔNG NGHỆ Bùi Ngọc Linh NGHIÊN CỨU HỆ THỐNG CỤM MÁY TÍNH XỬ LÝ SONG SONG ROCKS VÀ ỨNG DỤNG KHOÁ LU ẬN TỐT NGHIỆP Đ ẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2010
  2. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG Đ ẠI HỌC CÔNG NGHỆ Bùi Ngọc Linh NGHIÊN CỨU HỆ THỐNG CỤM MÁY TÍNH XỬ LÝ SONG SONG ROCKS VÀ ỨNG DỤNG KHOÁ LU ẬN TỐT NGHIỆP Đ ẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hƣớng dẫn: TS. Nguyễn Trí Thành HÀ NỘI - 2010
  3. LỜI CẢM ƠN Trƣớc hết, tôi xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới Tiến sỹ Nguyễn Trí Thành, ngƣời đã trực tiếp giảng dạy và tận tình giúp đỡ tôi trong quá trình làm khóa luận. Tôi xin chân thành cảm ơn toàn thể các thầy cô giáo trƣờng Đại học Công nghệ - Đại họ c Quốc gia Hà Nội đã tận tình ch ỉ bảo, dạy dỗ tôi trong suốt 4 năm học vừa qua. Tôi xin chân thành cảm ơn thƣ viện Đại học Quốc gia Hà Nội, thƣ việ n Hội sinh viên trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội đã giúp đỡ tôi rất nhiều tài liệ u quý báu trong quá trình học tập và nghiên cứu. Cuối cùng, tôi xin chân thành cảm ơn gia đình và bạn bè, nhữ ng ngƣời đã luôn động viên, giúp đỡ tôi trong học tập cũng nhƣ trong cuộc số ng. i
  4. TÓM TẮT NỘI DUNG Tài liệu này giới thiệu sơ lƣợc về công nghệ xử lý song song nói chung và công nghệ xử lý song song phân c ụm nói riêng, sau đó tập trung nghiên cứu một hệ thống cụm máy tính xử lý song song tiêu biể u: Rocks. Các nội dung chính đƣợc trình bày là: Các kiến trúc xử lý song song SISD, SIMD, MISD, MIMD (theo phân lo ại c ủa Flynn), cùng các hệ thống tính toán đa nhân, các hệ thống đa xử lý đối xứ ng, các hệ thống tính toán lƣới, tính toán c ụm và các hệ thống xử lý song song cực lớn (Chƣơng 2); giới thiệu tổng quan về kiế n trúc và thành phần c ủa hệ thống Rocks, hƣớng dẫn cài đ ặt, nghiên cứu kiế n trúc hệ thố ng và cách quản trị (Chƣơng 3); hƣớng dẫn lập trình MPI căn bản, phƣơng pháp xây dự ng ứ ng d ụng MPI để đạt hiệu quả cao, tận d ụng đƣợc tài nguyên hệ thống (Chƣơng 4); Chƣơng 5 của khóa luận trình bày chi tiết một ứ ng d ụng xử lý song song tiêu biểu, cùng cách thức thiết lập môi trƣờng và hƣớng dẫ n biên d ịch. Phần cuối của tài liệu có trình bày 4 phụ lục, xem nhƣ là các nội dung mở rộng cho nhữ ng phần đã trình bày trong các chƣơng. ii
  5. MỤC LỤC LỜI CẢM ƠN ........................................................................................................................................ i TÓM T ẮT NỘI DUNG ........................................................................................................................ii MỤC LỤC ........................................................................................................................................... iii DANH MỤC B ẢNG BIỂU ...............................................................................................................vii DANH MỤC HÌNH VẼ ................................................................................................................... viii CHƢƠNG 1. GIỚI THIỆU .................................................................................................................. 1 CHƢƠNG 2. CÁC KIẾN TRÚC VÀ CÁC H Ệ THỐNG XỬ LÝ SONG SONG ........................... 4 Các ki ến trúc xử lý song song ........................................................................................... 4 2. 1. 2. 1. 1. SISD ............................................................................................................................ 6 2. 1. 2. SIMD .......................................................................................................................... 7 2. 1. 3. MISD .......................................................................................................................... 7 2. 1. 4. MIMD ......................................................................................................................... 8 Các hệ thống xử lý song song ........................................................................................... 8 2. 2. Các hệ thống tính toán đa nhân ................................................................................. 8 2. 2. 1. Các hệ thống đa xử lý đ ối xứ ng ................................................................................ 9 2. 2. 2. Các hệ thống tính toán phân tán .............................................................................. 10 2. 2. 3. Các hệ thống tính toán lƣ ới ............................................................................... 10 2. 2. 3. 1. Các hệ thống xử lý song song cự c lớn ............................................................. 12 2. 2. 3. 2. Các hệ thống tính toán cụm .............................................................................. 12 2. 2. 3. 3. iii
  6. CHƢƠNG 3. HỆ THỐNG ROCKS .................................................................................................. 16 Giới thiệu.......................................................................................................................... 16 3. 1. Tổng quan ................................................................................................................. 16 3. 1. 1. Kiến trúc của HPC Cluster sử dụng Rocks ............................................................ 17 3. 1. 2. 3. 1. 3. Rocks và Rolls.......................................................................................................... 18 Cài đặt............................................................................................................................... 20 3. 2. Cấu hình .................................................................................................................... 20 3. 2. 1. Cài đặt frontend ........................................................................................................ 20 3. 2. 2. Cài đặt hàng loạt các compute node ....................................................................... 24 3. 2. 3. Kiến trúc hệ thống ........................................................................................................... 25 3. 3. Quy tắ c đặt tên của Rocks ....................................................................................... 25 3. 3. 1. Về cơ sở dữ liệu cluster ........................................................................................... 28 3. 3. 2. Về sơ đồ cơ sở, file cơ sở và quá trình cài đặt một compute node ....................... 34 3. 3. 3. Quản trị ............................................................................................................................. 39 3. 4. Tổng quan ................................................................................................................. 39 3. 4. 1. Frontend quản trị cluster nhƣ thế nào? ................................................................... 40 3. 4. 2. Các tác vụ quản tr ị cơ bả n ....................................................................................... 43 3. 4. 3. Cài đặt lại một compute node trong lần boot PXE ti ếp theo .......................... 43 3. 4. 3. 1. Xem và thay đổi các cấu hình mạ ng ................................................................ 48 3. 4. 3. 2. CHƢƠNG 4. L ẬP TRÌNH SONG SONG VỚI MPI ....................................................................... 50 Các mô hình lập trình song song .................................................................................... 50 4. 1. Mô hình bộ nhớ chia sẻ ........................................................................................... 50 4. 1. 1. Mô hình đa lu ồng ..................................................................................................... 51 4. 1. 2. iv
  7. Mô hình truyền thông đi ệp ...................................................................................... 52 4. 1. 3. Mô hình song song d ữ liệu ...................................................................................... 53 4. 1. 4. Các ƣu đi ểm của mô hình truyền thông đi ệp ................................................................. 54 4. 2. Phổ biến .................................................................................................................... 54 4. 2. 1. Khả năng mô tả ........................................................................................................ 54 4. 2. 2. Dễ gỡ lỗi hơn ............................................................................................................ 55 4. 2. 3. Hiệu năng.................................................................................................................. 55 4. 2. 4. Giới thiệu về MPI ............................................................................................................ 55 4. 3. Mục tiêu của MPI ............................................................................................................ 56 4. 4. Các đặc điểm của MPI .................................................................................................... 56 4. 5. Khác biệt giữa các bả n cài đặt bằ ng C và C++ của MPI ............................................... 58 4. 6. 4. 7. MPI trên Rocks ................................................................................................................ 58 Viết chƣơng trình Hello World ....................................................................................... 59 4. 8. Các hàm MPI cơ bản ....................................................................................................... 64 4. 9. Hàm MPI_Init ...................................................................................................... 64 4. 8. 1. Hàm MPI_Finalize ............................................................................................ 65 4. 8. 2. Hàm MPI_Comm_size ......................................................................................... 65 4. 8. 3. Hàm MPI_Comm_rank ......................................................................................... 65 4. 8. 4. Giá trị trả về của các hàm MPI ....................................................................................... 66 4. 10. Về các khái niệm Nhóm, Ngữ cả nh và B ộ liên lạc........................................................ 66 4. 11. Liên lạc giữa các tiến trình .............................................................................................. 67 4. 12. Xây dựng một ứ ng dụng tự trị ........................................................................................ 70 4. 13. v
  8. Về mối quan hệ giữa kích thƣ ớc bài toán và chi phí tính toán ..................................... 75 4. 14. Phƣơng hƣ ớng xây dựng một ứng dụng MPI ................................................................ 77 4. 15. CHƢƠNG 5. CÀI Đ ẶT THỬ NGHIỆM ỨNG D ỤNG TRÊN H Ệ THỐNG ROCKS.................. 78 Thiết lập môi trƣ ờng ........................................................................................................ 78 5. 1. Mã nguồn ứ ng dụng......................................................................................................... 79 5. 2. Biên dịch và chạ y ứ ng dụ ng ............................................................................................ 86 5. 3. Kết quả thử nghiệm ......................................................................................................... 86 5. 4. CHƢƠNG 6. KẾT LUẬN .................................................................................................................. 89 PH Ụ LỤC 1. SƠ LƢỢC VỀ CÁCH PHÁT TRIỂN ROLL MỚI ................................................... 90 PH Ụ LỤC 2. LIÊN L ẠC GIỮ A CÁC TIẾN TRÌNH MPI .............................................................. 99 PH Ụ LỤC 3. SỬ D ỤNG MPI Đ Ể TÍNH TÍCH PHÂN .................................................................102 PH Ụ LỤC 4. SỬ D ỤNG MPI Đ Ể TÍNH TOÁN SỐ PI ................................................................104 TÀI LI ỆU THAM KH ẢO ................................................................................................................109 vi
  9. DANH MỤC BẢNG BIỂU Bảng 1 – Tƣơng ứ ng các hàm MPI trong C và C++ ........................................................................ 58 Bảng 2 – Các hằ ng số toán tử ..........................................................................................................106 vii
  10. DANH MỤC HÌNH VẼ Hình 1 – Các lĩnh vự c ứ ng dụng của xử lý song song........................................................................ 2 Hình 2 - SISD ........................................................................................................................................ 4 Hình 3 - SIMD ...................................................................................................................................... 5 Hình 4 - MISD ...................................................................................................................................... 5 Hình 5 - MIMD ..................................................................................................................................... 6 Hình 6 – Xử lý đƣờng ống 5 giai đoạn ................................................................................................ 6 Hình 7 – Mô hình bộ xử lý 2 nhân....................................................................................................... 9 Hình 8 - SMP ........................................................................................................................................ 9 Hình 9 – Mô hình lƣới tính toán ........................................................................................................ 11 Hình 10 - MPP .................................................................................................................................... 12 Hình 11 – Thống kê về kiến trúc của 500 siêu máy tính .................................................................. 13 Hình 12 – Mô hình của HPC Cluster ................................................................................................. 14 Hình 13 – Rockstar cluster ................................................................................................................. 15 Hình 14 – Kiến trúc của Rocks .......................................................................................................... 17 Hình 15 – Một báo cáo sinh bởi Ganglia .......................................................................................... 19 Hình 16 – Màn hình khởi đ ộng .......................................................................................................... 21 Hình 17 – Lựa chọn Roll (1) .............................................................................................................. 22 Hình 18 – Lựa chọn Roll (2) .............................................................................................................. 23 Hình 19 - Phân chia ổ ......................................................................................................................... 24 Hình 20 – Lựa chọn appliance type ................................................................................................... 25 Hình 21 – Vai trò trung tâm của cơ sở dữ liệu SQL ......................................................................... 29 viii
  11. Hình 22 – Thao tác trự c tiếp với cơ sở dữ liệu cluster ..................................................................... 32 Hình 23 – Minh họa trự c quan một phần của sơ đồ cơ sở ............................................................... 35 Hình 24 – Quá trình sinh file cơ sở ................................................................................................... 36 Hình 25 – Nhậ n diện appliance mới .................................................................................................. 37 Hình 26 – Đã thêm appliance vào cơ sở dữ liệu ............................................................................... 37 Hình 27 – Đã yêu cầu thành công file cơ sở ..................................................................................... 38 Hình 28 – File cơ sở ........................................................................................................................... 39 Hình 29 – Các node trong cluster ...................................................................................................... 40 Hình 30 – Tạo cặp khóa private, public trong lầ n đầu khởi động terminal .................................... 41 Hình 31 – SSH t ới compute-0 -0 ........................................................................................................ 42 Hình 32 – Giá tr ị tham số a ction với các node trong cluster ............................................................ 43 Hình 33 – Các bootaction hi ện có...................................................................................................... 44 Hình 34 – Thêm bootaction................................................................................................................ 45 Hình 35 – Các thuộc tính của node compute-0 -0 ............................................................................. 46 Hình 36 – Thay đ ổi giá trị tham số installaction............................................................................... 46 Hình 37 – Giá tr ị tham số installaction thay đổi ............................................................................... 47 Hình 38 – Loại bỏ một bootaction ..................................................................................................... 48 Hình 39 – Xem các cổng ethernet ...................................................................................................... 49 Hình 40 – Mô hình bộ nhớ chia sẻ..................................................................................................... 51 Hình 41 – Mô hình đa luồng .............................................................................................................. 52 Hình 42 – Mô hình truyền thông điệp ............................................................................................... 53 Hình 43 – Mô hình song song dữ liệu ............................................................................................... 54 Hình 44 – MPI trên Rocks ................................................................................................................. 59 ix
  12. Hình 45 – Output của chƣơng trình Hello World (1) ....................................................................... 61 Hình 46 – Output của chƣơng trình Hello World (2) ....................................................................... 62 Hình 47 – Output của chƣơng trình Hello World (3) ....................................................................... 63 Hình 48 – Output của chƣơng trình Hello World (4) ....................................................................... 64 Hình 49 – Trƣớc khi chạ y ứ ng dụ ng.................................................................................................. 87 Hình 50 – Sau khi chạ y ứ ng dụng ..................................................................................................... 88 Hình 51 – Output của hg clone .......................................................................................................... 90 Hình 52 – Repository cục bộ.............................................................................................................. 91 Hình 53 – Thƣ mục scratch của các Roll .......................................................................................... 92 Hình 54 – Thƣ mục scratch của Roll java ......................................................................................... 93 Hình 55 – Một phần sơ đồ cơ sở ........................................................................................................ 95 Hình 56 – Minh họa việc liên lạ c giữa các ti ến trình .....................................................................101 Hình 57 – Tính tích phân..................................................................................................................103 Hình 58 – Tính toán số PI ................................................................................................................104 x
  13. CHƢƠNG 1. GIỚI THIỆU “Đạt tới tốc độ tính toán 1 teraflop là bài toán lớn nhất trong khoa học máy tính trong 2 thập kỷ qua. Chỉ mới 10 năm trước đây, những nhà lãnh đạo đáng tin cậy nhất trong ngành công nghiệp tính toán còn nói rằng điều đó là không thể.” (Gil Weigand) [45] Nếu chúng ta đã từ ng dùng Google để tìm kiếm thông tin trên Internet, thì hẳn sẽ có lúc chúng ta phải ngạc nhiên trƣớc tốc độ xử lý của cỗ máy tìm kiếm này. Mỗi một giây qua đi, Google tiếp nhận tới hàng nghìn yêu cầu tìm kiếm, và mỗi yêu cầu tìm kiếm đó cần phải đƣợc xử lý qua hàng ch ục tỷ phép tính với lƣợng dữ liệu truy cập lên đến hàng trăm Megabytes. Ngoài một hệ thống cơ sở dữ liệu đƣợc thiết kế đặc biệt, cùng vớ i nhữ ng thuật toán khai phá dữ liệu đƣợc tối ƣu hóa, thì bí mật đằng sau tốc độ xử lý của Google chính là hệ thống các cluster với tổng cộng khoảng 15000 máy tính trên toàn thế giới. Google tối thiểu hóa thời gian xử lý đối với mỗi yêu cầu tìm kiếm bằng cách tiế n hành xử lý song song mỗi yêu cầu đó. Điều này cũng có nghĩa là Google sẽ xử lý đƣợc nhiều yêu cầu tìm kiếm hơn trong cùng một khoảng thời gian [6]. Google chính là một ví dụ điển hình về vai trò và sự thành công c ủa x ử lý song song trong ngành công nghiệp tính toán nói riêng và trong cuộc sống nói chung. Trong thời đạ i thông tin bùng nổ, con ngƣời càng ngày càng trở nên bận rộn thì nhu cầu c ủa xử lý song song ngày càng đƣợc nâng cao nhằm xử lý đƣợc một lƣợng dữ liệu lớn nhất trong thời gian nhanh nhất có thể. Xử lý song song ngày càng đƣợc quan tâm trên thế giới vì 2 lý do chính sau đây:  Đạt đƣợc hiệu năng cao hơn trong khi tiết kiệm đƣợc thời gian và tiền bạc. Về lý thuyết, càng đầu tƣ nhiều tài nguyên cho một nhiệm vụ nào đó thì càng rút ngắ n đƣợc thời gian thực hiện nhiệm vụ đó, đồ ng thời tiết kiệm đƣợc càng nhiều chi phí. Hơn nữa, nhiều hệ thố ng xử lý song song có thể đƣợc xây dự ng từ nhữ ng thành phần rẻ tiền và phổ biến.  Khả năng xử lý các bài toán lớn. Nhiều bài toán trong thực tế đòi h ỏi tài nguyên tính toán lớn đến mức không một máy tí nh đơn lẻ nào có thể đáp ứ ng nổi. Chẳng 1
  14. hạn, các bài toán dạ ng "Grand Challenge" (Thách Thức Lớn) [16] nhƣ dự báo thời tiết, giải mã bộ gene ngƣời, ... yêu cầu nhữ ng tài nguyên tính toán đƣợc tính bằng PetaFlops và PetaBytes [23]. Hình 1 – Các lĩnh vực ứng dụng của xử lý song song Nguồn: [4] Nhữ ng nhu cầu này đã dẫn tới nhữ ng cơ hộ i lớn cho xử lý song song, song nhữ ng thách thức đi kèm cũng không hề nhỏ. Cụ thể, sẽ khó khăn hơn trong việc phát triể n các phần mềm ph ục vụ cho xử lý song song do thiế u các môi trƣờng phát triển và các mô hình lập trình thống nhất và hiệu quả. Việc phát triển thuật toán cũng khó khăn hơn do sự phức tạp của việc xử lý các tác vụ đồng thời. Đó là chƣa kể đến sự phát triển nhanh chóng c ủa công nghệ phần cứ ng dẫn tới sự lạc hậ u nhanh chóng c ủa các kiến trúc xử lý song song. Hệ quả gián tiếp của điều này chính là khả năng mở rộng của hệ thống bị giới hạn, do các thuật toán xử lý song song hiện hành có thể không còn phù hợp với các kiế n trúc phần cứ ng của tƣơng lai. Tại Việt Nam, đã có một vài hệ thống xử lý song song đƣợc nghiên c ứu thành công và đƣa vào ứ ng dụng, đem lại hiệu quả bƣớc đầu, nhƣ hệ thống máy tính bó song song do CADPRO thiết kế cho Trung tâm Quốc gia dự báo khí tƣợng thủy văn [2], hoặc các trung 2
  15. tâm dữ liệ u của FPT Telecom, CMC Telecom, Ngân hàng Sài Gòn Thƣơng tín – Sacombank, Ngân hàng Đông Nam Á [3], … Tuy nhiên, số lƣợng không nhiều các hệ thống xử lý song song kiểu này đã chứ ng tỏ xử lý song song chƣa thực sự phát triển mạnh mẽ ở Việt Nam. Xét về mặt công nghệ, việc xây dự ng, quản tr ị và ứ ng dụng một hệ thống xử lý song song cũng không phải dễ dàng. Thông thƣờng, chi phí phải trả cho việc quản tr ị một h ệ thống xử lý song song trong 1 năm còn cao hơn nhiều so với chi phí bỏ ra để mua cả hệ thống. Ví d ụ, một cluster có tốc độ tính toán 1 Tera Flops có chi phí vào khoảng 100 nghìn US$, gần bằng chi phí phả i trả cho một ngƣời quản trị hệ thống trong một năm [39]. Nghiên cứu về xử lý song song vì vậy không ch ỉ mang ý nghĩa khoa h ọc, mà còn có ý nghĩa thực tiễn rất lớn. Việc nghiên cứ u về xử lý song song, từ lý thuyết cho đến ứ ng dụng, không ch ỉ giúp chúng ta nắm đƣợc nền tảng công nghệ, mà còn giúp chúng ta nhìn thấy tiềm năng to lớn của xử lý song song trong công nghệ nói riêng và các lĩnh vực kinh tế quốc dân nói chung. Khóa luận này tập trung nghiên cứ u tổng quan về xử lý song song nói chung và nghiên cứu cách thức cài đặt, quản tr ị, kiến trúc hệ thống và ứ ng d ụng của hệ thống cụm máy tính xử lý song song Rocks nói riêng. Ngoài ra, tài liệu còn đƣợc đi kèm với một số ứ ng d ụng MPI tiêu biểu, trong đó có ứ ng d ụng chuyển đổi video mà nộ i dung chƣơng 5 chính là mô tả chi tiết. 3
  16. CHƢƠNG 2. CÁC KIẾN TRÚC VÀ CÁC HỆ THỐNG XỬ LÝ SONG SONG Các kiế n trúc xử lý song song 2. 1. Vào năm 1966, Michael Flynn đã đƣa ra cách phân loại các kiến trúc xử lý song song dựa trên sự khác nhau về các dòng trong tiến trình tính toán. Một dòng là một chuỗ i các đối tƣợng (nhƣ dữ liệu), hoặc hành động (nhƣ các chỉ dẫn). Các dòng là độc lập với nhau. Mỗi một phần tử trong dòng có thể chứa một hoặc nhiều đối tƣợng hoặc hành động. Trên cơ sở 2 dòng chính là dữ liệu và ch ỉ dẫn, Flynn đã đƣa ra 4 tổ hợp, đại diệ n cho 4 kiểu kiến trúc xử lý song song khác nhau [8] :  SISD (Single Instruction, Single Data Stream - Đơn dòng ch ỉ dẫn, đơn dòng dữ liệu). Đây thực chất chính là kiến trúc Von Neumann [1, 43]. Hình 2 - SISD Nguồn: [22]  SIMD (Single Instruction, Multiple Data Stream - Đơn dòng ch ỉ dẫn, đa dòng dữ liệu). Kiến trúc này bao gồm các bộ xử lý vectơ cũng nhƣ các bộ xử lý song song cực lớn (MPP). 4
  17. Hình 3 - SIMD Nguồn: [22]  MISD (Multiple Instruction, Single Data Stream - Đa dòng ch ỉ dẫn, đơn dòng dữ liệu). Hình 4 - MISD Nguồn: [22]  MIMD ( Multiple Instruction, Multiple Data Stream - Đa dòng ch ỉ dẫn, đa dòng dữ liệu). Kiến trúc này bao gồm các hệ đa vi xử lý truyền thống cũng nhƣ các mạng máy trạ m. 5
  18. Hình 5 - MIMD Nguồn: [37] Mỗi một tổ hợp trên đây đặc trƣng cho một lớp kiế n trúc máy tính, đồng thời tƣơng ứ ng với một hình thức xử lý song song. 2. 1. 1. SISD Kiến trúc SISD là kiến trúc quen thuộc nhất, cũng là kiến trúc ít song song nhất. Các hệ thố ng kiểu này ch ủ yếu xử lý theo kiểu đƣờng ống, trong đó các giai đoạn khác nhau c ủa tiến trình xử lý một chỉ d ẫn đƣợc thực thi song song (kiến trúc này không song song hóa các tiến trình mà song song hóa các giai đoạn của việc thực thi tiến trình ). Hình 6 – Xử lý đường ống 5 giai đoạn Nguồn: [37] Công nghệ cài đặt song song hóa các tiến trình xử lý ch ỉ dẫn đƣợc gọi là song song hóa mức ch ỉ dẫn (ILP – Instruction Level Parallelism). Hai trong số các kiế n trúc bộ xử lý sử dụng phƣơng pháp này là superscalar (siêu thang bậc) và VLIW (Very Long Instruction Word - Kích thƣớc word lớn). Các kiế n trúc này lập lịch cho các tác vụ khác nhau để thực thi một cách song song bằng cách phân tích sự phụ thuộc lẫ n nhau giữa các tác vụ trong cùng một dòng ch ỉ dẫ n. Với kiến trúc superscalar, việc phân tích đƣợc thực 6
  19. hiện động vào thời điểm chạy, còn với VLIW, việc phân tích là tĩnh vào thời điểm biên dịch. Cả hai kiến trúc này đều có sự cân bằng giữa độ linh động (adaptability) và độ phức tạp (complexity) – các bộ xử lý superscalar linh động nhƣng phức tạp, còn các bộ xử lý VLIW không linh động nhƣng cũng không phức tạp. Cả 2 kiến trúc đều sử dụng các phƣơng pháp biên d ịch nhƣ nhau nh ằm đạt đƣợc hiệu năng cao. Xu hƣớng hiện tại đối với các bộ xử lý SISD là hƣớng tới kiến trúc superscalar nhằm tận d ụng các công nghệ ILP sẵn có. 2. 1. 2. SIMD Lớp kiến trúc SIMD c ủa các bộ xử lý bao gồm các bộ xử lý mảng (Array Processors) và bộ xử lý vectơ (Vector Processors). Các bộ xử lý này là câu trả lời tự nhiên cho việc sử dụng các cấu trúc dữ liệu thƣờng gặp nhƣ vectơ và ma trận. Một bộ xử lý mảng bao gồm nhiều khối xử lý (PU - Processor Unit) hoạt động song song trên nhiều thành phần dữ liệ u. Một bộ xử lý vectơ bao gồm một khối xử lý hoạt động tuyến tính trên nhiều thành phần dữ liệu. Cả 2 loại bộ xử lý đều sử dụng một phép toán (operation) để thực thi nhiều hành động (action). Một bộ xử lý mảng phụ thuộc vào kích thƣớc lớn của tập dữ liệu đầu vào để đạt đƣợc hiệu năng cao (vì vậ y thƣờng các bộ xử lý này thƣờng đƣợc gọi là các bộ xử lý song song cực lớn (Massively Parallel Processors)). Một bộ xử lý mảng đặc trƣng bao gồm từ hàng trăm đ ến hàng ch ục nghìn khối xử lý hoạt động cùng nhau. Một bộ xử lý vectơ cũng ph ụ thuộc vào sự đơn điệu của các hành đ ộng tƣơng tự nhƣ bộ xử lý mảng, nhƣng trên một tập dữ liệu nhỏ hơn, đồng thời dựa vào phƣơng pháp đƣờng ống (pipelining) và nh ịp đồng hồ cao nhằm giảm độ trễ của các phép toán. Trên th ị trƣờng hiện nay chƣa có nhiều bộ xử lý đƣợc phát triển theo kiến trúc mảng do nhu cầu không cao và hạn chế về số lƣợng ứ ng d ụng. Trong khi đó rất nhiều bộ xử lý theo kiến trúc vectơ đã đƣợc phát triển, đồng thời các bộ xử lý vectơ hiện đại là các bộ xử lý có hiệu năng cao, có thể tuân theo các kiến trúc SIMD hoặc MIMD. 2. 1. 3. MISD Theo Flynn thì không tồn tại máy tính theo kiến trúc này [1]. 7
  20. 2. 1. 4. MIMD Kiến trúc MIMD là kiến trúc song song quen thuộc nhất, cũng là hình thức cơ bả n nhất của các bộ xử lý song song. Các bộ xử lý MIMD bao gồm nhiều khối xử lý đƣợc kết nối với nhau. Không giống nhƣ các bộ xử lý SIMD, mỗi khối xử lý trong bộ xử lý MIMD thực thi hoàn toàn độc lập (mặc dù cùng một chƣơng trình).Mặc dù về lý thuyết các khố i xử lý không cần phải giống nhau, nhƣng thực tế hầu hết các hệ thống MIMD bao gồm các khối xử lý giống nhau. Việc liên lạc giữa các khối xử lý đƣợc thực hiện thông qua một không gian đ ịa ch ỉ dùng chung (không gian đ ịa chỉ này có thể là toàn c ục, cũng có thể đƣợc phân chia giữa các khối xử lý, khi đó nó có tên gọi là bộ nhớ chia sẻ phân tán (Distributed Shared Memory) để phân biệt với bộ nhớ phân tán (Distributed Memory)). Cách xử lý này dẫ n đến 2 vấn đề: Một là tính ổn định (consistency) và hai là tính thống nhất (coherence) c ủa dữ liệu. Tính ổn đ ịnh nói đến việc tham chiếu bộ nhớ – trên cả 2 phạm trù là trong một khối xử lý và giữa các khối xử lý. Tính thống nhất yêu cầu tất cả các khối xử lý đều phả i “nhìn thấy” cùng 1 giá tr ị đối với cùng 1 đ ịa chỉ vùng nhớ. Tính ổn định là hiện, trong khi tính thống nhất là ẩn đối với ngƣời lập trình. Thƣờng thì tính ổn định có thể giải quyết bằng một sự phối hợp giữa các k ỹ thuật về phần cứ ng và phần mềm, trong khi tính thống nhất lại đƣợc giải quyết bằng các k ỹ thuật về phần cứ ng. Các hệ thống tuân theo kiến trúc MIMD bao gồm từ các bộ xử lý truyền thống đế n các bộ xử lý đ ộc lập hoạt động thông qua một mạ ng máy tính. Sự khác nhau giữa các hệ thống này ch ủ yếu là giữa cách kết nối giữa các khối xử lý trên một bộ xử lý và cách kết nối giữa các bộ xử lý trên một mạ ng WAN. Tuy nhiên, cả 2 kiểu hệ thống đều có sự cân bằng giữa độ trễ trong liên lạc và giới hạn kích thƣớc của hệ thống. Các hệ t hống xử lý song song 2. 2. Các hệ thống tính toán đa nhân 2. 2. 1. Vi xử lý đa nhân (Multicore Processor) là vi xử lý bao gồm nhiều khối chức năng (Functional Unit, Execution Unit, hay “nhân”). Các vi xử lý đa nhân khác các vi xử lý siêu thang bậc (Superscalar Processor) ở chỗ, các vi xử lý đa nhân có thể thực thi nhiề u chỉ dẫn từ nhiều nguồn trong một chu k ỳ tính toán, còn các vi xử lý siêu thang bậc có thể 8
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2