bai 1 - he thong tinh toan song song

46
Hthng tính toán song song Center of High Performance Computing Hanoi University of Technology {[email protected]} Hà ni, 6/2008 Đại hc Bách khoa Hà Ni

Upload: anh-dung-nguyen

Post on 25-Jul-2015

142 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Bai 1 - He Thong Tinh Toan Song Song

Hệ thống tính toán song song

Center of High Performance Computing Hanoi University of Technology

{[email protected]}

Hà nội, 6/2008 Đại học Bách khoa Hà Nội

Page 2: Bai 1 - He Thong Tinh Toan Song Song

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

Page 3: Bai 1 - He Thong Tinh Toan Song Song

Đặ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

Page 4: Bai 1 - He Thong Tinh Toan 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

Page 5: Bai 1 - He Thong Tinh Toan Song Song

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

Page 6: Bai 1 - He Thong Tinh Toan 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

Page 7: Bai 1 - He Thong Tinh Toan Song Song

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ự

Page 8: Bai 1 - He Thong Tinh Toan Song Song

Phân loại dựa trên website top500

  MPP: Massively Parallel Processing   Cluster   Others: Constellation, GPUs technology, …

Nguồn: http://top500.org

Page 9: Bai 1 - He Thong Tinh Toan Song Song

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,

Page 10: Bai 1 - He Thong Tinh Toan Song Song

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.

Page 11: Bai 1 - He Thong Tinh Toan Song Song

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.

Page 12: Bai 1 - He Thong Tinh Toan Song Song

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

Page 13: Bai 1 - He Thong Tinh Toan Song Song

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.

Page 14: Bai 1 - He Thong Tinh Toan Song Song

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

Page 15: Bai 1 - He Thong Tinh Toan Song Song

Ả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

Page 16: Bai 1 - He Thong Tinh Toan Song Song

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

Page 17: Bai 1 - He Thong Tinh Toan Song Song

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

Page 18: Bai 1 - He Thong Tinh Toan Song Song

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)

Page 19: Bai 1 - He Thong Tinh Toan Song Song

Ư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.

Page 20: Bai 1 - He Thong Tinh Toan Song Song

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

Page 21: Bai 1 - He Thong Tinh Toan Song Song

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

Page 22: Bai 1 - He Thong Tinh Toan Song Song

Đá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

Page 23: Bai 1 - He Thong Tinh Toan Song Song

Đá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

Page 24: Bai 1 - He Thong Tinh Toan Song Song

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

Page 25: Bai 1 - He Thong Tinh Toan Song Song

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

Page 26: Bai 1 - He Thong Tinh Toan Song Song

Đị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ở

Page 27: Bai 1 - He Thong Tinh Toan Song Song

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

Page 28: Bai 1 - He Thong Tinh Toan 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)

Page 29: Bai 1 - He Thong Tinh Toan Song Song

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)

Page 30: Bai 1 - He Thong Tinh Toan Song Song

Chương trình song song

• Chương trình tuần tự

• Chương trình song song

Page 31: Bai 1 - He Thong Tinh Toan 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

Page 32: Bai 1 - He Thong Tinh Toan 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)‏

Page 33: Bai 1 - He Thong Tinh Toan Song Song

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

Page 34: Bai 1 - He Thong Tinh Toan Song Song

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

Page 35: Bai 1 - He Thong Tinh Toan Song Song

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

Page 36: Bai 1 - He Thong Tinh Toan Song Song

Các miền ứng dụng song song Nguồn: http://top500.org

Page 37: Bai 1 - He Thong Tinh Toan Song Song

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

Page 38: Bai 1 - He Thong Tinh Toan Song Song

Phần mềm trên bkluster – Torque Thông tin các nút trong bkluster

Page 39: Bai 1 - He Thong Tinh Toan Song Song

Phần mềm trên bkluster – Torque Thông tin của một job đang chạy

Page 40: Bai 1 - He Thong Tinh Toan Song Song

Phần mềm trên bkluster – SCMSWEB Thông tin các nút trong bkluster

Page 41: Bai 1 - He Thong Tinh Toan Song Song

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

Page 42: Bai 1 - He Thong Tinh Toan Song Song

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

Page 43: Bai 1 - He Thong Tinh Toan Song Song

Cluster-of-clusters

  Cluster gồm 18 CU (Connected Unit):   6480 (+432) AMD dual-core Opterons   12960 IBM Cell eDP accelerators

Page 44: Bai 1 - He Thong Tinh Toan Song Song

Đường truyền

Page 45: Bai 1 - He Thong Tinh Toan Song Song

Cell Processor

Page 46: Bai 1 - He Thong Tinh Toan Song Song

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