Mục đích của môn học Giúp sinh viên: Nắm được những nguyên tắc cơ bản của xử lý song song và thực hiện cơ chế song song trong các hệ tính toán khác nhau Làm quen với các đặc điểm v
Trang 2Lưu ý của tác giả
Không được tự ý sao chép hay quảng bá bài giảng này khi chưa được sự đồng ý của các tác giả.
Địa chỉ liên hệ của các tác giả:
Nguyễn Phú Bình
Email: ngphubinh@yahoo.com Mobile: 0983533925
Website: http://phubinh.vicosoft.com/ktmt
Trần Trung Kiên
Email: trankien_bk@yahoo.com Mobile: 0914919392
Bộ môn Kỹ thuật Máy tính
Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội
Trang 3Mục đích của môn học
Giúp sinh viên:
Nắm được những nguyên tắc cơ bản của xử lý song song và thực hiện cơ chế song song trong các hệ tính toán khác nhau
Làm quen với các đặc điểm về hiệu suất và hiệu năng của hệ thống song song, các điểm đặc biệt trong việc thực hiện các giải thuật song song trên các hệ thống tính toán.
Nắm được khái niệm về các lớp hệ thống tính toán song song hiện đại.
Trang 4Yêu cầu của môn học
Yêu cầu sinh viên cần phải có kiến thức về Kiến trúc
máy tính, Vi xử lý và Hệ điều hành
Kết thúc môn học sinh viên cần phải:
Nắm được các kiểu cấu trúc cơ bản của các hệ thống tính
toán hiện đại hiệu năng cao, sơ đồ phân loại các hệ thống tính toán song song, nguyên tắc tổ chức và các chức năng của
Trang 5Tài liệu tham khảo
Hesham El-Rewini, Mostafa Abd-El-Barr, Advanced
Computer Architecture And Parallel Processing,
John Wiley & Sons, Inc., 2005
Ananth Grama, Anshul Gupta, George Karypis, Vipin
Kumar, Introduction to Parallel Computing, Addison
Wesley, 2003
Trang 6Kiến trúc các hệ thống tính toán
Chương 1
TỔNG QUAN VỀ HỆ THỐNG TÍNH TOÁN
Nguyễn Phú Bình – Trần Trung Kiên
Bộ môn Kỹ thuật Máy tính, Khoa Công nghệ Thông tin
Trang 7Nội dung chương 1
1.1 Sự phát triển của máy tính và kiến trúc song song
1.2 Các mức song song của hệ thống
1.3 Hiệu năng của hệ thống song song
1.4 Phân loại các hệ thống song song
1.5 Các hệ thống song song hiện đại
Trang 81.1 Sự PT của MT và kiến trúc song song
Từ khi ra đời cho đến nay, máy tính điện tử đã phát
Trang 9Thế hệ 1: Máy tính dùng đèn điện tử
1946: John Mauchley và J.Presper Eckert chế tạo ra
ENIAC (Electronic Numerical Integrator and Computer)
- máy tính điện tử đa năng đầu tiên:
Gồm gần 18000 đèn điện tử chân không và 1500 rơle điện tử
Nặng 30 tấn, chiếm diện tích 170m 2 , tiêu thụ 170KW
Có 20 thanh ghi, mỗi thanh ghi chứa được 1 số thập phân 10 chữ số
Xử lý số ở hệ thập phân
Bộ nhớ chỉ lưu trữ dữ liệu
Hoạt động bằng cách thiết lập vị trí của các công tắc và các cáp nối
Trang 10Đèn điện tử chân không
Trang 11Máy ENIAC
Trang 12Thiết kế của von Neumann/Turing
Dựa trên ý tưởng chương trình được lưu trữ
(stored-program concept)
Bộ nhớ chính chứa chương trình và dữ liệu
ALU thực hiện các phép toán với số nhị phân
Đơn vị điều khiển giải mã lệnh từ bộ nhớ và thực hiện
Đơn vị điều khiển điều khiển hoạt động của các thiết bịvào-ra
Trở thành mô hình cơ bản của các thế hệ máy tính sau này
Trang 13Kiến trúc Von Neumann
Kiến trúc Von Neumann Máy IAS (1947-1952) do Von Neumann thiết kế
Trang 14Thế hệ 2: Máy tính dùng Transistor
1947: John Bardeen, Walter Brattain và William
Shockley phát minh ra transistor ở Bell Labs (Mỹ)
Các máy tính thế hệ này nhanh hơn, nhỏ gọn hơn và
tiêu thụ điện năng ít hơn so với thế hệ trước
Trang 15Một số máy tính thế hệ 2
Công ty DEC (Digital Equitment Corporation):
1960: máy PDP-1 (Programmed Data Processor-1)
Máy tính mini đầu tiên.
Thời gian chu trình lệnh 5s (=½ IBM 7090 – nhanh nhất lúc đó)
Trị giá 120000$ (IBM 7090 trị giá hàng triệu $)
Công ty CDC (Control Data Corporation):
1964: chế tạo máy CDC 6600
Siêu máy tính đầu tiên, nhanh hơn IBM 7094
CPU gồm các đơn vị chức năng có khả năng chạy song song
Gồm cả một số minicomputer chuyên xử lý vào-ra
Thực hiện được 10 triệu lệnh/s
Trị giá 10 triệu USD
Trang 16Máy PDP-1 và CDC 6600
Trang 18Quy trình chế tạo IC
Sản xuất
wafer In li-tô
Cưa wafer thành khuôn
Đóng vỏ cho khuôn
Layout của các lớp vi mạch
Trang 19Công nghệ mạch tích hợp
Cho phép xây dựng các siêu máy tính mạnh hơn
1976: CRAY-1 do Cray Research Corporation thiết kế
Thực hiện được 160 triệu lệnh/s
Có đến 8MB bộ nhớ
Bộ vi xử lý (microprocessor) – CPU được chế tạo trên
1 chip ra đời (1971: Intel 4004 – bộ vi xử lý 4 bit)
Trang 20Siêu máy tính CRAY-1
Trang 21Intel 4004 - Bộ vi xử lý đầu tiên
Trang 22Thế hệ 4: Máy tính dùng vi mạch VLSI
Các công nghệ mạch tích hợp:
SSI (Small scale integration) – từ 1965
Tích hợp tới 100 transistor trên một chip
MSI (Medium scale integration) – cho đến 1971
Tích hợp từ 100 đến 3,000 transistor trên một chip
LSI (Large scale integration) – từ 1971 đến 1977
Tích hợp từ 3,000 đến 100,000 transistor trên một chip
VLSI (Very large scale integration) – từ 1978 đến nay
Tích hợp từ 100,000 đến 100,000,000 transistor trên một chip
ULSI (Ultra large scale integration)
Có hơn 100,000,000 transistor trên một chip
Trang 23Các công nghệ sản xuất máy tính
Trang 24Các sản phẩm của công nghệ VLSI
Bộ vi xử lý (Microprocessor): CPU được chế tạo trên
một chip
Các vi mạch điều khiển tổng hợp (Chipset): các vi
mạch thực hiện được nhiều chức năng điều khiển và
nối ghép
Bộ nhớ bán dẫn (Semiconductor Memory), gồm hai
loại chính: ROM và RAM
Các bộ vi điều khiển (Microcontroller): máy tính
chuyên dụng được chế tạo trên một chip
Trang 25Các loại máy tính phổ biến hiện nay
Máy tính nhúng (Embedded Computer)
Máy tính cá nhân (Personal Computer - PC)
Máy trạm làm việc (Workstation)
Máy chủ (Server)
Máy tính lớn (Mainframe Computer)
Siêu máy tính (Super Computer)
Trang 26Đặc điểm của kiến trúc Von Neumann
Tốc độ của bộ xử lý ngày càng được nâng cao và
nhanh hơn so với tốc độ truy cập bộ nhớ
Hiện tượng thắt cổ chai (bottle-neck): trong các chu
trình lệnh, CPU sẽ lãng phí một vài chu kỳ đồng hồ đểchờ đợi quá trình truy cập bộ nhớ
Kiến trúc song song là một giải pháp hữu hiệu để
tăng năng lực cho các hệ thống tính toán
Trang 27Kiến trúc máy tính song song
Định nghĩa của Alamsi và Gottlieb (1989):
Máy tính song song là máy tính bao gồm một tập các
bộ xử lý tương tác với nhau và cùng phối hợp để giải quyết nhanh hơn các bài toán lớn
Trang 28Nội dung chương 1
1.1 Sự phát triển của máy tính và kiến trúc song song
1.2 Các mức song song của hệ thống
1.3 Hiệu năng của hệ thống song song
1.4 Phân loại các hệ thống song song
1.5 Các hệ thống song song hiện đại
Trang 291.2 Các mức song song của hệ thống
1 Song song mức bộ nhớ
2 Song song mức bộ xử lý
Trang 31a Mô hình bộ nhớ riêng biệt
Trang 32Mô hình bộ nhớ riêng biệt
Hệ thống được tạo bởi các máy tính riêng biệt kết nối với nhau bằng mạng nội bộ tốc độ cao
Những hệ thống song song kiểu này được gọi là hệ
thống Boewufs hay Beowulf Cluster (hệ thống bó
Beowulf) Các máy tính trong Cluster có thể là các máy tính cá nhân, các máy trạm (đơn bộ xử lý hoặc đa bộ
xử lý đối xứng - SMP)
Mô hình lập trình cho các ứng dụng trong hệ thống này được gọi là mô hình truyền thông điệp (message
passing)
Trang 33Mô hình lập trình truyền thông điệp
Một chương trình thường bao gồm nhiều tiến trình con được thực hiện đồng thời, mỗi tiến trình được thực
hiện trên một máy có vùng nhớ và dữ liệu riêng và có
sử dụng các gói thông điệp (messages) để truyền
thông với nhau
Phương pháp giao tiếp giữa các nút tính toán trong mô hình này được thực hiện cách đóng gói dữ liệu thành các thông điệp theo một khuôn dạng xác định và truyền
đi trong mạng Việc truyền và nhận được thực hiện
bằng cách gọi các hàm của thư viện lập trình song
song
Trang 34Mô hình lập trình truyền thông điệp
Trang 35Thư viện MPI
Thư viện truyền thông điệp được sử dụng nhiều nhất hiện nay là MPI (Message Passing Interface):
Bao gồm các hàm bằng C, C++ hoặc Fortran dùng để truyền thông giữa các tiến trình.
Là kết quả của hơn 2 năm thảo luận của MPI Forum - nhóm gồm khoảng 60 người từ 40 tổ chức khác nhau đại diện cho những nhà phân phối các hệ thống song song, những phòng thí nghiệm quốc gia và những trường đại học danh tiếng.
Trang 36b Mô hình bộ nhớ chia sẻ
Trang 37Mô hình bộ nhớ chia sẻ
Trong mô hình này, các CPU sử dụng chung một
không gian nhớ vật lý
Mọi CPU đều có khả năng truy cập như nhau tới dữ
liệu trong không gian nhớ chung đó
Các CPU trao đổi thông tin thông qua các đường bus tốc độ cao
Một trong những vấn đề quan trọng trong mô hình này
là cách tổ chức và quản lý việc sử dụng bộ nhớ của
các tiến trình do các CPU thực hiện
Trang 38Quản lý bộ nhớ trong mô hình
Trang 39Mô hình cải tiến có sử dụng Cache
Hầu hết các hệ thống máy tính hiện đại ngày nay đều
sử dụng bộ nhớ Cache để giảm độ trễ và tăng băng
Trang 40Mô hình hiện đại có dùng Cache
Trang 41 Superscalar Processing (Xử lý siêu vô hướng)
Explicitly Parallel Instructions
SIMD and Vectors (Đơn dòng lệnh đa dòng dữ liệu và vector)
Trang 42a Kiến trúc kiểu Superscalar
Các thành phần chính trong CPU:
Arithmetic Logic Unit (ALU): tính toán số học và logic.
Floating-Point Unit (FPU): thực hiện các phép toán với số dấu chấm động.
Load/Store Unit: thực hiện nạp và lưu dữ liệu.
Registers: thường được chia làm 2 loại:
Thanh ghi dấu chấm động (Floating-Point Registers FPRs)
Thanh ghi thông thường (General Purpose Registers GPRs).
Trang 43Nhắc lại kiến trúc truyền thống
Trang 44Kiến trúc kiểu Superscalar
Xét ví dụ sau:
Real a,b,c Integer i,j,k
Trang 46Kiến trúc Superscalar
Các lệnh riêng biệt được thực hiện đồng thời, vì vậy
kiến trúc này còn được gọi là song song mức lệnh
Trang 47 Theo thứ tự bên trái: CPU thực hiện mất 3 chu kỳ
Theo thứ tự bên phải: CPU thực hiện mất 2 chu kỳ
Trang 48Nhược điểm của kiến trúc Superscalar
Phức tạp khi thiết kế phần cứng: trước khi thực hiện
các thao tác song song, bộ xử lý phải kiểm tra xem
chúng có phụ thuộc nhau không
Có một cách tiếp cận khác là chuyển công việc xác
định tập các lệnh có thể thực thi song song cho trình
biên dịch (Compiler) Kiến trúc Explicitly Parallel
Instructions
Trang 49b Explicitly Parallel Instructions
Mỗi một lệnh sẽ chứa các lệnh con riêng lẻ Vì vậy kiến trúc này còn gọi là kiến trúc từ lệnh dài (Very Long Instruction Word)
Các lệnh con này được thực hiện bởi các đơn vị thực thi khác nhau của CPU
Việc phân tích các lệnh và xác định các lệnh
con có thể thực hiện song song được tiến hành bởi trình biên dịch (Compiler).
Trang 50Explicitly Parallel Instructions (tiếp)
Trang 51c SIMD and Vectors
SIMD (Single-Instruction Multiple-Data streams) and
Vectors
Thực hiện cùng một thao tác trên các dữ liệu
khác nhau bằng cách sử dụng đồng thời nhiều các đơn vị chức năng của CPU.
Trang 52Nội dung chương 1
1.1 Sự phát triển của máy tính và kiến trúc song song
1.2 Các mức song song của hệ thống
1.3 Hiệu năng của hệ thống song song
1.4 Phân loại các hệ thống song song
1.5 Các hệ thống song song hiện đại
Trang 531.3 Hiệu năng của hệ thống song song
Hiệu năng tuyệt đối (Absolute Performance): thời gian
để hoàn thành công việc
Tốc độ xử lý (Processing Rate): được tính bằng số
phép toán dấu chấm động trong một giây (Floating
Point Operations Per Second – FLOPS)
Trang 54Bài toán tăng tốc (Speedup)
Sự tăng tốc của hệ thống (Speedup):
Speedup = Thời gian sử dụng 1 bộ xử lý để giải quyết bài toán / Thời gian sử dụng hệ thống song song nhiều
bộ xử lý để giải quyết bài toán đó
Trang 55Cách tính Speedup của hệ thống
Giả sử một công việc có thể chia đều thành n công
việc con và mỗi công việc con có thể được thực hiện trên 1 processor
Thời gian để thực hiện công việc trên 1 bộ xử lý là T
Thời gian để thực hiện 1 công việc con là: t = T/n
Thời gian dùng cho truyền thông khi thực hiện 1 công việc con là tc
Speedup:
Trang 56Cách tính Speedup của hệ thống (tiếp)
Nhận xét:
Khi T >> tc:
S(n) ~ n tốc độ của hệ thống tăng n lần khi dùng n bộ xử lý
Khi T << tc hoặc T ~ tc: tốc độ của hệ thống bị giảm hoặc tăng không đáng kể nếu dùng nhiều bộ xử lý.
Trang 57Nội dung chương 1
1.1 Sự phát triển của máy tính và kiến trúc song song
1.2 Các mức song song của hệ thống
1.3 Hiệu năng của hệ thống song song
1.4 Phân loại các hệ thống song song
1.5 Các hệ thống song song hiện đại
Trang 581.4 Phân loại các hệ thống song song
1 Phân loại của Flynn
2 Phân loại của Shore
Trang 591 Phân loại của Flynn
Theo tài liệu: Flynn, M “Some Computer Organizations
and Their Effectiveness”, IEEE Transactions on
Computers, 9/1972.
Có 4 loại kiến trúc máy tính:
SISD (Single Instruction Single Data stream): kiến trúc đơn
Trang 60a Kiến trúc SISD
Đơn dòng lệnh
Một bộ xử lý
Dữ liệu được lưu trữ trong một bộ nhớ
Chính là kiến trúc Von Neumann
Trang 61b Kiến trúc MISD
Theo Flynn thì không tồn tại máy tính theo kiến trúc
này
Trang 63d Kiến trúc MIMD
Tập các bộ xử lý: các bộ xử lý đồng thời thực hiện các dãy lệnh khác nhau trên các dữ liệu khác nhau
Các mô hình MIMD:
Multiprocessor (Shared Memory) – đa bộ xử lý
Multicomputer (Distributed Memory) – đa máy tính
Trang 64MIMD – Shared Memory
PE1
Bộ nhớ dùng chung
Trang 662 Phân loại của Shore
Shore đưa ra phân loại này vào năm 1973, ông phân loại dựa trên cấu trúc và số lượng các đơn vị chức
năng trong máy tính
Có 6 loại kí hiệu theo thứ tự số La Mã:
Trang 67Loại I
Là kiến trúc Von Neuman, chỉ có một đơn vị điều khiển
Tương ứng với loại SISD trong cách phân loại của Flynn
CPU làm việc với bộ nhớ theo chế độ từ nhớ word-slice
Control Unit
Processing Unit (Horizontal)
Memory (Word-slice)
Trang 68Loại II
Hơi giống loại I, tuy nhiên CPU làm việc với bộ nhớ
theo chế độ bit-slice
Trang 69Loại III
Là sự kết hợp của loại I và loại II
Kiến trúc bao gồm 2 bộ xử lý:
1 BXL trao đổi dữ liệu với bộ nhớ theo chế độ word-slice
1 BXL trao đổi dữ liệu với bộ nhớ theo chế độ bit-slice
VD: OMEN-60
Trang 70Loại IV
Là sự kết hợp của nhiều máy tính loại I, gồm:
Một đơn vị điều khiển (Control Unit)
Nhiều cặp bộ xử lý - bộ nhớ
Ưu điểm: dễ mở rộng, chỉ cần thêm Processing Unit và Memory
Nhược điểm: hạn chế về đường truyền do mọi thao tác đều phải thông
Trang 73
Nội dung chương 1
1.1 Sự phát triển của máy tính và kiến trúc song song
1.2 Các mức song song của hệ thống
1.3 Hiệu năng của hệ thống song song
1.4 Phân loại các hệ thống song song
1.5 Các hệ thống song song hiện đại
Trang 74Các hệ thống song song hiện đại
1 Hệ đa xử lý đối xứng
(Symmetric Multi Processor - SMP)
2 Hệ truy cập bộ nhớ không đồng nhất
(Non-Uniform Memory Access - NUMA)
3 Hệ thống song song phân cụm
(Cluster)
4 Hệ xử lý song song cực lớn
(Massively Parallel Processing - MPP)
Trang 751 Hệ đa xử lý đối xứng (SMP)
Tương đương với Uniform Memory Access (UMA)
Thuộc mô hình song song kiểu bộ nhớ dùng chung
(Shared-memory)
Trang 76Hệ đa xử lý đối xứng (tiếp)
Một bộ xử lý có từ 2 bộ xử lý giống nhau trở lên
Các bộ xử lý dùng chung bộ nhớ và hệ thống vào-ra
Thời gian truy cập bộ nhớ là bằng nhau với các bộ xử
lý và quyền truy cập (read/wirte) tới bộ nhớ của các bộ
xử lý là như nhau đa xử lý đối xứng
Tất cả các bộ xử lý chia sẻ truy cập vào-ra
Các bộ xử lý có thể thực hiện chức năng giống nhau
Hệ thống được điều hành bởi một hệ điều hành phân tán
Trang 77Hệ đa xử lý đối xứng (tiếp)
Trong các kiến trúc hiện đại: mỗi bộ xử lý đều có thêm
1 bộ nhớ cache làm tăng tốc độ truy cập bộ nhớ và
giảm xung đột truy cập bộ nhớ giữa các bộ xử lý
VD: Sun Starfire Servers, HPV Series, Compaq
AlphaServer GS
Hệ điều hành: Unix, Sun Solari, Windows, AIX,…
Trang 78Ưu điểm của SMP
Hiệu năng: các công việc có thể thực hiện song song
Tính sẵn dùng: các bộ xử lý có thể thực hiện các chức năng giống nhau, vì vậy lỗi của 1 bộ xử lý sẽ không
làm dừng hệ thống
Khả năng mở rộng: người sử dụng có thể tăng hiệu
năng bằng cách thêm bộ xử lý