Nghiên cứu hệ thống cụm máy tính xử lý song song rocks và ứng dụng

  • Số trang: 186 |
  • Loại file: DOCX |
  • Lượt xem: 16 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠ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 ĐẠ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 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 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 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. 2. 2. 1. Các hệ thống tính toán đa nhân .................................................................................8 2. 2. 2. Các hệ thống đa xử lý đối xứng ................................................................................9 2. 2. 3. Các hệ thống tính toán phân tán ..............................................................................10 2. 2. 3. 1. Các hệ thống tính toán lƣới...............................................................................10 2. 2. 3. 2. Các hệ thống xử lý song song cực lớn .............................................................12 2. 2. 3. 3. Các hệ thống tính toán cụm ..............................................................................12 iii CHƢƠNG 3. HỆ THỐNG ROCKS ..................................................................................................16 Giới thiệu..........................................................................................................................16 3. 1. 3. 1. 1. Tổng quan .................................................................................................................16 3. 1. 2. Kiến trúc của HPC Cluster sử dụng Rocks ............................................................17 3. 1. 3. Rocks và Rolls..........................................................................................................18 Cài đặt...............................................................................................................................20 3. 2. 3. 2. 1. Cấu hình....................................................................................................................20 3. 2. 2. Cài đặt frontend........................................................................................................20 3. 2. 3. Cài đặt hàng loạt các compute node .......................................................................24 Kiến trúc hệ thống ...........................................................................................................25 3. 3. 3. 3. 1. Quy tắc đặt tên của Rocks .......................................................................................25 3. 3. 2. Về cơ sở dữ liệu cluster ...........................................................................................28 3. 3. 3. Về sơ đồ cơ sở, file cơ sở và quá trình cài đặt một compute node .......................34 Quản trị.............................................................................................................................39 3. 4. 3. 4. 1. Tổng quan .................................................................................................................39 3. 4. 2. Frontend quản trị cluster nhƣ thế nào? ...................................................................40 3. 4. 3. Các tác vụ quản trị cơ bản .......................................................................................43 3. 4. 3. 1. Cài đặt lại một compute node trong lần boot PXE tiếp theo ..........................43 3. 4. 3. 2. Xem và thay đổi các cấu hình mạng ................................................................48 CHƢƠNG 4. LẬP TRÌNH SONG SONG VỚI MPI .......................................................................50 4. 1. Các mô hình lập trình song song ....................................................................................50 4. 1. 1. Mô hình bộ nhớ chia sẻ ...........................................................................................50 4. 1. 2. Mô hình đa luồng .....................................................................................................51 iv 4. 1. 3. 4. 1. 4. Mô hình truyền thông điệp ......................................................................................52 Mô hình song song dữ liệu ......................................................................................53 4. 2. Các ƣu điểm của mô hình truyền thông điệp .................................................................54 4. 2. 1. Phổ biến ....................................................................................................................54 4. 2. 2. Khả năng mô tả ........................................................................................................54 4. 2. 3. Dễ gỡ lỗi hơn ............................................................................................................55 4. 2. 4. Hiệu năng..................................................................................................................55 4. 3. Giới thiệu về MPI ............................................................................................................55 4. 4. Mục tiêu của MPI ............................................................................................................56 4. 5. Các đặc điểm của MPI ....................................................................................................56 4. 6. Khác biệt giữa các bản cài đặt bằng C và C++ của MPI...............................................58 4. 7. MPI trên Rocks ................................................................................................................58 4. 8. Viết chƣơng trình Hello World .......................................................................................59 4. 9. Các hàm MPI cơ bản .......................................................................................................64 4. 8. 1. Hàm MPI_Init ......................................................................................................64 4. 8. 2. Hàm MPI_Finalize ............................................................................................65 4. 8. 3. Hàm MPI_Comm_size .........................................................................................65 4. 8. 4. Hàm MPI_Comm_rank .........................................................................................65 4. 10. Giá trị trả về của các hàm MPI .......................................................................................66 4. 11. Về các khái niệm Nhóm, Ngữ cảnh và Bộ liên lạc........................................................66 4. 12. Liên lạc giữa các tiến trình..............................................................................................67 4. 13. Xây dựng một ứng dụng tự trị ........................................................................................70 v 4. 14. Về mối quan hệ giữa kích thƣớc bài toán và chi phí tính toán .....................................75 4. 15. Phƣơng hƣớng xây dựng một ứng dụng MPI ................................................................77 CHƢƠNG 5. CÀI ĐẶT THỬ NGHIỆM ỨNG DỤNG TRÊN HỆ THỐNG ROCKS..................78 5. 1. Thiết lập môi trƣờng ........................................................................................................78 5. 2. Mã nguồn ứng dụng.........................................................................................................79 5. 3. Biên dịch và chạy ứng dụng............................................................................................86 5. 4. Kết quả thử nghiệm .........................................................................................................86 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 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 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 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ố action 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 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 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 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 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 TeraFlops 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 CHƢƠNG 2. CÁC KIẾN TRÚC VÀ CÁC HỆ THỐNG XỬ LÝ SONG SONG 2. 1. Các kiến trúc xử lý song song 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 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 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 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]. 2. 1. 4. 7 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. 2. 2. Các hệ thống xử lý song song 2. 2. 1. Các hệ thống tính toán đa nhân 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
- Xem thêm -