Tải bản đầy đủ (.pdf) (114 trang)

HỆ THỐNG TÍNH TOÁN HIỆU NĂNG CAO và ỨNG DỤNG TRONG PHÂN TÍCH và xử lý dữ LIỆU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.33 MB, 114 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
LÊ THUẬN HUỲNH

VIỆN ĐẠI HỌC MỞ HÀ NỘI

KỸ THUẬT VIỄN THÔNG

LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH: KỸ THUẬT VIỄN THÔNG

HỆ THỐNG TÍNH TOÁN HIỆU NĂNG CAO VÀ
ỨNG DỤNG TRONG PHÂN TÍCH VÀ XỬ LÝ DỮ LIỆU

LÊ THUẬN HUỲNH

2015 - 2017

HÀ NỘI - 2017


BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI

LUẬN VĂN THẠC SỸ

HỆ THỐNG TÍNH TOÁN HIỆU NĂNG CAO VÀ
ỨNG DỤNG TRONG PHÂN TÍCH VÀ XỬ LÝ DỮ LIỆU
LÊ THUẬN HUỲNH

CHUYÊN NGÀNH: KỸ THUẬT VIỄN THÔNG
MÃ SỐ: 8520208



HƯỚNG DẪN KHOA HỌC : TS.NGUYỄN HOÀI GIANG

HÀ NỘI - 2017


LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của bản thân, được xuất phát
từ yêu cầu phát sinh trong quá trình làm luận văn. Các tài liệu có nguồn gốc rõ ràng,
tuân thủ đúng nguyên tắc, kết quả trình bày trong luận văn là kết quả quá trình
nghiên cứu trung thực, chưa từng được ai công bố trước đây.
Hà Nội, tháng 12 năm 2017
Tác giả luận văn

Lê Thuận Huỳnh


LỜI CẢM ƠN
Trong quá trình thực hiện luận văn, tôi xin chân thành cảm ơn sự giúp đỡ của
các thầy, cô trong Khoa Sau đại học - Viện Đại học mở Hà Nội, đặc biệt là sự
hướng dẫn tận tình của thầy giáo TS. Nguyễn Hoài Giang để tôi có thể hoàn thành
được đề tài này.
Tôi cũng xin cảm ơn các anh chị em học viên lớp 15M-VT2, khóa 20152017, Khoa sau đại học, Viện Đại học mở đã ủng hộ và giúp đỡ tôi trong quá trình
học tập cũng như thực hiện luận văn này.
Cuối cùng tôi xin gửi lời cảm ơn đến các thầy cô, các tác giả của các tài liệu
tham khảo mà tôi đã sử dụng trong quá trình thực hiện đề tài.
Xin chân thành cảm ơn!


MỤC LỤC

DANH MỤC CÁC CHỮ VIẾT TẮT .................................................................... 7
DANH MỤC CÁC BẢNG BIỂU .......................................................................... 9
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ.............................................................. 10
MỞ ĐẦU ................................................................................................................ 1
CHƯƠNG 1: TỔNG QUAN VỀ ĐIỆN TOÁN HIỆU NĂNG CAO ................... 3
1.1. Lịch sử phát triển và các thành tựu.................................................................... 3
1.1.1. Các siêu máy tính đầu tiên (1940 - 1960) ....................................................... 3
1.1.2. Các thế hệ HPC Cray từ 1975 đến 1990 ......................................................... 3
1.1.3. Các hệ thống HPC kiến trúc cụm từ 1990 đến 2010 ....................................... 4
1.1.4. Các hệ thống HPC kiến trúc tích hợp GPGPU và các lai ghép từ 2010 đến nay
................................................................................................................................ 5
1.2. Ưu nhược điểm của hệ thống tính toán hiệu năng cao ....................................... 6
1.2.1. Định nghĩa tính toán hiệu năng cao ................................................................ 6
1.2.2. Ưu nhược điểm của hệ thống tính toán hiệu năng cao .................................... 7
1.3. Các ứng dụng của HPC ..................................................................................... 8
1.3.1. Các lĩnh vực ứng dụng ................................................................................... 8
1.3.2. Nhu cầu ứng dụng HPC ................................................................................. 9
1.4. Kiến trúc tính toán song song............................................................................ 9
1.4.1. Đặc tính song song của HPC .......................................................................... 9
1.4.2. Khái niệm tính toán song song ..................................................................... 10
1.4.3. Công thức mức tăng tốc của thực hiện song song ......................................... 13
1.4.4. Phân tích hiệu năng của thực hiện song song ............................................... 14


CHƯƠNG 2: KIẾN TRÚC CỦA HỆ THỐNG MÁY TÍNH HIỆU NĂNG CAO
VÀ NGUYÊN LÝ ................................................................................................ 33
2.1. Kiến trúc hệ thống tính toán hiệu năng cao ..................................................... 33
2.1.1. Phân loại kiến trúc máy tính theo Flynn ....................................................... 33
2.1.2. Phân loại cấu trúc máy tính .......................................................................... 37
2.1.3. Phân loại cấu hình kết nối của mạng kết nối N ............................................. 39

