bai 1 - he thong tinh toan song song
TRANSCRIPT
Hệ thống tính toán song song
Center of High Performance Computing Hanoi University of Technology
Hà nội, 6/2008 Đại học Bách khoa Hà Nội
Nội dung bài học
Hệ thống tính toán song song
Phân loại các hệ thống tính toán song song
Hệ thống tính toán song song phân cụm
Chương trình song song
Hệ thống tính toán song song bkluster
Hệ thống tính toán song song roadrunner
Đặt vấn đề Những yêu cầu về thực nghiệm nghiên cứu, mô
phỏng => giải quyết những bài toán có khối lượng tính toán rất lớn trong một khoảng thời gian chấp nhận được.
⇒ Nhu cầu về những máy tính mạnh => Những hệ thống tính toán => Những siêu máy tính
⇒ Chia công việc chung thành những phần nhỏ hơn có thể thực hiện đồng thời => ứng dụng song song
Siêu máy tính Siêu máy tính ~ Những máy tính có khả năng tính
toán rất lớn (xét tại một thời điểm nhất định) Phụ thuộc vào :
Sự phát triển của kỹ thuật Sự phát triển của công nghệ
Cray-2 1985-1989
RPeak : 3.9 gigaflops
IBM Blue Gene/L 11/2007
RPeak : 478.2 teraflops
Roadrunner 25/05/2008
RPeak:1.7 petaflops
Nguồn: http://top500.org
Hệ thống tính toán song song Máy tính song song là một tập các tài nguyên tính
toán có khả năng truyền thông và kết hợp với nhau để giải quyết các bài toán lớn trong khoảng thời gian chấp nhận được Tài nguyên tính toán: CPU, RAM, …
Máy tính song song là cách tiếp cận phổ biến nhất để xây dựng các siêu máy tính
Hệ thống tính toán song song chính là một máy tính song song
Phân loại hệ thống tính toán song song
Phân loại theo mô hình Flynn Phân loại theo website top500.org
Phân loại theo mô hình Flynn
SISD: giống như máy tuần tự SIMD: song song hóa về mặt dữ liệu
MISD: Chia sẻ bộ nhớ
MIMD: máy tính song song thực sự
Phân loại dựa trên website top500
MPP: Massively Parallel Processing Cluster Others: Constellation, GPUs technology, …
Nguồn: http://top500.org
Khái niệm hệ thống tính toán phân cụm (Cluster Computing)
Cluster: là một hệ thống tính toán phân tán bao gồm nhiều máy tính được ghép nối với nhau
qua mạng và được sử dụng như một tài nguyên tính toán duy nhất. (G.
F.Pfister. In Search of Cluster (second edition). Prentice Hall NJ.1998)
Máy tính: máy 1 VXL, máy SMP, … Các điều kiện thúc đẩy sự phát triển của cluster: Bộ VXL có hiệu năng ngày càng cao Công nghệ truyền thống ngày càng phát triển: mạng fiber, mạng Gbit,… Các công cụ và giao thức chuẩn cho tính toán phân tán: TCP/IP,
Các thành phần phần cứng của cluster Một cluster bao gồm hai hoặc nhiều nút vật lý liên
kết với nhau qua 1 mạng riêng. Mạng này gọi là mạng liên kết nối (interconnection)
Mạng liên kết nối đảm bảo truyền thông giữa các nút trong cluster.
Mô hình kiến trúc lựa chọn để triển khai phụ thuộc mục đích của cluster và bài toán mà người dùng muốn chạy.
Các thành phần của một nút Bộ vi xử lý trung tâm (CPU)
Thành phần chính của 1 nút Đọc, ghi dữ liệu vào bộ nhớ
Bộ nhớ Dùng cho thực thi chương trình và bộ đệm dữ liệu
Mạng liên kết nối Liên kết, truyền thông giữa các nút
Bộ lưu trữ Thiết bị lưu trữ dữ liệu
Sự bố trí các thành phần quyết định cách thức các nút trong cluster truy cập bộ nhớ và dữ liệu.
Bố trí truy cập bộ nhớ
Các CPU được cấu hình để truy cập vào hệ thống bộ nhớ chia sẻ
Uniform Memory Access(UMA) Các bộ vi xử lý cùng truy cập bộ nhớ vật
lý một cách hợp nhất. Bộ nhớ tập trung, cache phân tán
Non-Uniform Memory Access(NUMA) Các bộ vi xử lý có bộ nhớ riêng, đồng thời
chia sẻ bộ nhớ cho các bộ vi xử lý khác Bộ nhớ phân tán, cache phân tán
Ưu điểm: dễ quản trị
UMA
NUMA
Mạng liên kết nối IPC tốc độ cao IPC (InterProcess Communication): Truyền thông
giữa các tiến trình Mạng IPC tốc độ cao
Kết nối các nút trong cluster Đòi hỏi khả năng truyền thống với băng thông cao, độ trễ
thấp Định tuyến các messages, giao tiếp dữ liệu giữa các nút.
Có thể dùng mạng Ethernet, Myrinet. Đường truyền Fast, Giga, Fiber,…
Bố trí thêm một mạng liên kết nối làm nhiệm vụ backup. Tạo ra mạng liên kết có tính sẵn sàng cao.
Bố trí truy cập dữ liệu
Non Uniform Disk Access Ổ đĩa gắn vào các nút Dữ liệu trên một nút chia sẻ
với các nút khác Truy cập cục bộ và truy cập
từ xa: hiệu suất truy cập khác nhau
Uniform Disk Access Hệ thống ổ đĩa mạng Kết nối tốc độ cao: SCSI,
Fibre Channel, vào/ra song song
Tính sẵn sàng cao Dễ dàng mở rộng
Ảnh hưởng của phần cứng đến hiệu năng hệ thống
Hiệu năng của một hệ thống cluster bị giới hạn bởi một số đặc tính: Băng thông bộ nhớ
Tốc độ truy cập bộ nhớ trong (RAM)
Băng thông truyền thông giữa các CPU Tín hiệu giao tiếp giữa các CPU
Bộ nhớ của toàn hệ thống Bộ đệm dữ liệu
Băng thông vào ra Tốc độ truy cập dữ liệu trên ổ đĩa
Băng thông của mạng liên kết nối Giao tiếp giữa các tiến trình. Tín hiệu điều khiển, quản lý cluster
Kiến trúc hệ thống cluster
Sequential Applications
Parallel Applications
Parallel Programming Environment
Cluster Middleware
(Single System Image and Availability Infrastructure)
Cluster Interconnection Network/Switch
PC/Workstation
Network Interface Hardware
Communications
Software
PC/Workstation
Network Interface Hardware
Communications
Software
PC/Workstation
Network Interface Hardware
Communications
Software
PC/Workstation
Network Interface Hardware
Communications
Software
Sequential Applications Sequential Applications
Parallel Applications Parallel Applications
Phân loại hệ thống cluster - 1 Dựa vào mục tiêu (Thị trường)
High Performance Clusters Beowulf; 1000 nodes; parallel programs; MPI
High Availability (HA) Clusters ServiceGuard, Lifekeeper, Failsafe, heartbeat,
failover clusters Các máy chủ có kết nối “nhịp tim” (Heartbeat)
Load-Leveling Clusters Di trú tiến trình để cân bằng tải (ví dụ: Mosix)
Web-Service Clusters LVS; load-level tcp connections; Web pages and
applications
Database Clusters Oracle Parallel Server; MySQL Cluster
Storage Clusters parallel filesystems; same view of data from
each node
HA Cluster
Phân loại hệ thống cluster - 2 Dựa trên kiến trúc của các nút
Cluster gồm các máy PC: CoPs Cluster gồm các máy trạm (Workstations): COWs Cluster gồm các máy SMPs (CLUMPs)
Dựa trên quy mô cluster Cỡ nhỏ: < 20 nút Trung bình: 20 100 nút Cỡ lớn: > 100 nút Internet-wide Clusters=Global Clusters: (hàng triệu nút)
Ưu điểm hệ thống cluster Đạt được hiệu năng cao Tính sẵn sàng
Hoạt động không ngừng Đảm bảo các dịch vụ luôn được đáp ứng
Giá thành/hiệu năng Cluster gồm các máy tính và mạng chuẩn, dễ kiếm tìm
Tính khả mở Dễ dàng mở rộng và thay thế
Tận dụng tài nguyên rỗi của các máy tính vào việc có ích.
Nhược điểm
Phân tán về mặt tài nguyên (CPU và thiết bị ngoại vị)
Phần mềm dùng cho cluster là ít và thường khó sử dụng
Các thành phần có giá thành thấp có thể gây lỗi
Tiêu chí khi thiết kế hệ thống cluster
Cluster lý tưởng SMP (Symmetric MultiProcessing)
Sắn sàng
Dễ quản lý
Dễ sử dụng
Khả mở
HUGE
Really BIG
log scale
HA Cluster
Nguồn: OpenSSI project
Đánh giá hiệu năng của hệ thống tính toán hiệu năng cao
FLOP/s: Floating Point Operation per Second MFLOP/s, GFLOP/s, TFLOP/s, PFLOP/s Phần mềm đo hiệu năng: HPL
Được sử dụng để đo các máy trong top500
Các chỉ số: RPEAK: Hiệu năng cao nhất về mặt lý thuyết, xác định bởi
số các phép toán cộng và nhân dấu phẩy động trong một đơn vị thời gian, thường lấy là một chu kỳ máy
Bộ VXL Intel Itanium 2, tốc độ 1,5 GHz, có thể hoàn thành 4 phép toán trong 1 chu kỳ máy, có hiệu năng là 1,5 x 4 = 6 GFLOP/s
Intel P4, hoàn thành 2 phép toán trong 1 chu kỳ máy AMD hoàn thành 3 phép toán trong 1 chu kỳ máy
RMAX: Hiệu năng cao nhất đo được bằng chương trình HPL
Đánh giá hiệu năng qua phần mềm NPB
• EP : Bài toán ít truyền thông
• MG: Nhiều thao tác truy cập bộ nhớ trong, phép toán số thực.
• CG: Truyền thông + bộ nhớ trong + số thực.
• IS: Truyền thông + bộ nhớ trong + số nguyên
• LU: Bộ nhớ cache + truyền thông
• BT: Truyền thông + bộ nhớ cache
• SP: Truy cập bộ nhớ trong
Beowulf Cluster
Là một hệ thống cluster trong đó có một nút trung tâm làm nhiệm vụ kết hợp các nút trong cluster
Lịch sử của Beowulf Cluster Ra đời năm 1994: do Thomas Sterling và Donald
Becker thiết kế
Cấu hình ban đầu: 16 bộ vi xử lý DX4 Card mạng Ethernet 10 Mbps
Ban đầu được phát triển tại The Centre of Excellence in Space Data and Information Sciences (CESDIS) thuộc NASA, nay được sử dụng như một chuẩn khi xây dựng các cluster
Định nghĩa “gốc” về Beowulf Cluster
Beowulf là một cluster với những yêu cầu sau: (phân biệt Beowulf với các loại cluster khác)
Các nút tính toán trong cluster chỉ phục vụ cho mục đích của cluster, không làm một chức năng nào khác.
Mạng liên kết các nút tính toán chỉ phục vụ cho cluster, không làm thêm một chức năng nào khác.
Các nút tính toán có chi phí rẻ, phổ biến trên thị trường, dễ nâng cấp hoặc thay thế (M2COTS)
Hệ thống mạng liên kết phổ biến, tương thích với nhiều kiến trúc máy tính
Mọi phần mềm cài đặt trên các nút đều là phần mềm nguồn mở
Một số đặc điểm của Beowulf Cluster
Tất cả các nút sử dụng hệ điều hành Linux Đặc điểm này có tính lịch sử lâu đời, vì hệ Beowulf đầu tiên
xây dựng dựa trên Linux/Gnu.
Nhìn chung các nút là giống nhau CPU, motherboard, network, memory, disk(s)
Tại một thời điểm tất cả các nút chỉ phục vụ chạy một bài toán Đảm bảo tận dụng tối đa tài nguyên để đạt hiệu năng lớn
nhất
Lập trình trên Beowulf thường sử dụng ngôn ngữ C hoặc Fortran, dùng mô hình truyền thông điệp trong các tính toán song song
Một số đặc điểm của Beowulf Cluster
Trong hệ thống có một máy được gọi là máy chủ (headnode, f ront-end node, master node)
Máy chủ còn hay được dùng để chia sẻ bộ nhớ ngoài với các nút tính toán
Mọi tương tác với toàn bộ hệ thống và tương tác với bên ngoài đều được thực hiện thông qua máy chủ
Các máy còn lại trong cluster được gọi là các nút tính toán (Compute node)
Quy trình xây dựng Cluster theo mô hình hệ Beowulf
Sử dụng các máy tính có cấu trúc giống nhau Cluster sẽ chạy các bài toán lập trình theo mô hình
truyền thông điệp
1. Ghép nối máy tính vào mạng 1. Ghép nối phần cứng 2. Cấu hình mạng
2. Cấu hình hệ thống như một tài nguyên tính toán duy nhất 1. Dữ liệu duy nhất: NFS 2. Thông tin người dùng duy nhất: NIS
3. Cài đặt môi trường tính toán song song. 1. Môi trường truyền thông điệp: lammpi, openmpi, mpich,..
4. Batch Queue Systems (optional)
Chương trình song song
• Chương trình tuần tự
• Chương trình song song
Các bước tổng quát phát triển ứng dụng song song
Song song hóa bài toán tuần tự
Cài đặt bài toán song song
Các máy tính song song
Các thư viện hỗ trợ lập trình song song
Các phân tích & giải thuật song song
Biên dịch và chạy bài toán song song
Phân loại chương trình song song Phân loại dựa trên khả
năng truy cập bộ nhớ trong của các tiến trình song song
2 loại chính : Chương
trình song song theo mô hình truyền thông điệp (Message Passing)
Chương trình song song theo mô hình bộ nhớ chia sẻ (Shared Memory)
Chương trình song song theo mô hình truyền thông điệp
Mỗi tiến trình có một vùng nhớ riêng Việc trao đổi dữ
liệu, kết quả thực hiện dưới dạng các thông điệp (Message)
proc1 proc2 proc3 procN
mem1 mem2 mem3 memN
network
dữ liệu
Nhiệm vụ 0
dữ liệu
Nhiệm vụ 1
Truyền (dữ liệu)
Nhận (dữ liệu)
Máy A Máy B
Mạng
Chương trình song song theo mô hình bộ nhớ chia sẻ
Tồn tại một vùng không gian nhớ chung, các tiến trình có thể truy cập vào vùng nhớ này
proc1 proc2 proc3 procN
Shared memory space a
Thư viện lập trình song song Mô hình truyền thông điệp:
PVM MPI : LAM/MPI, MPICH, OpenMPI, … BSP : JBSP, …
Mô hình bộ nhớ chia sẻ: OpenMP
Các miền ứng dụng song song Nguồn: http://top500.org
Giới thiệu hệ thống tính toán song song BKluster
Số lượng các nút: Frontends - 1 (public network) Compute nodes - 4 (private network),
bao gồm cả Frontend CPU/Memory:
Frontends - Intel(R) Pentium(R) D CPU 3.00GHz - DualCore / 1 GB RAM
Compute nodes pnode1 - Intel(R) Xeon(R) CPU
3070 @ 2.66GHz / 4 GB RAM pnode2 - Intel(R) Xeon(R) CPU
3040 @ 1.86GHz / 2 GB RAM pnode3 - Intel(R) Xeon(R) CPU
3040 @ 1.86GHz / 2 GB RAM HDD:
Frontends - 225 GB (export /home) Compute nodes - 80 GB (not shared)
Bkluster xây dựng dựa trên Beowulf cluster Bkluster là một cluster hiệu năng cao, thuộc trung tâm HPC - ĐHBKHN
RPEAK: 37,52 GFLOP/s bkluster.hut.edu.vn
Phần mềm trên bkluster – Torque Thông tin các nút trong bkluster
Phần mềm trên bkluster – Torque Thông tin của một job đang chạy
Phần mềm trên bkluster – SCMSWEB Thông tin các nút trong bkluster
Phần mềm trên bkluster - Các thư viện
Thư viện lập trình MPI, hỗ trợ lammpi-7.1.4, openmpi-1.2.3, mpich2 Trong thư mục: /opt/cluster/lammpi; /opt/cluster/openmpi
Thư viện CBLAS (Basic Linear Algebra Subprogram) Thư viện lập trình C hỗ trợ giải hệ thống các phương trình
tuyến tính, ví dụ như Vector, nhân ma trận. Có 3 mức
Mức 1: bao gồm các phép toán vector và vô hướng dạng
Mức 2: bao gồm các phép toán giữa vector và ma trận, có dạng
Mức 3: bao gồm các phép toán giữa ma trận với ma trận, có dạng:
Cài đặt tại: /opt/lib/atlas
Siêu máy tính Roadrunner
Thiết kế bởi IBM và phòng thí nghiệm quốc gia Los Alamos, New Mexico, Mỹ
Xây dựng cho Cơ quan An ninh hạt nhân quốc gia, thuộc Bộ năng lượng Mỹ(DOE)
Thiết kế lai: 12.960 bộ VXL IBM PowerXCell 8i 6.480 bộ VXL 2 nhân AMD Opteron
Bộ nhớ: 103.6 TebiBytes Hệ điều hành: Red Hat Enterprise Linux MPI: OpenMPI Gồm 296 tủ rack, trên diện tích 560 m2
Máy tính mạnh nhất thế giới tính đến 28.05.2008
Hiệu năng: RPEAK:1.7 petaflops RMAX: 1.0 petaflops
Nguồn: http://www.lanl.gov/roadrunner
Cluster-of-clusters
Cluster gồm 18 CU (Connected Unit): 6480 (+432) AMD dual-core Opterons 12960 IBM Cell eDP accelerators
Đường truyền
Cell Processor
Một số địa chỉ website Diễn đàn tính toán hiệu năng cao:
http://hpcc.hut.edu.vn/forum
Trang thông tin hệ thống hiệu năng cao http://www.hpcwire.com/
Thông tin 500 siêu máy tính trên thế giới http://top500.org
Hệ thống tính toán song song phân cụm bkluster http://bkluster.hut.edu.vn