1.Ứng dụng của các hệ thống tính toán đa bộ xử lý Với kiến trúc đơn bộ xử lý: 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ớ.. Mô hình lập tr
Trang 1KIẾN TRÚC CÁC HỆ THỐNG TÍNH TOÁN
Nguyễn Phú Bình
Trần Trung Kiên
Bộ môn KTMT - Khoa CNTT
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 C1- P322, Tel: 8696125
Trang 3Ôn Tập
1 Ứng dụng của các hệ thống tính toán đa bộ xử lý
2 Phân loại của Flin
3 Phân biệt shared-memory và distributed memory
system
4 Phân biệt UMA, SMP,NUMA, Cluster, MPP
5 Myrinet
Trang 41.Ứng dụng của các hệ thống tính toán đa
bộ xử lý
Với kiến trúc đơn bộ xử lý:
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
Hệ thống đa bộ xử lý, song song dùng để thực hiện
những bài toán đòi hỏi khối lượng tính toán lớn.
Trang 52 Phân loại của Flynn
Theo tài liệu: Flynn, M “Some Computer Organizations
and Their Effectiveness”, IEEE Transactions on
Trang 6Phân loại của Flynn (tiếp)
Có 4 loại kiến trúc máy tính:
SISD (Single Instruction Single Data stream): kiến trúc đơn
Trang 7a 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 8b 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 10d 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 113 Shared-memory và distributed memory system
Trang 12a Mô hình bộ nhớ riêng biệt
Trang 13Mô 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 14Mô 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 15Mô hình lập trình truyền thông điệp
Trang 16Thư 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 17b Mô hình bộ nhớ chia sẻ
Trang 18Mô 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 19Quản lý bộ nhớ trong mô hình
Trang 20Mô 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 21Mô hình hiện đại có dùng Cache
Trang 224 UMA/SMP, NUMA, Cluster, MPP
4.1 UMA / SMP
4.2 NUMA
4.3 Cluster
4.4 MPP
Trang 234.1 Hệ đa xử lý đối xứng (SMP)
Còn gọi là Uniform Memory Access (UMA)
Thuộc mô hình song song kiểu bộ nhớ dùng chung
(Shared-memory)
Trang 24Hệ đ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 25Hệ đ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 26Ư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ý
Trang 274.2 Hệ truy cập bộ nhớ không đồng
nhất(NUMA)
Trang 28Hệ truy cập bộ nhớ không đồng nhất
Mỗi bộ xử lý có một vùng nhớ gắn liền
Các bộ xử lý có thể truy cập tới vùng nhớ gắn liền với các bộ xử lý khác
Thời gian các bộ xử lý truy cập tới các vùng nhớ là
khác nhau, phụ thuộc vào khoảng cách giữa bộ xử
lý và bộ nhớ gọi là hệ truy cập bộ nhớ không
đồng nhất (NUMA).
Trang 294.3 Hệ thống song song phâm cụm
(cluser)
Giới thiệu về Cluster:
Một hệ thống tính toán song song phân cụm
(Cluster/bó) là một hệ thống máy tính cục bộ bao gồm một tập các máy tính độc lập và một mạng liên kết giữa các máy tính
Trang 30Hệ thống song song phâm cụm
(cluser)
Một hệ thống song song phân cụm/cục bộ với ý nghĩa
là toàn bộ các thành phần hệ thống nằm trong một khu vực địa lý hẹp (thường là 1 phòng) và được quản lý tập trung như là một hệ thống thống nhất
Các nút trong hệ bó có thể là sự kết hợp của các máy tính đơn bộ xử lý với các máy nhiều bộ xử lý
(SMP - symmertric multiprocesor
Trang 31Hệ thống song song phâm cụm
(cluser)
Ưu điểm lớn nhất của hệ thống này là giá thành của hệthống nhỏ hơn so với các hệ thống sever tương ứng
khác Cùng với sự phát triển nhanh chóng của máy
tính cá nhân (PC), hiện nay một hệ thống dựa trên
công nghệ LAN và PC có thể đạt được hiệu năng đến vài chục thậm chí là vài trăm Gigaflops trong khi giá
thành lại rẻ hơn rất nhiều so với các siêu máy tính
Ưu điểm thứ hai của hệ thống bó là sự linh hoạt của
cấu hình Số lượng nút, dung lượng bộ nhớ trên mỗi
nút, số lượng bộ xử lý trên mỗi nút, và cấu hình mạng
Trang 32Hệ thống song song phâm cụm
(cluser)
2 Các thành phần phần cứng:
Các thiết bị phần cứng của nút tính toán:
Một nút tính toán phải cung cấp chức năng tính toán
và
chức năng lưu trữ dữ liệu
Các thiết bị mạng :
Công nghệ mạng thường được sử dụng trong hệ thống //
phân cụm là LAN và SAN (System Area Network)
LAN chỉ cho phép tạo nên một hệ thống có bộ nhớ phân tán
SAN lại hỗ trợ bộ nhớ phân tán chia xẻ (distributed shared
memory) cho phép tổ chức một bộ nhớ logic chia xẻ trong khi
bộ nhớ vật lý phân tán trên các nút
Trang 33Hệ thống song song phâm cụm
(cluser)
3 Các thành phần phần mềm:
Thư viện và môi trường lập trình
Các phần mềm quản lý tài nguyên và phân tải
Trang 34Hệ thống song song phâm cụm
Thư viện và môi trường lập trình:
Lập trình song song trong các hệ thống tính toán bó làphức tạp hơn các hệ thống máy tính khác
Hệ thống tính toán có bộ nhớ phân tán, do vậy truyền thông giữa các nút trong quá trình tính toán thường làtruyền thông điệp
Các thư viện truyền thông điệp dành cho hệ thống bóhiện nay có thể kể đến là: MPI, PVM, Active Message
và CMMD (Connected Machine Message )
MPI với nhiều ưu điểm có thể coi là sự lựa chọn tốt cho
Trang 35Hệ thống song song phâm cụm
(cluser)
Thư viện và môi trường lập trình (…):
Khi các nút mạng trong hệ thống tính toán bó không chỉ
là các máy tính đơn bộ xử lý mà có cả các máy tình
nhiều bộ xử lý với bộ nhớ chia xẻ thì cần có sự kết hợp giữa mô hình bộ nhớ chia xẻ và mô hình truyền thông điệp
Thư viện mã nguồn mở OpenMP là một thư viện thích hợp để tạo ra các chưưong trình song song như vậy
Trang 36Hệ thống song song phâm cụm
(cluser)
Thư viện và môi trường lập trình (…):
Một trong những thành phần quan trọng của các
chương trình tính toán song song là các giải thuật song song
Hiện nay, các thư viện giải thuật song song rất sẵn
dùng và hầu hết là mã nguồn mở
Chúng là kết quả của các đề tài nghiện cứu trong các trường đại học, các viện ngiên cứu trên toàn thế giới
Các thư viện có thể kể đến là: LAPACK, BLAS,
ARPACK, ScaLAPACK, PETSc, hypre, LINPACK…
Trang 37Hệ thống song song phâm cụm
(cluser)
Các phần mềm quản lý tài nguyên và phân tải:
Thư viện và các ngôn ngữ lập trình song song tạo chongười lập trình môi trường lập trình
Phần mềm quản lý tài nguyên và phân tải lại tạo ra một môi trường tính toán hiệu quả và ổn định
Phân tải là việc phân bổ các tiến trình tính toán trên tài
nguyên hệ thống sao cho hiệu năng hoạt động của hệ
thống là tối ưu
Trang 384.4 MPP (Massive parallel processing)
A massively parallel processor (MPP) is a single
computer with many networked processors
MPPs have many of the same characteristics as
clusters, but they are usually larger, typically
having "far more" than 100 processors [26]
In an MPP, "each CPU contains its own memory
and copy of the operating system and application Each subsystem communicates with the others via
a high-speed interconnect." [27]
Trang 39MPP (Massive parallel processing)
A cabinet from Blue Gene/L, ranked as the fastest
rankings Blue Gene/L is a massively parallel
processor
Blue Gene/L, the fastest supercomputer in the world
according to the TOP500 ranking, is an MPP
Trang 405 Myrinet
Myrinet, ANSI/VITA 26-1998, is a high-speed
multiple machines to form computer clusters
Myrinet has much less protocol overhead than standards such as Ethernet , and therefore
provides better throughput , less interference,
and lower latency while using the host CPU
Trang 41 Although it can be used as a traditional networking system,
Myrinet is often used directly by programs that "know" about it,
thereby bypassing a call into the operating system
Myrinet physically consists of two fibre optic cables, upstream
and downstream, connected to the host computers with a single connector
Machines are connected via low-overhead routers and switches ,
as opposed to connecting one machine directly to another
Myrinet includes a number of fault-tolerance features, mostly
backed by the switches These include flow control, error control, and "heartbeat" monitoring on every link The newest, "fourth-
generation" Myrinet, called Myri-10G , supports a 10 Gbit/s data rate and is inter-operable with 10 Gigabit Ethernet on PHY , the
Trang 426.Khả năng song song hóa các bài
toán
Let Pi and Pj be two program fragments.
Bernstein's conditions describe when the two are independent
and can be executed in parallel
Let I i be all of the input variables to Pi and
Oi the output variables
and likewise for Pj.
Pi and Pj are independent if they satisfy
Trang 437 Metacomputing
New emerging field of metacomputing is focused on the
methodological and technological aspects of the development of large computer networks / grids , such as internet , intranet and
other territorially distributed computer networks for special
puroposes
Metacomputing, as a computing of computing, includes:
organization of large computer networks , choice of the design
criteria (for example: peer-to-peer or centralized solution) and
metacomputing software ( middleware , metaprogramming )
development where, in the specific domains, the concept
metacomputing is used as a description of software meta-layers
which are networked platforms for the development of
Trang 44user-8.Cray T3E
massively parallel supercomputer architecture,
A massively parallel computer is a distributed
memory computer system which consists of many
individual nodes, each of which is essentially an
independent computer in itself, and in turn consists of
at least one processor, its own memory, and a link to the network that connects all the nodes together
Trang 45CRAY T3E
Nodes communicate by passing messages, using
standards such as MPI
Nearly all supercomputers as of 2005 are massively
parallel, with the largest having tens of thousands of
CPUs
The cumulative output of the many constituent CPUs can result in large total peak FLOPS (FLoating point
Operations Per Second) numbers
The true amount of computation accomplished
depends in the nature of the computational task and its
Trang 469 Amdahl's law
is named after computer architect Gene Amdahl, and is used to find the maximum expected improvement to an overall system when only part of the system is
improved It is often used in parallel computing to
predict the theoretical maximum speedup using multiple processors
Trang 4710.The transputer (transistor
computer)
The transputer (transistor computer) was the first
general purpose microprocessor designed specifically
to be used in parallel computing systems The goal was
to produce a family of chips ranging in power and cost that could be wired together to form a complete
computer The name was selected to indicate the role the individual transputers would play: numbers of them would be used as basic building blocks, just as
transistors had earlier
Trang 4810.The transputer (transistor
computer)
Originally the plan was to make the transputer cost only
a few dollars per unit INMOS saw them being used for practically everything, from operating as the main CPU for a computer to acting as a channel controller for disk drives in the same machine Spare cycles on any of
these transputers could be used for other tasks, greatly increasing the overall performance of the machines
Trang 4910.The transputer (transistor
computer)
Even a single transputer would have all the circuitry
needed to work by itself, a feature more commonly
associated with microcontrollers The intention was to
allow transputers to be connected together as easily as possible, without the requirement for a complex bus (or motherboard) Power and a simple clock signal had to
be supplied, but little else: RAM, a RAM controller, bus support and even an RTOS were all built in