2.1.4. Kiến trúc của các hệ thống HPC .................................................................. 41
2.1.5. Các cấu hình mạng cluster của các hệ thống HPC ........................................ 43
2.2. Nguyên lý hoạt động của HPC ........................................................................ 48
2.2.1. HPC là giải pháp cho nhu cầu tính toán ....................................................... 48
2.2.2. Nguyên lý hoạt động của HPC ..................................................................... 50
2.3. Mô hình triển khai HPC .................................................................................. 50
2.3.1. Các nguyên tắc để xây dựng HPC ................................................................ 50
2.3.2. Mô hình triển khai HPC ............................................................................... 52
2.4. Các bước xây dựng hệ thống HPC .................................................................. 52
2.4.1. Bước 1: Xác định cấu hình thiết kế HPC ...................................................... 52
2.4.2. Bước 2: Lựa chọn công nghệ thiết bị và các tài nguyên cần thiết ................. 52
2.4.3. Bước 3: Tính toán hiệu năng lý thuyết của HPC .......................................... 53
2.4.4. Bước 4: Xây dựng các nút máy tính của HPC .............................................. 53
2.4.5. Bước 5: Cài đặt mạng các nút trong từng tủ của HPC .................................. 54
2.4.6. Bước 6: Cài đặt mạng HPC .......................................................................... 54
2.4.7. Bước 7: Cấu hình toàn bộ HPC .................................................................... 54
2.4.8. Bước 8: Chạy đo kiểm tốc độ của HPC ........................................................ 54


2.5. Các mô hình kết nối cụm HPC thông dụng ..................................................... 55
2.5.1. Các cấu hình fat tree cluster của HPC .......................................................... 55
2.5.2. Một số ví dụ cấu hình fat tree cluster của HPC............................................. 57
2.5.3. Tốc độ tính toán của kiến trúc cụm HPC ...................................................... 62
CHƯƠNG 3: ỨNG DỤNG HỆ THỐNG TÍNH TOÁN HIỆU NĂNG CAO
TRONG PHÂN TÍCH XỬ LÝ DỮ LIỆU........................................................... 65
3.1. Bài toán dữ liệu lớn (big data)......................................................................... 65
3.1.1. Khái niệm dữ liệu lớn .................................................................................. 65
3.1.2. Định nghĩa dữ liệu lớn ................................................................................. 66
3.1.3. Đặc trưng của dữ liệu lớn............................................................................. 67
3.1.4. Sự ưu việt của giải pháp dữ liệu lớn ............................................................. 68

3.1.5. Bài toán dữ liệu lớn...................................................................................... 69
3.1.6. So sánh bài toán xử lý dữ liệu lớn với bài toán xử lý dữ liệu truyền thống ... 71
3.2. Ứng dụng của hệ thống HPC trong phân tích và xử lý dữ liệu ......................... 74
3.2.1. Đặc điểm của HPC đảm bảo cho thực hiện bài toán dữ liệu lớn ................... 74
3.2.2. Ứng dụng của HPC bài toán phân tích dữ liệu lớn........................................ 75
3.2.3. Kiến trúc ứng dụng hệ thống HPC trong bài toán Big data ........................... 77
3.3. Thiết kế phần cứng và mạng làm việc ............................................................. 81
3.3.1. Server tích hợp Intel CPU chip và xử lý tăng tốc Nvidia GPGPU ................ 82
3.3.2. Card Nvidia GPGPU.................................................................................... 83
3.3.3. Nút máy tính tích hợp CPU+GPGPU trong kiến trúc cụm của HPC ............. 84
3.3.4. Kết nối cụm HPC bằng thiết bị chuyển mạch ............................................... 86
3.3.5. Tính toán hiệu năng của nút máy tính CPU+GPGPU ................................... 86


3.4. Phần mềm và hệ thống quản trị ....................................................................... 87
3.4.1. CUDA của Nvidia........................................................................................ 88
3.4.2. Hadoop ........................................................................................................ 88
KẾT LUẬN VÀ ĐỊNH HƯỚNG NGHIÊN CỨU .............................................. 98
TÀI LIỆU THAM KHẢO ................................................................................... 99


DANH MỤC CÁC CHỮ VIẾT TẮT
Chữ viết tắt/ ký hiệu

Cụm từ đầy đủ

APT

Advanced Persistent Threat


CPU

Central Processing Unit

BCE

Base Core Equivalents

IOP

Input-Output Processor

SISD

Single Instruction stream Single Data stream

MIPS

Million of instructions per second

SIMD

Single instruction stream multiple data stream

MISD

multiple instruction, single data

MIMD


Multiple Instruction, Multiple Data

SMC

Symmetric Multi-core Chip

DMC

Dynamic Multi-core Chip

IoT

Internet of Things

AMC

Asymmetric Multi-core Chip

FLOPS

floating point operations per second

HPC

High Performance Computing

GPGPU

General-purpose computing on graphics processing units


SMP

Symmetric MultiProcessors)

IB

Infiniband

FPGA

Field-programmable gate array

MPP

Massively Parallel Processing


UPS

Uninterruptible Power Supply

SDR

Single Data Rate

DDR

Double Data Rate

