TTL cho phép ảo hóa các chức năng tính toán phân tán cũng như các nguồn xử lý, băng thông mạng và khả năng lưu trữ, để từ đó tạo ra một hệ thống đơn đồng nhất, cho phép người sử dụng và
Trang 1CHƯƠNG I
GIỚI THIỆU TÍNH TOÁN LƯỚI
Tính toán mạng lưới (grid) ngày nay không còn là một giải pháp hàn lâm hay thử nghiệm Với những tiến bộ quan trọng về phần mềm triển khai, người ta hy vọng
nó sẽ đem sức mạnh của siêu máy tính tới tất cả người dùng PC đơn lẻ trên thế giới.
I. Khái niệm
Grid là một loại hệ thống phân tán, bố trí song song, cho phép linh hoạt chia sẻ, tuyển lựa và tập hợp các nguồn tài nguyên độc lập và rải rác về địa lý, tùy theo khả năng sẵn có, công suất, hoạt động, chi phí và yêu cầu về chất lượng dịch vụ của người
sử dụng.
Hình 1: Mô hình tính toán lưới Tính toán lưới (TTL) có nghĩa là tất cả hoặc một phần của một nhóm máy tính, máy chủ và thiết bị lưu trữ trong mạng doanh nghiệp, được “ảo hóa” (virtualize) thành một cỗ máy tính lớn Vì TTL giải phóng những khả năng tính toán không được
sử dụng vào một thời điểm bất kỳ, chúng có thể cho phép các doanh nghiệp tăng cường rất nhiều về tốc độ, sức mạnh xử lý thông tin và sự liên kết, thúc đẩy các quy
Trang 2trình tính toán mật độ cao Trong khi đó, chi phí vẫn sẽ được giữ ở mức thấp vì TTL
có thể được xây dựng từ chính hạ tầng hiện có, góp phần đảm bảo sự huy động tối ưu các khả năng tính toán.
TTL cho phép ảo hóa các chức năng tính toán phân tán cũng như các nguồn xử
lý, băng thông mạng và khả năng lưu trữ, để từ đó tạo ra một hệ thống đơn đồng nhất, cho phép người sử dụng và các ứng dụng truy cập thông suốt vào các tính năng điện toán rộng lớn Giống như người lướt web xem một nội dung thống nhất qua web, người sử dụng tính toán lưới cũng nhìn thấy một máy tính ảo cực lớn duy nhất.
Hình 2: Mô hình tính toán lưới dựa trên Internet Trọng tâm của TÍNH TOÁN LƯỚI dựa trên một tập hợp mở của nhiều chuẩn và giao thức, ví dụ Kiến trúc dịch vụ lưới mở (OGSA), cho phép liên lạc qua nhiều môi trường hỗn tạp và phân tán về địa lý Với TÍNH TOÁN LƯỚI, các tổ chức và doanh nghiệp có thể tối ưu hóa khả năng tính toán và các nguồn dữ liệu, tập trung chúng lại thành những khối sức mạnh lớn, chia sẻ chúng qua mạng và thúc đẩy sự phối hợp, tương tác.
Giả dụ, khi một người có chiếc máy tính cá nhân tham gia đóng góp sức mạnh xử
lý trong một mạng lưới gridmuốn chạy một ứng dụng đòi hỏi thêm sức mạnh xử lý thì công việc đang được giải quyết trên chiếc máy đó sẽ được tự động tái phân bổ tới một
Trang 3máy khác trong lưới đang “rảnh rỗi” và không bị trưng dụng sức mạnh tính toàn vào công việc nào.
Hình 4 Xây dựng một lưới grid có thể đơn giản như việc cho phép một số lượng nhỏ PC hoặc server hoặc mạng lưu trữ tận dụng những khả năng chưa được khai thác hết Từ một quy mô triển khai ban đầu nhỏ, người sử dụng có thể dần dần hoặc lập tức mở rộng lưới tùy theo nhu cầu của doanh nghiệp Lưới này không chỉ có thể liên kết các quy trình hoạt động của một bộ phận mà có thể phối hợp các phòng ban với nhau hoặc thậm chí liên kết sức mạnh hạ tầng của một số doanh nghiệp độc lập.
II. Ưu điểm và Khuyết điểm của tính toán lưới
1. Ưu điểm
TÍNH TOÁN LƯỚI có thể đem lại những ích lợi rất rộng lớn Nó tăng tốc độ
xử lý để rút ngắn thời gian thu được kết quả, từ đó cho phép tiết kiệm thời gian và tài nguyên phục vụ cho việc giải quyết những vấn đề mà trước đó chưa được xử lý TÍNH TOÁN LƯỚI nâng cao năng suất và sự phối hợp trong doanh nghiệp bằng cách cho phép các bộ phận và phòng ban phân tán ở nhiều nơi tạo ra các “tổ chức ảo” để chia sẻ dữ liệu và tài nguyên Grid khiến cho hạ tầng hoạt động của doanh nghiệp linh hoạt hơn với việc cho phép truy nhập lập tức vào hệ thống tính toán và các kho dữ liệu để “cảm nhận” và phản hồi kịp thời những yêu cầu Grid cũng góp
Trang 4phần đảm bảo khai thác tốt nhất các khả năng tính toán hiện có của một công ty dựa trên những khoản đã đầu tư Triển khai TÍNH TOÁN LƯỚI cũng góp phần tránh được nguy cơ phân bổ tài nguyên không cân đối xảy ra rất phổ biến và tránh được các chi phí phát sinh Một ích lợi lớn khác của TÍNH TOÁN LƯỚI là nó giải phóng các bộ phận quản lý CNTT khỏi gánh nặng của việc quản lý các hệ thống không đồng nhất.
So sánh grid với các công nghệ khác:
So với khái niệm cluster và điện toán phân tán khác, grid có điểm chung là đem các nguồn sức mạnh tính toán lại làm một nhưng khác ở chỗ nó không cần có
sự giới hạn về không gian địa lý hay sự đồng nhất về nền điều hành Khác biệt cơ bản giữa khái niệm cluster (bó) với grid (lưới) chủ yếu nằm ở phương thức quản
lý các nguồn tài nguyên Đối với cluster, việc phân bổ tài nguyên được thực hiện bởi một đối tượng quản lý tài nguyên trung tâm và tất cả các nút (node) mạng hoạt động phối hợp với nhau như một nguồn đơn thống nhất Đối với grid, mỗi nút
có đối tượng quản lý tài nguyên riêng và các nguồn tài nguyên độc lập trong lưới
có thể trải rộng khắp một hoặc nhiều tổ chức.
Trên thực tế grid không phải là một cuộc cách mạng mới mà có thể coi nó
là một bước tiến hóa trong công nghệ điện toán phân tán, giống như web, chia sẻ file ngang hàng và các công nghệ ảo khác Giống như web, TÍNH TOÁN LƯỚI giảm bớt tính phức tạp khi mà nhiều người cùng khai thác một nền hoạt động thống nhất Cái khác của nó đối với web chủ yếu là sự hỗ trợ liên lạc So với mạng ngang hàng (P2P), TÍNH TOÁN LƯỚI có điểm chung là cho phép người sử dụng chia sẻ file nhưng khác ở chỗ việc chia sẻ đó không chỉ là các file mà có thể là nhiều tài nguyên khác So với các công nghệ ảo khác, grid giống ở chỗ cho phép ảo hóa các nguồn lực CNTT Điểm khác là trong khi đối tượng và mục tiêu của các công nghệ
ảo là một hệ thống đơn thì grid cho phép ảo hóa những nguồn tài nguyên tản mát
và vô cùng rộng lớn.
Grid đã được thương mại hóa như thế nào?
Các nhà cung cấp giải pháp điện toán hàng đầu thế giới như Oracle, IBM,
HP, Dell, Microsoft và Sun đều đã và đang có sách lược đầu tư lớn vào việc phát triển các sản phẩm và dịch vụ TÍNH TOÁN LƯỚI.
Trang 5Thiết lập một hệ thống TÍNH TOÁN LƯỚI không đơn thuần chỉ là có một mạng máy tính tốc độ cao Yếu tố quan trọng nhất chính là một nền phần mềm điều phối sức mạnh của các máy tính tham gia đóng góp sức mạnh nhiều dạng khác nhau trong lưới.
Trên thị trường đã xuất hiện những nền phần mềm thương mại hoặc dịch
vụ phục vụ cho việc này Ví dụ, Oracle đã tung ra thị trường Application Server 10g, được coi là phần mềm trung gian đầu tiên giúp đơn giản hóa việc quản lý các ứng dụng chạy trên môi trường TÍNH TOÁN LƯỚI Đây là một bộ sản phẩm gồm khoảng 600 cải tiến trong ứng dụng tích hợp và cơ sở hạ tầng các dịch vụ Web.
Oracle Application Server 10 được xây dựng dựa trên các chuẩn mở, tạo ra một nền tảng thống nhất cho các khả năng hỗ trợ yêu cầu đa dạng của một doanh nghiệp thương mại điện tử, bao gồm các chức năng hỗ trợ như phần mềm cổng dành cho doanh nghiệp, lưu trữ tốc độ cao, tình báo doanh nghiệp, quản lý đồng nhất, phát triển ứng dụng nhanh, kết nối không dây và các dịch vụ Web Oracle Application Server 10g cũng là sản phẩm trung gian duy nhất trong ngành giải pháp điện toán doanh nghiệp được trang bị các công nghệ tích hợp và TÍNH TOÁN LƯỚI lắp sẵn.
Với việc đưa thêm khả năng TÍNH TOÁN LƯỚI, phần mềm Application Server 10g giúp khách hàng giảm thời gian, sức lao động và chi phí cho việc quản
lý CNTT bằng cách kết hợp các hệ thống máy chủ, hệ thống lưu trữ và các phần mềm cần thiết Kết quả là các doanh nghiệp có thể sử dụng sức mạnh của toàn bộ
hệ thống hay lưới cho tất cả các ứng dụng dành cho doanh nghiệp chứ không phải mua thêm tính năng cho các ứng dụng riêng biệt Oracle Application Server 10g được cung cấp với ba phiên bản: Java Edition (giá 5.000 USD tính trên một bộ vi
xử lý hoặc 100 USD/một người sử dụng), Standard Edition (10.000 USD/bộ vi xử
lý hoặc 200 USD/người sử dụng) và Enterprise Edition (20.000 USD/bộ vi xử lý hoặc 400 USD/một người sử dụng).
Trong khi đó, Sun Microsystems gần đây tung ra một mô hình dịch vụ với cách tiếp cận khác Họ gọi đây là cơ chế thu tiền tính theo người sử dụng đầu tiên
áp dụng đối với kiến trúc TÍNH TOÁN LƯỚI Với chi phí khởi điểm là 1 USD/bộ xử lý/giờ, dịch vụ tính toán theo lưới này của Sun được cung cấp theo từng gói tính
Trang 6bằng tiếng đồng hồ Sun khẳng định mô hình này có thể cho phép khách hàng khai thác sức mạnh tính toán giống như sử dụng các tiện ích thông thường như điện thoại, điện gia dụng hay nước…từ hạ tầng của nhà cung cấp dịch vụ.
Một số lợi thế khá rõ ràng:
1) Không cần phải mua các máy chủ SMP lớn cho các ứng dụng mà có thể được
tách ra và nuôi ra các máy chủ nhỏ hơn (trong đó chi phí ít hơn so với các máy chủ SMP) Kết quả sau đó có thể được nối và phân tích khi công việc (s) hoàn thành.
2) Phần lớn hiệu quả hơn sử dụng các nguồn lực nhàn rỗi Việc làm có thể được
nuôi ra máy chủ nhàn rỗi hoặc thậm chí máy tính để bàn nhàn rỗi Nhiều người trong số các nguồn lực này ngồi nhàn rỗi đặc biệt là trong thời gian off giờ làm việc.
3) Grid môi trường, nhiều hơn modular và không có điểm duy nhất của thất bại
Nếu một trong các máy chủ / máy tính để bàn trong lưới điện không có nhiều nguồn lực khác có thể chọn tải Việc làm có thể tự động khởi động lại nếu thất bại xảy ra.
4) Các chính sách có thể được quản lý bởi các phần mềm lưới Một số các lưới cho
phép các phần mềm phổ biến nhất bao gồm Platform LSF, Sun Grid Engine, liệu Synapse, PBS, Condor, UnivaUD, trong số những người khác Mỗi làm tốt công việc giám sát tài nguyên và đệ trình công việc quản lý dựa trên các công cụ chính sách nội bộ.
5) quy mô mô hình này rất tốt Cần thêm các nguồn tài nguyên tính toán chỉ cần
cắm chúng vào lưới khách hàng bằng cách cài đặt trên máy tính để bàn hoặc máy chủ bổ sung Họ có thể được gỡ bỏ cũng như dễ dàng trên bay.
6) Nâng cấp có thể được thực hiện trên bay mà không có lịch trình thời gian chết
Vì có quá nhiều tài nguyên một số có thể được thực hiện offline, trong khi để lại đủ cho công việc để tiếp tục Bằng cách này có thể được nâng cấp cascaded như không có hiệu lực các dự án đang tiếp diễn.
7) Việc làm có thể được thực hiện trong thực hiện tăng tốc song song
2 Khuyết điểm
1) Đối với các ứng dụng bộ nhớ đói mà không thể tận dụng lợi thế của MPI người
sử dụng có thể bị buộc để chạy trên một SMP lớn
Trang 72) Có thể cần phải có một kết nối nhanh giữa các tính toán các nguồn lực (gigabit ethernet ở mức tối thiểu)
3) Một số ứng dụng có thể cần phải được tinh chỉnh để có đầy đủ lợi thế của mô hình mới.
4) Khu vực đã được tận dụng tốt của tính toán lưới bao gồm tin sinh học, cheminformatics, khoan dầu và, và các ứng dụng tài chính.
III Mốt số thành phần cơ bản trong mô hình tính toán lưới
Môi trường lưới có thể phân thành 3 lớp:
1. Lớp ứng dụng (Grid Application)
Lớp ứng dụng rất phong phú, chẳng hạn, từ việc truy xuất dữ liệu qua điện thoại di động đến những hệ mô phỏng xử lý một lượng dữ liệu lớn để có thể quan sát quá trình diễn biến của một thí nghiệm khoa học nào đó
2. Lớp cơ sở hạ tầng (Grid Infrastructures)
Lớp hạ tầng cơ sở gồm hệ thống máy tính, siêu máy tính, các hệ lưu trữ, hạ tầng truyền dẫn và Internet
3. Lớp giữa (Grid Middleware).
Còn lớp giữa cung cấp cho lớp ứng dụng và lớp cơ sở hạ tầng những giao thức được chuẩn hóa, tạo khả năng truy cập lưới dễ dàng, thuận tiện.
Có thể xem lớp giữa là một PM hệ thống nằm giữa lớp PM ứng dụng và hệ điềuhành, nhằm cung cấp các dịch vụ (DV) cho các ứng dụng như DV khám phá tài nguyên (Discovery), lưu trữ (Storage), thực thi (Execution), thôngtin (Information), theo dõi tài nguyên (Resource Monitoring), kiểm lỗi và phục hồi (Failure Detector and Recovery)… Đây là những DV cốt lõi đểcho người dùng tham gia vào môi trường lưới Tùy theo yêu cầu của người dùng, lớp ứng dụng sẽ tạo cho người dùng một nền tảng ứng dụng (Platform) thích hợp.
IV Từ tính toán lưới đến tính toán đám mây
Tính toán lưới đã phát triển rất mạnh trên thế giới để liên kết những hệ thống tính toán với nhau nhằm giải những bài toán cực lớn Hệ thống bao gồm phần cứng, phần mềm (PM), đường truyền và hàng bao nhiêu thiết bị khác…trong những không gian thích hợp tạo một môi trường tính toán gọi là môi trường lưới.
Trang 8Nói đến tính toán lưới là nói đến những cơsở hạ tầng cực mạnh, những siêu máy chủ, những thiết bị lưu trữ lớn,những clusters, những PM ứng dụng và sự quản trị hệ thống phức hợp; là nói đến tính toán song song, phân chia thời gian, các thuật toán tối ưu xử lý phân bố tài nguyên tính toán, lưu trữ…Những mô hình tính toán lưới gần đây cũng tiếp cận đến cách khai thác PM như một DV, khai thác nền tảng như một DV, đã có DV máy chủ ảo và thực sự chúng đã chuyển hoá dần sang tính toán mây Tính toán mây đều có những đặc điếm nói trên của tính toán lưới, nhưng còn phát triển cao hơn ở những khía cạnh sau:
Tính toán mây là một mô hình tính toán năng động cao, có khả năng mở rộng đến các tài nguyên ảo trên Internet Hạ tầng cơ sở của tính toán mây được khai thác như một DV (IaaS –Infrastructure as aService) Người dùng không phải đầu tư vốn vào thiết bị và không phảilo bảo trì thiết bị và hàng nhiều công việc khác liên quan mà chỉ chịuchi phí khai thác thiết bị ảo trên Internet do nhà cung cấp phân bố,quản lý Người dùng truy cập đến tính toán mây thông qua các DV Webservices.
Hình 5: Mô hình tính toán mây (hình lấy trên Internet)
Trang 9Nền tảng của một ứng dụng nào đó được khai thác như một DV (PaaS- Platform as a Service) Người dùng không phải chịu chiphí cho toàn bộ nền tảng của ứng dụng mà chỉ chịu chi phí cho phần nềntảng nào được sử dụng.
PM được khai thác như một DV(SaaS-Software as a Service) Không phải trả bản quyền cho PM mà ngườidùng chỉ trả tiền khai thác PM đó.
Tiện ích tính toán (UtilityComputing) Người dùng chỉ chịu chi phí cho những tài nguyên, tiện íchđược khai thác, không khác gì trả tiền điện, tiền nước theo đồng hồ đomà ta đã rất quen thuộc trong cuộc sống hàng ngày.
Trang 10Thuật ngữ tính toán Parallel được sử dụng trong bài viết này đề cập đến thực hiện đồng thời hoặc cùng lúc - nhiệm vụ riêng lẻ đang được thực hiện cùng một lúc Cơ
sở dữ liệu quan hệ song song như Informix XPS, IBM DB2 Enterprise- Extended Edition, NCR Teradata, và Sybase IQ12-Multiplex cho phép thực hiện truy vấn song song thông qua việc thực hiện đồng thời và cùng lúc với SQL trên các CPU riêng biệt, mỗi trích xuất dữ liệu từ ổ đĩa riêng của mình, nắm giữ một phần của cơ sở dữ liệu Những gì làm chậm tiến trình xử lý là do sự phụ thuộc tuần tự, đây là một tình trạng mà trong đó tác vụ B không có thể bắt đầu cho đến khi tác vụ A hoàn thành Nguồn gốc đoạn code SAS chạy tuần tự Xem xét một chương trình SAS đơn giản mà đọc và thay đổi một tập dữ liệu, sắp xếp, và sau đó tính toán thống kê tóm tắt theo nhóm PROC SORT không bắt đầu cho đến khi kết thúc bước DATA và PROC MEANS sẽ không chạy cho đến khi sắp xếp kết thúc Tổng thời gian thực hiện cho công việc là tổng thời gian cho các bước riêng biệt.
Một trình tự thực hiện hiệu quả hơn là pipelineParallelism (đường ống song song) Điều này có thể khi tác vụ B đòi hỏi đầu ra từ tác vụ A nhưng nó không cần tất
cả các đầu ra trước khi nó có thể bắt đầu Trong ví dụ của chúng tôi, PROC SORT thực
sự không cần tất cả các dữ liệu đầu ra của bước DATA trước khi nó có thể bắt đầu Sắp xếp có thể bắt đầu chỉ với hai mẩu tin và sau đó tiếp tục bằng cách thêm và sắp xếp mẩu tin nhiều hơn khi chúng trở nên sẵn có PROC MEANS có thể bắt đầu tính toán
Trang 11ngay khi hai mẩu tin đầu tiên của nhóm giống nhau đã sẵn có từ PROC SORT Bởi vì các luồng dữ liệu trong một dòng liên tục từ một tác vụ này đến một công việc khác, thời gian thực hiện chương trình được rút ngắn đáng kể bằng pipelineParallelism.
Xử lý song song độc lập xảy ra khi không có sự phụ thuộc giữa các tác vụ và chúng có thể được hoàn thành đồng thời Giả sử như chúng ta có hai tập dữ liệu cần phải được đọc, thao tác, sắp xếp, và sau đó kết hợp trước khi tính toán thống kê tóm tắt nhóm.
Nếu chúng ta đọc và thao tác cả hai bộ dữ liệu cùng một lúc và có các bản ghi xử
lý ảnh hưởng vào hai hoạt động Sắp xếp riêng biệt thực hiện cùng một lúc, sau đó chúng ta đã đạt được cả hai song song độc lập và song song pipeline.
Song song độc lập kết hợp với song song pipeline rõ ràng là tốt nhất để giảm thiểu thời gian thực hiện.
Hình 1: Loại chương trình thực thi
II Phần cứng
Hệ thống máy tính cấp doanh nghiệp giải quyết nhiệm vụ quan trọng các vấn đề
sử dụng cơ sở dữ liệu rất lớn Chúng cần phải có tính sẵn sàng cao và đáng tin cậy (thường 24x7x365) và có khả năng đáp ứng nhu cầu hiệu suất ngày càng tăng.
Các ứng dụng chính chạy trên máy tính được tìm thấy trong các trung tâm dữ liệu doanh nghiệp rơi vào một trong ba loại: OLTP, DSS, hoặc truyền thông doanh nghiệp.
Trang 12 OLPT: Xử lý giao dịch trực tuyến liên quan đến việc quản lý hằng ngày của các chức năng kinh doanh, chủ yếu sử dụng cơ sở dữ liệu quan hệ Một ví dụ là đơn hàng.
DSS: Hệ thống hỗ trợ quyết định đề cập đến khai thác, phân tích và trình bày
dữ liệu từ cơ sở dữ liệu historic để cho phép đưa ra quyết định dựa trên tri thức OLAP, xử lý phân tích trực tuyến, là một kiểu con của DSS Một ví dụ là việc kiểm tra bán hàng hàng tuần so với quý trước theo thành phố trong phạm
vi bang.
Truyền thông doanh nghiệp bao gồm các hoạt động nhắn tin và truyền thông, máy chủ web, và hệ thống tìm kiếm tài liệu.
Bốn kiến trúc phần cứng hiện đang có sẵn cho nền tảng cấp doanh nghiệp:
Hệ thống đa xử lý đối xứng (SMP): Còn được gọi là hệ thống bộ nhớ chia sẻ Nhiều CPU và tài nguyên liên quan đang chạy dưới một điều hành hệ thống duy nhất Bộ nhớ và nguồn tài nguyên đĩa được chia sẻ.
Hệ thống xử lý song song cực lớn (MPP): Còn được gọi là bộ nhớ hệ thống phân tán Trường hợp duy nhất của hệ điều hành và ứng dụng đang chạy trên rất nhiều các nút vật lý riêng biệt, mỗi thành phần gồm một hoặc nhiều bộ vi xử lý
và tài nguyên liên quan Thường thì không có tài nguyên được chia sẻ giữa các nút và thông tin liên lạc giữa các nút được thực hiện bằng cách chuyển thông điệp giữa các hệ điều hành của các nút.
Hệ thống phân cụm (SMP): trường hợp riêng biệt của một hệ điều hành chạy trên một nút SMP riêng biệt, với mỗi nút đang chạy một cá thể của ứng dụng
và có thể chia sẻ các thiết bị lưu trữ và dữ liệu.
Hệ thống bộ nhớ truy cập không đồng dạng (Numa): Còn được gọi là hệ thống phân phối bộ nhớ chia sẻ Một kết hợp của phân cụm nền tảng MPP và SMP.
III Hệ thống đa xử lý đối xứng (SMP)
Có thể được sử dụng rộng rãi nhất kiến trúc phần cứng song song ngày nay là đa đối xứng (SMP), một bước tiến đáng kinh ngạc trong hệ thống CPU đơn.
Tất cả các nhà sản xuất máy tính lớn làm cho máy SMP, nhưng người sử dụng SAS có thể là quen thuộc nhất với CN và Hewlett-Packard
Trong các hệ thống đơn CPU ban đầu, bộ vi xử lý đã buộc phải hỗ trợ trong các
dữ liệu đầu vào / đầu ra hoạt động Trong khi I / O đang diễn ra, CPU không thể thực hiện tính toán và ngược lại Dữ liệu chỉ có thể di chuyển giữa bộ nhớ và I / O thông
Trang 13qua giao diện CPU Đầu tiên cải tiến là để giảm tải I / O cho một bộ điều khiển riêng biệt Bộ điều khiển này trực tiếp giao diện với bộ nhớ mà không cần sự hỗ trợ của CPU Chỉ liên lạc CPU bộ điều khiển I / O trong bursts ngắn để biết nó ở đâu trong bộ nhớ để đặt hoặc lấy dữ liệu từ đĩa Khi CPU và I / O điều khiển là đồng thời hoạt động, một dạng đơn giản song song độc lập đang diễn ra-khác nhau, hoạt động riêng biệt đang xảy ra đồng thời
Một điểm quan trọng ở đây là cả hai thành phần được truy cập vào các phần khác nhau của không gian bộ nhớ như nhau Điều này có nghĩa rằng một kiến trúc bộ nhớ chia sẻ được đặt ra.
Hình 2 Sự phát triển của SMP Một khi đã trở thành có thể cho nhiều hơn một thiết bị CPU hoặc I / O điều khiển-
để truy cập vào cùng một bộ nhớ, rõ ràng bước tiếp theo là cho phép một số bộ xử lý độc lập và I / O bộ điều khiển để chia sẻ một không gian bộ nhớ duy nhất lớn hơn Trong một kiến trúc bộ nhớ chia sẻ, hệ điều hành thực thi tách biệt chặt chẽ giữa các hoạt động đồng thời Với các thành phần CPU và I / O điều khiển-có một phần của
bộ nhớ được giao và hệ điều hành đảm bảo sự tách biệt hợp lý của các không gian giao nhau để một thành phần không can thiệp cấp phát bộ nhớ khác.
Trang 14Điều quan trọng là nhận ra rằng trong một kiến trúc bộ nhớ chia sẻ các CPU cũng chia sẻ cùng bus hoặc đường dẫn đến bộ nhớ chính Điều này có nghĩa rằng chỉ
có một CPU hoặc bộ điều khiển I / O có thể được đọc hoặc ghi vào bộ nhớ tại một thời điểm Trong khi tốc độ bus là nhanh, vẫn còn là một tốc độ truyền tải dữ liệu hữu hạn, được gọi là băng thông bộ nhớ
Hệ điều hành được sử dụng để quản lý truy cập vào bộ nhớ, và một kỹ thuật được gọi là bộ nhớ đệm, chi tiết sau này, được sử dụng để giảm bộ nhớ tranh chấp và cải thiện hiệu suất tổng thể.
Cách phổ biến nhất mà SMP được sử dụng trong đa nhiệm Trong khi một CPU đang thực hiện một chương trình, CPU khác cũng đang thực hiện chương trình đó.
Vì hệ điều hành giữ tiến trình riêng biệt và ẩn với nhau, nó xuất hiện mỗi chương trình là nó đang chạy trên một máy xử lý tuần tự đơn CPU Đây là những gì cho phép SAS để chạy trên máy đa CPU như gia đình của Sun của máy chủ doanh nghiệp.
Nhưng điều gì nếu chúng ta có một hệ thống bốn CPU và chỉ có một chương trình đang thực thi? Ba CPU đang thực thi bị lãng phí Vì vậy, trong khi đa nhiệm rất hữu ích, nó không vốn dĩ đã sử dụng tất cả sức mạnh của kiến trúc SMP Cách tiếp cận hợp lý là để cho tất cả các CPU hợp tác trên một chương trình duy nhất (hoặc ứng dụng) Mục đích rõ ràng là để làm cho chương trình thực hiện nhanh hơn và giả định
là bằng cách đặt tất cả bốn CPU để làm việc trên cùng một chương trình, chương trình
sẽ thực hiện bốn lần nhanh hơn
Trong cùng một cách thức, vấn đề lớn gấp bốn lần sẽ hoàn thành trong thời gian cần một đơn CPU để giải quyết ban đầu Áp dụng nhiều bộ xử lý đồng thời cùng một vấn đề là một tính năng cơ bản của xử lý song song.
Hình 3 cho thấy đa nhiệm trên một hệ thống SMP ba bộ vi xử lý, và Hình 4 cho thấy đa nhiệm và xử lý song song trên cùng một hệ thống Trong hình 3, các phần của
bộ nhớ đã được gán cho mỗi trong ba công việc đang chạy.
Trang 15Hình 3: Đa nhiệm trên một hệ thống SMP Trong hình 4, tuy nhiên, chỉ có hai công việc đang chạy: một CPU đang chạy một công việc và hai đang chạy khác Nhận thấy rằng các đơn CPU có không gian bộ nhớ riêng của mình nhưng các CPU hợp tác cả hai đều có quyền truy cập vào các phần cùng bộ nhớ Sự tách biệt hợp lý giữa hai công việc, tuy nhiên, vẫn đang được duy trì bởi hệ thống.
Hình 4 Xử lý song song trên hệ thống SMP
Trang 17IV Ưu và nhược điểm của SMP
Sự thành công thương mại của hệ thống SMP phần lớn là do khả năng đa nhiệm các ứng dụng tuần tự hiện có (cũ) và các chương trình có rất ít hoặc không có sửa đổi Chúng làm điều này bằng cách không chạy các ứng dụng song song, trong thực tế các ứng dụng cho rằng đó là trên một máy CPU đơn và thực hiện tuần tự giống như nó trên một máy tính duy nhất-CPU thông thường Trong khi một trong ứng dụng đang thực thi trên một trong CPU, một ứng dụng khác đang thực thi trên CPU khác Do số lượng lớn bộ nhớ được cài đặt trên hệ thống SMP-thường 512 megabyte (MB) hoặc nhiều hơn cộng với một megabyte hay hơn của bộ nhớ cache-các hệ thống này có hiệu quả cao để hỗ trợ cho nhiều người sử dụng chạy nhiều ứng dụng cùng một lúc, đặc biệt là các ứng dụng OLTP.
Xử lý song song có thể được thực hiện khi các ứng dụng được viết để hỗ trợ nó Một số cơ sở dữ liệu quan hệ đã được viết đặc biệt để sử dụng đa CPU có sẵn trong máy SMP Nếu RDBMS hỗ trợ nhiều chủ đề, sau đó các CPU có thể hợp tác như trong hình 4 để tăng tốc độ thực hiện truy vấn Điều này được thực bằng cách phân chia các code thành các vùng song song và tuần tự Nhiều bộ vi xử lý làm việc trên nhiều chủ đề đang tồn tại trong những vùng song song nhưng chỉ có một công việc khi chương trình
là trong một khu vực tuần tự.
Hạn chế quan trọng nhất của kiến trúc SMP là khả năng mở rộng của nó Trong ngắn hạn, calability là cải tiến để có được bằng cách thêm một bộ xử lý bổ sung cho hệ thống Các mục tiêu của việc thêm bộ vi xử lý là: (1) thực hiện một công việc nhanh hơn(tăng tốc độ) hoặc (2) tăng kích thước của công việc có thể được hoàn thành trong một khoảng thời gian nhất định (quy mô lên).
Để đo lường khả năng mở rộng, trước tiên chúng ta tính toán / ước tính một tỷ
lệ kích thước việc chia thời gian hoàn thành cho một máy CPU duy nhất Hy vọng rằng
tỷ lệ này sẽ có quy mô tương ứng với số lượng các bộ vi xử lý Chúng ta muốn thấy hoặc là tăng gấp đôi số lượng các bộ vi xử lý sẽ tăng gấp đôi lên tốc độ và quy mô lên của máy lý tưởng nó sẽ làm cả hai.
Mặc dù quản lý bộ nhớ ảnh hưởng đến một máy SMP chạy song song, giới hạn băng thông là yếu tố quan trọng hơn là hạn chế khả năng mở rộng Đây không phải là
Trang 18số lượng bộ nhớ mà không quy mô, đó là quyền truy cập vào bộ nhớ bus băng thông là không quy mô.
V SMP hạn chế bộ nhớ
Có một điều quan trọng ngắt kết nối giữa tốc độ mà một CPU có thể xử lý dữ liệu
và tốc độ dữ liệu có thể được nó truy cập vào Bộ nhớ truy cập ngẫu nhiên động và tất
cả các biến thể của nó (SDRAM, eDRAM, và CDRAM) chỉ đơn giản là không thể cung cấp dữ liệu cho CPU nhanh đủ.
Giải pháp là tạo ra một bộ nhớ cache của bộ nhớ truy cập ngẫu nhiên tĩnh giữa các CPU và bộ nhớ chính Nó đắt tiền, nhưng tốt hơn phù hợp với tốc độ của CPU.
Khi CPU đưa ra yêu cầu, mong là các dữ liệu được yêu cầu sẽ đã cư trú trong bộ nhớ cache, sản xuất ra một hit cache Nếu có, bộ vi xử lý có thể tiếp tục mà không cần phải chờ đợi lấy từ bộ nhớ chính Khi các dữ liệu không phải là trong bộ nhớ cache - là
lỡ cache-sau đó bộ nhớ chính phải được truy cập và hiệu suất chịu May mắn thay, kỹ thuật bộ nhớ đệm đã được tinh chế tới mức tỷ lệ hit của 95-99% là phổ biến cho nhiều ứng dụng cơ sở dữ liệu
Bộ nhớ đệm rõ ràng cải thiện hiệu suất Đồng thời, tuy nhiên, nó tạo ra một vấn
đề khác mà làm giảm hiệu suất Nếu mỗi CPU có bản sao riêng của mình dữ liệu trong
bộ nhớ cache riêng của mình, những gì sẽ xảy ra khi một trong những CPU thay đổi một giá trị trong bản sao lưu của nó, sau đó được viết qua trong bộ nhớ chính?
Các CPU khác phải được thông báo hoặc chúng sẽ sử dụng dữ liệu không đúng và
có khả năng gây ra lỗi.
Các giải pháp để duy trì sự gắn kết bộ nhớ cache yêu cầu mỗi CPU liên tục "lắng nghe" bus cho các thông điệp từ các CPU khác mà chúng đang viết cho bộ nhớ Khi điều đó xảy ra, các CPU khác phải cập nhật bộ nhớ cache của mình Như số CPU trong
hệ thống SMP song song tăng, mỗi CPU phải dành nhiều thời gian "bus đánh hơi" và dội và nạp lại bộ nhớ cache của nó.
VI SMP hạn chế băng thông
Ngay cả trong hầu hết bộ nhớ cache hệ thống SMP nhất quán , truy cập vào các
bộ nhớ vật lý chia sẻ - bus-là một nút cổ chai.