QDR


Quad Data Rate

FDR10

Fourteen Data Rate, 10Gbit/s per lane

FDR

Fourteen Data Rate

EDR

Enhanced Data Rate

HDR

High Data Rate

NDR

Next Data Rate

XDR

Extended Data Rate


DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1: Top 10 siêu máy tính tính đến 10/2017 .................................................... 5

Bảng 2.1: Các đặc tính của Infiniband ................................................................... 46
Bảng 2.2: Ảnh hưởng của công nghệ mạng và kích thước cluster .......................... 63
Bảng 3.1: Các module GPU "Tesla" lớp M của Nvidia .......................................... 83


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1: Mảng tuyến tính hai chiều gồm n bộ xử lý ............................................. 11
Hình 1.2: Đồ thị với Overhead của xử lý song song được đưa vào. ........................ 15
Hình 1.3: Diễn giải thời gian thực hiện chương trình song song............................. 15
Hình 1.4: Luật Amdahl .......................................................................................... 17
Hình 1.5: Sự tăng tốc của một chương trình gồm 2 phần ....................................... 19
Hình 1.6: Chip đa lõi đối xứng gồm n =16 lõi BCE ............................................... 21
Hình 1.7: Chip đa lõi đối xứng gồm n/r = 4/4 lõi (4 lõi, mỗi lõi có 4 BCE) ........... 21
Hình 1.8: Chip đa lõi bất đối xứng gồm một lõi 4-BCE và n-4 lõi 1-BCE. ............. 22
Hình 1.9: Chip đa lõi đa lõi linh hoạt gồm 16 lõi 1-BCE ....................................... 23
Hình 1.10: Hàm định cỡ ........................................................................................ 31
Hình 2.1: Trao đổi chuỗi lệnh, dữ liệu trong một máy tính đơn giản ...................... 33
Hình 2.2: Một chuỗi lệnh một chuỗi dữ liệu SISD ................................................. 34
Hình 2.3: Một chuỗi lệnh nhiều chuỗi dữ liệu SIMD ............................................. 35
Hình 2.4: Nhiều chuỗi lệnh một chuỗi dữ liệu MISD ............................................. 36
Hình 2.5: Nhiều chuỗi lệnh nhiều chuỗi dữ liệu MIMD ......................................... 36
Hình 2.6: Hệ thống máy tính với n≥1 đơn vị xử lý và m≥0 đơn vị nhớ .................. 38
Hình 2.7: Máy tính có bộ nhớ chia sẻ .................................................................... 38
Hình 2.8: Máy tính có bộ nhớ phân tán .................................................................. 39
Hình 2.9: Băng thông độ rộng chia đôi của mạng .................................................. 41
Hình 2.10: Cây béo có nhiều nút cha ..................................................................... 44
Hình 2.11: Cây béo phân tứ ................................................................................... 44
Hình 2.12: Các đấu nối quá mức băng thông với switch 24-port ............................ 45
Hình 2.13: Cluster gồm 128 nút đấu theo quá mức băng thông trên GigE .............. 45
Hình 2.14: Cluster 64 nút đấu nối quá mức băng thông ......................................... 47

Hình 2.15: Cluster 128 nút đấu nối quá mức băng thông........................................ 47
Hình 2.16: Cluster cây béo 324 nút sử dụng các switch 36-port ............................. 55
Hình 2.17: Cluster 72 nút (non-blocking topology) ................................................ 57


Hình 2.18: Mạng vòng và vòng lặp hoàn trả có khóa chết...................................... 58
Hình 2.19: Cluster cây béo 72 nút.......................................................................... 58
Hình 2.20: Cluster cây béo 324 nút ........................................................................ 59
Hình 2.21: Cluster cây béo 648 nút ........................................................................ 59
Hình 2.22: Cluster cây béo 1296 nút ...................................................................... 60
Hình 2.23: Cluster cây béo 1944 nút ...................................................................... 61
Hình 2.24: Cluster cây béo 3888 nút ...................................................................... 62
Hình 3.1: Xử lý hàng loạt ...................................................................................... 75
Hình 3.2: Các công nghệ xử lý hàng loạt ............................................................... 76
Hình 3.3: Xử lý dòng ............................................................................................. 76
Hình 3.4: Các công nghệ xử lý dòng ...................................................................... 77
Hình 3.5: Kiến trúc HPC truyền thống cho các ứng dụng khoa học ....................... 77
Hình 3.6: Kiến trúc hệ thống HPC trong bài toán Big data..................................... 78
Hình 3.7: Phiến superServer 1U dùng cho HPC ..................................................... 82
Hình 3.9: Liên kết truyền thông CPU và GPGPU và giữa các GPGPU. ................. 85
Hình 3.10: Đấu nối các nút CPU+GPGPU trong cluster ........................................ 85
Hình 3.11: Đấu nối hai phiến (blade) nút máy tính CPU+GPU .............................. 85
Hình 3.12: Secondary NameNode cho phục hồi NameNode [19]. .......................... 92
Hình 3.13: Đếm tần xuất từ trong một văn bản ...................................................... 93
Hình 3.14: ResourceManager của YARN [19]....................................................... 94


MỞ ĐẦU
1. Đặt vấn đề
Trong vài năm trở lại đây, tính toán hiệu năng cao (High Performance

Computing - HPC) nổi lên như một lĩnh vực nghiên cứu, thu hút sự quan tâm của
các viện nghiên cứu cũng như các doanh nghiệp lớn.Việc nghiên cứu về tính hiệu
năng cao để ứng dụng trong các ngành khoa học - kỹ thuật đã và đang góp phần
thay đổi cơ bản tiến trình khoa học, giúp xử lý một khối lượng lớn dữ liệu đầu vào
khổng lồ hoặc các bài toán yêu cầu tính toán thời gian thực đã thực sự trở thành một
vấn đề cấp thiết trong thực tế hiện nay.
Cùng sự bùng nổ và phát triển mạnh mẽ của Internet trên toàn thế giới thực
sự đã tác động và có sức ảnh hưởng lớn tới mọi lĩnh vực của cuộc sống. Hàng tỷ
người có thể được kết nối thông tin qua những thiết bị di động có khả năng xử lý,
dung lượng lưu trữ chưa từng có trước đây và khả năng tiếp cận tri thức là không có
giới hạn.Hiện nay dữ liệu sinh ra từ những hoạt động khoa học, y học, đặc biệt là
mạng xã hội, IoT là cực kỳ lớn, khoảng 4 zetabytes, đến năm 2020 có thể lên tới 44
zetabytes, do đó đặt ra yêu cầu về bài toán xử lý dữ liệu lớn mà các hệ thống xử lý
truyền thống không thể đáp ứng được, cần có hệ thống tính toán hiệu năng cao.
Hệ thống tính toán hiệu năng cao thực hiện các tính toán song song trên
nhiều phần tử tính toán cho phép giải quyết các bài toán tính toán phức tạp yêu cầu
tốc độ cao. Hiện nay, HPC có ứng dụng trong nhiều lĩnh vực: Sinh học, Dữ liệu địa
lý, Mô hình hóa trong công nghiệp dầu khí, Tự động hóa thiết kế và chế tạo điện tử,
Mô hình hóa khí hậu, Đa phương tiện và giải trí, Nghiên cứu hàng không vũ trụ,
nghiên cứu hạt nhân nguyên tử, Xử lý dữ liệu tình báo, tội phạm, thám mã trong an
ninh quốc phòng: bẻ khóa mật mã...

2. Nội dung của đề tài, các vấn đề cần giải quyết


Căn cứ vào nhận xét trên, luận văn đề ra mục tiêu tổng quát là: nghiên cứu
kiến trúc, nguyên lý hoạt động và các ứng dụng của hệ thống HPC trong phân tích
và xử lý dữ liệu lớn, nhằm mục tiêu hướng tới làm chủ việc xây dựng, khai thác hệ
thống HPC.
Để đạt mục tiêu trên, các vấn đề chính sau đây đã được giải quyết:

- Tìm hiểuvề hệ thống HPC với các khái niệm, đặc điểm kiến trúc hệ thống,
ứng dụng.
- Tìm hiểu về dữ liệu lớn, đặc điểm, vai trò và lợi ích của dữ liệu lớn. Làm rõ
sự cần thiết và khả năng ứng dụng hệ thống HPC giải quyết bài toán dữ liệu lớn.
- Xây dựng các phương pháp thiết kế hệ thống HPC sử dụng công nghệ tích
hợp Intel CPU + Nvidia GPGPU.
- Thiết lập mạng kết nối các nút tính toán của HPC dùng công nghệ
mạngInfiniband. Tính toán hiệu năng của hệ thống HPC.
- Nghiên cứu ứng dụng phần mềm mã nguồn mở Hadoop xử lý dữ liệu lớn
trên hệ thống HPC.

2


CHƯƠNG 1: TỔNG QUAN VỀ ĐIỆN TOÁN HIỆU
NĂNG CAO
1.1. Lịch sử phát triển và các thành tựu
Cùng với sự phát triển của công nghệ máy tính, đặc biệt là công nghệ chip
từđơn nhân xử lý đến nhiều nhân xử lý và công nghệ truyền dẫn tốc độ cao, các kiến
trúc của các hệ thống tính toán hiệu năng cao HPC (High Performance Computing)
đã vàđang thay đổi. Có thể có giai đoạn phát triển các hệ thống HPC sau đây:
1.1.1. Các siêu máy tính đầu tiên (1940 - 1960)
Bombe và Colossus (UK) (1943-1945) - các máy tính thám mã, công nghệ
cơđiện tử, ứng dụng để bẻ khóa mật mã của máy Enigma (Đức quốc xã, thế chiến
thứ II).
ENIAC (Electronic Numerical Integrator and Computer) (USA, 1943) - máy
tính đa năng, công nghệđèn điện tử chân không, được thiết kế dựa trên các bảng
tính bằng tay của pháo binh.
CDC 6600 (Control Data Corporation) (USA, 1964) - dòng mainframe đa
năng, công nghệđèn điện tử chân không, tốc độ thực hiện từ 500 kiloflop/s đến 1

megaflop/s - được gọi là siêu máy tính đầu tiên.
ILLIAC-IV (Illinois Automatic Computer) (USA, 1966-1976, công nghệ bán
dẫn, tốc độ gần 1 gigaflop/s .
1.1.2. Các thế hệ HPC Cray từ1975 đến 1990
Cray 1: scalar và vector processor công nghệ bán dẫn vi mạch, 80 MHz
clock, 133 MFLOP/s cho sử dụng bình thường.
Cray X-MP (USA, 1982): 105 MHz, hai vector processors công nghệ bán
dẫn vi mạch, mỗi processorcó tốc độ 200 MFLOPS, bộ nhớchia sẻ chung cho tất cả
processors.

3


Cray Y-MP (USA, 1988): 167 MHz, 2, 4 và 8 vector processors, công nghệ
vi mạch, mỗi processor tốc độ 333 MFLOPS, bộ nhớ chia sẻ cho tất cả processors.
Trong những năm 1980 tốc độ của siêu máy tính đãđạt được các thiết kế chip
vector processors, với kiến trúc tích hợp 2, 4, và 8 processors và bộ nhớ bán dẫn
chia sẻ chung cho tất cả processors.
1.1.3. Các hệ thống HPC kiến trúc cụm từ1990 đến 2010
Đây là giai đoạn phát triển các hệ thống HPC kiến trúc song song với các
vector processors tốc độ nhanh, nhưng còn hạn chế bởi truy nhập vào bộ nhớ chia sẻ
chung. Vì thế trong những năm 1980 các nghiên cứu thiết kế các HPC với các bộ
nhớ phân tán, nghĩa là mỗi processor có bộ nhớ riêng. Do đó, số lượng processor có
tăng lên nhiều, đến 64 và 128 processors. Các cấu hình nối mạng các processor đãđa
dạng.
Intel iPSC Hypercube, 1985, gồm: 32 đến 128 nút xử lý. Mỗi nút xử lý là:
80286 processor, 80287 math co-processor, 512K RAM, 8 cổng Ethernet (7 cổng để
nối với các máy tính khác, 1 cổng cho nút điều khiển). Sử dụng sơ đồ mạng kết nối
cấu hình hypercube giữa các processors. Mô hình cơ bản là hypercube 5-chiều (25 =
32 processors).

The CM-1:là máy tính song song lớn (massivelyparallel computer)với65.536
phần tử xử lýSIMD kết nối trong mạng cấu hình hypercube. Mỗi phần tử gồm: 1-bit
processor và 4Kbits RAM (CM-2 có 64Kbits RAM).
CM-5: Máy tính MIMD (LosAlamos National Lab) với cấu hình mạng, đã
từng là siêu máy tính đứng đầu trong danh sách 500 năm 1993. Nó có1024
processors và có thểđạt tốc độ59,7 GFLOPS.
Beowulf Clusters, trong năm 1994 Donald Becker and TomStirling ởNASA,
xây dựng cụm (cluster) sử dụng các PC có sẵn và nối chúng trong mạng. Có 16 Intel
486DX PCs được kết nối với 10 Mb/s Ethernet cho tốc độ 1 GFLOPS với hệ thống
trị giá$50,000.

4


1.1.4. Các hệ thống HPC kiến trúc tích hợp GPGPU và các lai ghép từ2010 đến
nay
Trong những năm 2000 xu hướng tăng tốc độ của các processors đã thay thế
cho thiết kế các hệ thống nhiều nhân xử lý. Nó dẫn đến kiến trúc các cụm lai ghép
(hybrid clusters) với nhiều processors, mỗi processor là chip vi xử lý có một số
nhân với tổ chức cache riêng và RAM chia sẻ chung. Công nghệ xử lý đồ họa được
ứng dụng làm các đơn vị đồng xử lý tăng tốc GPGPU, đặc biệt phổ biến là công
nghệ của NVIDIA. Các nút máy tính gồm có bộ xử lý trung tâm là chip đa nhân và
bộ đồng xử lý GPGPU của NVIDIA liên kết theo các cấu hình mạng truyền dẫn
quang công nghệ Ethernet hay Infiniband tốc độ cao theo các cụm là giải pháp kiến
trúc phổ biến của các siêu máy tính hiện nay. Các nút máy tính có thể là PC
desktop, nhưng thông thường là các phiến (blade) cài đặt theo các tủ (rack). Hàng
năm, trang web www.top500.org/top500 đưa ra danh sách 500 siêu máy tính hàng
đầu thế giới, trong đó, có thể nhận thấy nhiều hệ thống sử dụng kiến trúc tích hợp
GPGPU và lai ghép.
Sự phát triển của dòng công nghệ chip Intel Xeon® PhiTM processors (64-,

68-, và 72-cores) cho phép tạo ra các siêu máy tính có thể cạnh tranh với các kiến
trúc lai GPGPU bởi chúng có thể dễ dàng đồng bộ và làm các bộ đồng xử lý tăng
tốc cho các bộ xử lý trung tâm Intel Xeon E5. Bảng 1.1 liệt kê 10 siêu máy tính
mạnh nhất tính đến tháng 10/2017.
Bảng 1.1: Top 10 siêu máy tính tính đến 10/2017
Rmax
Rank Rpeak

(PFLOPS)

1

2

Name

Model

Processor

93.015 Sunway
125.436 TaihuLight

Sunway MPP SW26010

33.863
Tianhe-2
54.902

Xeon

E5–2692,
TH-IVB-FEP
Xeon phi
31S1P

Interconnect

Sunway

TH Express-2

5

Vendor

Site
country, year

Operating
system

NRCPC

National
Supercomputing
Center in Wuxi
China, 2016

Linux
(Raise)


NUDT

National
Supercomputing
Center in
Guangzhou
China, 2013

Linux
(Kylin)


19.590
Piz Daint
25.326

Cray XC50

Xeon
E5-2690v3,
Tesla P100

4

19.136
Gyoukou
28.192

ZettaScaler2.2 HPC

system

Xeon
D-1571,
PEZY-SC2

Infiniband
EDR

5

17.590
Titan
27.113

Cray XK7

Opteron
6274,
Tesla K20X

Gemini

6

17.173
Sequoia
20.133

Blue Gene/Q


A2

7

14.137
Trinity
43.902

Cray XC40

Xeon
E5–2698v3,
Xeon Phi

8

14.015
Cori
27.881

Cray XC40

Xeon
Phi 7250

3

9


10

13.555 Oakforest24.914 PACS

Fujitsu

10.510
K computer Fujitsu
11.280

Xeon
Phi 7250

SPARC64
VIIIfx

Aries

Cray

Swiss National
Supercomputing
Centre
Switzerland, 2016

Japan Agency for
Marine-Earth
ExaScaler Science and
Technology
Japan, 2017


Linux
(CLE)

Linux
(CentOS)

Cray

Oak Ridge National Linux
Laboratory
(CLE, SLES
United States, 2012 based)

Custom

IBM

Lawrence
Linux
Livermore National
(RHEL and
Laboratory
United States, 2013 CNK)

Aries

Cray

Los Alamos

Linux
National Laboratory
United States, 2015 (CLE)

Cray

National Energy
Research Scientific Linux
Computing Center (CLE)
United States, 2016

Aries

Intel
Omni-Path

Tofu

Fujitsu

Kashiwa, Joint
Center for
Advanced High
Performance
Computing
Japan, 2016

Fujitsu

Riken,

Advanced
Institute
for
Computational
Linux
Science
(AICS)
Japan, 2011

Linux

1.2. Ưu nhược điểm của hệ thống tính toán hiệu năng cao
1.2.1.Định nghĩa tính toán hiệu năng cao
Tính toán hiệu năng cao HPC (high performance computing) làứng dụng các
hệ thống máy tính hiệu năng cao như các siêu máy tính (super computer) và các hệ
thống xử lý song song để giải quyết các bài toán tính toán phức tạp.

6


Công nghệ tính toán song song tập trung vào sự phát triển các hệ thống và
các thuật toán xử lý song song nhờ kết hợp cả quản trị và các kỹ thuật tính toán
song song.
HPC thường được sử dụng để giải quyết các bài toán hiện đại và thực hiện
các hoạt động nghiên cứu thông qua sự mô hình hóa, mô phỏng và phân tích trên
trên các hệ thống máy tính hiệu năng cao. Các hệ thốngHPC có khả năng phân phối
hiệu năng được duy trì liên tục qua sự sử dụng các tài nguyên tính toán.
HPC được phát triển đểđáp ứng các nhu cầu ngày càng tăng về tốc độ xử lý.
HPC tập hợp vào với nhau một số công nghệ như kiến trúc máy tính, các kỹ thuật
điện tử, các thuật toán, các chương trình, và phần mềm hệ thống theo một kiến trúc

để giải quyết các bài toán hiện đại và phức tạp một cách hiệu quả và nhanh.
Các hệ thống HPC cần có mạng băng thông cao, trễ thấp để kết nối nhiều nút
và cụm tính toán (cluster).
1.2.2.Ưu nhược điểm của hệ thống tính toán hiệu năng cao
Với sự phát triển của công nghệ chip đa xử lý, máy tính cá nhân và công
nghệ truyền thông tốc độ cao, thì các hệ thống HP kiến trúc cụm gồm nhiều nút máy
tính cá nhân tích hợp CPU và các bộ đồng xử lý tăng tốc GPGPU hay Xeon Phi, kết
nối bằng các truyền dẫn tốc độ cao lên đến hàng chục và hàng trăm Gbit/s
(Infiniband) sẽ là giải pháp đạt hiệu năng cao: tốc độ cao trên đơn vị chi phí thấp.
Thậm chí HPC kiến trúc cụm gồm các nút PC sẵn có cũng có thể cho tốc độ tính
toán cao mà chi phí thấp.
HPC kiến trúc cụm là kiến trúc rất kinh tế, linh hoạt trong đấu nối mở rộng
và quản trị. Cấu trúc cụm có thể có nhiều hay ít nút máy tính cá nhân (dạng desktop
hay blade) tùy thuộc và khả năng chi phí đầu tư của người dùng vàứng dụng.
Ngày nay, với sự phát triển của Internet vạn vật (Internet of Things - IoT), sự
phát triển của kinh tế xã hội và nghiên cứu khoa học kỹ thuật đa dạng về nhu cầu xử
lý nhiều dữ liệu lớn trong thời gian nhanh nhất, thì các hệ thống HPC kiến trúc cụm

7


là những công cụ hiệu quả nhất. Sử dụng HPC kiến trúc cụm cũng tạo sự hợp tác
quốc tế linh hoạt hơn trong phát triển các dựán liên ngành, liên chính phủ và quốc
gia trong xử lý dữ liệu lớn "Big Data". HPC kiến trúc cụm đáp ứng cho tính toán
song các bài toánứng dụng sẽđem lại hiệu suất cao cho các ứng dụng chuyên
nghiệp.
Tuy nhiên, đểđáp ứng được nhu cầu ngày càng cao trong một số lĩnh vực
quan trọng như an ninh, quốc phòng, nghiên cứu không gian vũ trụ, v.v... thì cần
phải có những chi phí cho thiết kế hệ thống HPC cùng với các bảo đảm phần mềm
tốn kém và phức tạp. Đỉnh cao của kiến trúc HPC là các hệ thống siêu máy tính.

Không phải nước nào cũng đủ tiềm lực về kinh tế và trình độ khoa học kỹ thuật để
xây dựng các hệ thống siêu máy tính. Chi phí để đầu tư mua các siêu máy tính cũng
rất cao. Do đó, những nước nghèo cần bắt đầu từ phát triển các hệ thống HPC kiến
trúc cụm.
1.3. Các ứng dụng của HPC
1.3.1.Các lĩnh vực ứng dụng
Công nghệ HPC được thực hiện trong nhiều lĩnh vực:
• Sinh học (Biosciences)
• Y sinh học (Biomedical sciences)
• Dữ liệu địa lý (geographical data)
• Mô hình hóa trong công nghiệp dầu khí (Oil and Gas industry modeling)
• Tự động hóa thiết kế và chế tạo điện tử (Electronic design and production
automation)
• Mô hình hóa khí hậu (Climate modeling)
• Đa phương tiện và giải trí
• Nghiên cứu vũ trụ (Aircraft and Space sciences)
• Thiết kế máy bay (aircraft, tầu thủy, tầu ngầm)
• Thiết kế vũ khí hạt nhân, tên lửa vũ trụ

8


• Nghiên cứu hạt nhân nguyên tử
• Xử lý dữ liệu tình báo, tội phạm, thám mã trong an ninh quốc phòng: bẻ
khóa và mật mã.
• Động lực học chất lỏng (fluid dynamics)...
1.3.2.Nhu cầu ứng dụng HPC
Một hệ thống HPC có thểkhông đủ mạnh để giải quyết các tính toán lớn, nó
chỉ cho phép thực hiện các tính toán chuyên ngành nhỏ phù hợp với phần cứng của
hệ thống, ví dụ, chỉ đáp ứng được khoảng 10% nhu cầu. Thời gian để thực hiện một

đề tài vì vậy bị kéo dài, mất đi tính thời sự, càng khó cạnh tranh với các nhóm
nghiên cứu khác trên thế giới. Vì vậy phải có sự liên kết HPC của viện với các trung
tâm HPC mạnh ở trong nước hay ởnước ngoài của đối tác, điều đó làm mất đi sự
chủ động về nghiên cứu của Viện đó.
Khoa học và kỹ thuật tính toán hiệu năng cao được ứng dụng ngày càng
nhiều trong rất nhiều lĩnh vực từ khoa học, kỹ thuật công nghệ đến ứng dụng trong
đời sống. Nhu cầu tính toán này trở thành nhu cầu phải được nhanh chóng đáp ứng.
Thị trường tính toán hiệu năng cao đã tăng trưởng gần gấp 3 lần trong thập kỷ qua.
Việc xây dựng các hệ thống HPC là nhiệm vụ quan trọng cần được quan tâm đầu tư
nghiên cứu.
1.4. Kiến trúc tính toán song song
1.4.1.Đặc tính song song của HPC
Yếu tố chính làm nên hiệu năng của các hệ thống HPC là đặc tính song song
trong kiến trúc ở nhiều lớp:
• Song song ở mức lệnh
• Xử lý vector
• Nhiều nhân trong một bộ xử lý
• Nhiều bộ xử trong một nút máy tính

9


• Nhiều bộ xử lý kết hợp với các bộ đồng xử lý tăng tốc (GPGPU hay Xeon
Phi)
• Nhiều nút trong một cụm
• Nhiều cụm trong một hệ thống
1.4.2.Khái niệm tính toán song song
Tính toán song song là một dạng tính toán trong đó nhiều lệnh được thực
hiện đồng thời. Tính toán song song vận hành trên nguyên tắc là các bài toán lớn
được chia ra thành những phần nhỏ mà những phần nhỏ này có thể được thực hiện

tương tranh (song song). Tính toán song song đã được sử dụng từ nhiều năm nay,
chủ yếu cho những tính toán hiệu năng cao và trở thành một đặc điểm quan trọng
trong kiến trúc máy tính, đặc biệt ở dạng các bộ xử lý nhiều lõi.
Tính toán song song có một số dạng khác nhau:
• Song song mức bit.
• Song song mức lệnh.
• Song song dữ liệu.
• Song song nhiệm vụ.
Một chương trình song song gồm nhiều nhiệm vụ (task) chạy song song trên
nhiều bộ xử lý. Tuy nhiên, khó khăn để viết các chương trình cho máy tính song
song hơn là cho máy tính tuần tự.
Có 3 kiểu song song có thể có trong một chương trình thực hiện:
• Song song dữ liệu: nhiều khoản dữ liệu có thể được xử lý trong cùng một
cách và ở cùng một thời gian.
• Song song chức năng: chương trình có các module khác nhau và độc lập
với nhau có thể được thực hiện đồng thời.
• Chồng lấn nhau (overlapped)/song song tạm thời (temporary parallelism):
chương trình có một chuỗi các nhiệm vụ (task) có thể được thực hiện theo

10


kiểu chồng lấn nhau. Hình thức quan trọng nhất của chồng lấn nhau là kỹ
thuật đường ống (pipelining).
Một nhiệm vụ T (task):
• Có thể được xử lý tuần tự theo từ, bit theo bit trong bộ xử lý hay máy

tính, thì bộ xử lý hay máy tính đó gọi là bộ xử lý hay máy tính tuần tự
(sequential), hay đơn xử lý (uniprocessor).
• Nếu được phân chia thành những phần con có kích thước xấp xỉ nhau: T1,

T2, T3, …TN và tất cả các thành phần con này được xử lý đồng thời (thực

hiện song song) thì tốc độ thực hiện nhiệm vụ T nhanh gấp N lần và bộ
xử lý (máy tính) có chức năng thực hiện như vậy gọi là bộ xử lý song
song (máy tính song song).
Ví dụ, một nhiệm vụ T thực hiện tính tổng SUM của N số (hằng số): b1, b2,
…, bN. Khi đó, thuật toán tuần tự tính tổng N hằng số có thể đơn giản là:
For i = 1 to N do SUM <- SUM + b[i]
Thuật toán tuần tự này được thực hiện trên một bộ xử lý (hay trong máy tính
tuần tự) thì phải có N phép cộng, mỗi phép cộng chiếm một quãng thời gian là Tadd,
nghĩa là để có được kết quả cuối cùng của SUM cần phải mất khoảng thời gian là
NTadd. Nếu một máy tính có N bộ xử lý giống nhau Pi, i = 1, 2, …, N và chúng kết

nối với nhau trong một cấu trúc mảng tuyến tính hai chiều: mỗi một bộ xử lý đồng
thời nhận (receive) và gửi dữ liệu với bộ xử lý lân cận (send) (hình 1.1).

Hình 1.1: Mảng tuyến tính hai chiều gồm n bộ xử lý
Bằng mô hình máy tính kiểu này có thể giải bài toán tính tổng SUM một
cách song song như sau: cho N = kn, trong đó: k- số nguyên; n - số lượng bộ xử lý.
Mỗi bộ xử lý thực hiện k số và tất cả n bộ xử lý đồng thời thi hành nhiệm vụ. Như


vậy N = kn phép cộng được phân ra n phép cộng (n bộ xử lý), mỗi phép cộng với k
số. Bộ xử lý Pi chuyển kết quả phép cộng của nó cho bộ xử lý tiếp theo Pi+1, và Pi+1
cộng kết quả của chính nó với kết quả từ Pi gửi vào. Kết quả phép cộng của Pi+1
được chuyển tới Pi+2.Sau (n-1) phép cộng và chuyển dữ liệu, kết quả cuối cùng được

cất trong Pn.
Thuật toán song song tính SUM được biểu diễn bằng chương trình sau đây:
{Với mỗi bộ xử lý Pi xác định SUM nhờ các số cục bộ của nó b(1:k)}

SUM <- 0;
For i = 1 to k do SUM <- SUM + b(i);
{Bộ xử lý Pi gửi kết quả cục bộ SUM đến bộ xử lý Pi+1}
IfINDEX = 1 then

begin
ifn> 1 then send (RIGHT, SUM); {RIGHT only processor Pi+1}

end else
{Mỗi bộ xử lý Pi chờ đợi để nhận một kết quả từ Pi-1}
begin
receive(LEFT, LEFTSUM);
SUM <- SUM + LEFTSUM;
{Mỗi bộ xử ly Pi (trừ Pn) gửi kết quả SUM cục bộ cho Pi+1}
IfINDEX
end;
Thời gian T(n) cần thiết để thực hiện tính tổng SUM theo thuật toán song
song trên n bộ xử lý gồm có hai thành phần chính: thời gian tính cục bộ TL để thực
hiệnk = N/n phép cộng đồng thời trên n bộ xử lý. Có thể viết TL = K1N/n, trong đó,
K1 là một hằng số phụ thuộc vào thời gian cộng và lưu giữ trên một bộ xử lý. Thành

12


×