Tính toán song song ra đời dé giải quyết các bài toán thực hiện tuần tự nhưng có khả năng chia nhỏ thành nhiều tác vụ song song dé tăng hiệu suất xử lý của bài toán.Bằng cách ứng dụng mô
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
NGUYEN HÙNG PHÚC
(MANY INTEGRATED CORE) VÀ UNG DỤNG
CHUYEN NGANH : KHOA HOC MAY TÍNH
MA SO: 60.48.01.01
TOM TAT LUAN VAN THAC SI
HA NOI - 2016
Trang 2Luận văn được hoàn thành tại:
HỌC VIEN CÔNG NGHỆ BƯU CHÍNH VIÊN THONG
Người hướng dẫn khoa học: TS HOÀNG LÊ MINH
Phản biện 1: PGS.TS Nguyễn Hải Châu
Phản biện 2: TS Tạ Quang Hùng
Luận văn sẽ được bảo vệ trước Hội đông châm luận văn thạc sĩ tại
Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: I0 giờ 00 ngày 20 tháng 08 năm 2016
Có thê tìm hiêu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3MO DAU
Ngày nay, với sự bùng nổ của công nghệ thông tin và internet, nhu cầu tinh toán
trong lĩnh vực khoa học ngày càng trở nên cấp bách và đối mặt với nhiều thách thức, do đó
có nhiều giải pháp lần lượt được đưa ra nhằm tăng khả năng xử lý tính toán và rút ngắn tối
đa thời gian tính toán Trước tình hình này, các nhà nghiên cứu vi xử lý đã chuyển hướngsang phát triển công nghệ da lõi, nhiều lõi, đa nhân với cơ chế xử lý song song và phân tántrong các máy tính hiệu năng cao nhằm tăng hiệu năng và chi phí năng lượng hợp lý Các bộ
xử lý tiên tiến, các hệ thống tính toán tích hợp, phức tạp có tốc độ cao đều áp dụng kỹ thuật
xử lý song song, coi đây như là một kỹ thuật tiên tiến, khả thi, có tinh mở cao
Năm 1965, nhà đồng sáng lập hãng Intel là Gordon Moore đăng một bài viết trong đó
dự báo số bóng bán dẫn transistor trên mạch tích hợp sẽ tăng gấp đôi mỗi năm (về sau điềuchỉnh lại là "tăng gấp đôi theo chu kỳ 18 tháng"), sau này được biết đến là “định luật More”.Tuy nhiên với sự phát triển như vũ bão của công nghệ, và sự hạn chế của kỹ thuật, lượngtransistor không còn tăng được nữa, tính quy mô của định luật More không còn Đã đến lúccần một giải pháp khác cho sự phát triển của công nghệ điện toán Và tính toán song song sẽ
có thé đem đến một nền tang phát triển mới
Như chúng ta đã biết tính toán song song không phải là một khái niệm mới trong thời
đại ngày nay Tính toán song song ra đời dé giải quyết các bài toán thực hiện tuần tự nhưng
có khả năng chia nhỏ thành nhiều tác vụ song song dé tăng hiệu suất xử lý của bài toán.Bằng cách ứng dụng mô hình tính toán song song, hiện nay trên thế giới đã ra đời rất nhiềusiêu máy tính nhằm phục vụ cho nhu cầu tính toán lớn Chính vi vậy tại hội thảo siêu điệntoán Quốc tế 2011 Intel đã đưa ra kiến trúc máy tính đa nhân tích hợp (Many IntegratedCore — MIC), có thé xem MIC như một xử lý phối hợp (Co-processor) và lợi thé của nó là
có thê dùng chung trình biên dịch, chung các công cụ, chung ứng dụng của các CPU Intel vàthay vi dé xử lý các ống lệnh đồ hoa, MIC tập trung vào tính toán thông thường dựa trênđiện toán song song (Parallel Computing) Đây là một kiến trúc lớn được Intel định hướngđến phân khúc điện toán siêu cấp, chuyên làm các tính toán quy mô lớn như thiên văn học,
dự báo thời tiết, vật ly lượng tử, khai thác dầu khí, khám phá phân tử, chuẩn đoán y khoa,các dịch vụ trên điện toán đám mây hay phá mã mật khẩu
Minh họa một cách đơn giản, tính toán truyền thống giống như việc một người đọc
bài văn theo kiêu tuân tự từ dau đên cuôi, còn tính toán song song thi giông như tach bai văn
Trang 4đó thành các phan và cho nhiều người khác nhau cùng đọc một lúc dé có kết quả nhanh hơn
Tính toán song song mang lại một nền tảng mới cho sự phát triển của công nghệ xử lý Đây
là một hướng đi mới, đúng đắn và hiệu quả cho công nghệ điện toán trong tương lai Thay
được lợi ích to lớn đó, em chọn đề tài “Nghiên cứu mô hình tính todn song song trên kiến
trúc may tính da nhân tích hợp (Many Integrated Core) và ứng dụng”.
Mục đích nghiên cứu chính của luận văn là phần nào thể hiện được những kiến thức
cơ bản về tính toán song song, ứng dụng của tính toán song song trên kiến trúc máy tính đanhân tích hợp dé giải bài toán phá mã mật khẩu Từ đó ứng dụng vào các ngành khoa họckhác để thực hiện những tính toán nhanh hơn, việc xử lý song song sẽ giải quyết đượcnhững bài toán lớn hơn, phức tạp hơn trong thực tế
Luận văn gồm 3 chương chính với các nội dung sau:
Chương 1: Lý thuyết về tính toán song song và tính toán hiệu năng cao Nộidung của chương này trình bày kiến thức hiểu biết về tính toán hiệu năng cao, tính toán
song song, các mô hình lập trình song song và thuật toán song song.
Chương 2: Nghiên cứu về kiến trúc MIC Chương này tập trung tìm hiểu kiến trúc
máy tính đa nhân tích hợp, tìm hiểu thư viện và công cụ phát triển các ứng dụng song songcho hệ thống tính toán hiệu năng cao trên nền tảng đa nhân tích hợp
Chương 3: Giải bài toán phá mật khẩu được mã hóa theo chuỗi MD5 trên hệthống HPC Chương này sử dụng thư viện lập trình song song MPI trên hệ thống MIC ứngdụng giải bài toán phá mật khẩu được mã hóa theo chuỗi MD5 (có không quá 6 ký tự)
Trang 5CHƯƠNG 1: LÝ THUYET VE TÍNH TOÁN SONG SONG VA TÍNH
TOAN HIEU NANG CAO
1.1 Tổng quan về tinh toán hiệu năng cao
1.1.1 Giới thiệu về tính toán hiệu năng cao
Tính toán hiệu năng cao (High Performance Computing - HPC) là một trong những
lĩnh vực nghiên cứu dang được quan tâm hiện nay trên thế giới Hiểu một cách đơn giản,tính toán hiệu năng cao cho phép tận dụng tối đa tài nguyên tính toán và lưu trữ để tạo ramột hệ thống đáp ứng yêu cầu ứng dụng trong thời gian nhanh hơn, với chỉ phí thấp hơn
Phương thức tính toán truyền thống được thực hiện dưới hình thức một ứng dụng
chạy trên một máy chủ hay một workstation Tất cả các lệnh của một ứng dụng đều được xử
lý trên hệ thong cục bộ Trong khi đó, tính toán hiệu năng cao lại sử dung sức mạnh xử lýcủa nhiều hệ thống dé xử lý các lệnh của một ứng dụng Việc phân phối khối lượng xử lýtrên nhiều hệ thống sẽ giúp tăng tốc độ xử lý dữ liệu
1.12 Nhu cầu xây dựng hệ thống tính toán hiệu năng cao
Nhu cầu ứng dụng Công nghệ thông tin trong các hoạt động nghiên cứu khoa học vàcông nghệ, quản lý kinh tế xã hội ngày càng cao, đòi hỏi phải giải quyết nhiều các bài toán
xử lý lớn với khối lượng tính toán không 16 đến mức các máy tính tuần tự (SequentialComputer) không đủ mạnh dé có thé đưa ra một phương án lời giải trong giới hạn thời giancho phép Ý tưởng xây dựng các máy tính song song tuy đã xuất hiện từ lâu trong cácnghiên cứu, nhưng mới chỉ trở thành hiện thực trong vòng vài chục năm gần đây
1.1.3 Hệ thống HPC tại Viện Công nghệ phan mém và Nội dung số
Bang 1.1: Tốc độ tính toán của hệ thống HPC tại viện CNPM & NDS [6]
Số lượng | Tổngsố | Tốc độ | FLOPS/clock| Tổng cộng
Bộ vi xử lý bộ xử lý | nhân/BXL (3) (4) (GFlops)
(1) (2) (5) = 1*2*3*4
Intel Xeon 26 Processor ES- 48 8 Ghz 8 7.987
2670 Intel Xeon Phi 1.053
Coprocessor 48 60 ? 16 48.522
Ghz 5110p
Intel Xeon
Processor E5- 4 10 2,5 Ghz 8 800
2670 v2
Tong cong 57.309
Trang 61.2 Lý thuyết về tính toán song song
1.2.1 Khái niệm tính toán song song
Tính toán song song hay xử lý song song (Parallel Computing/Parallel Processing) là
quá trình xử lý thông tin trong đó nhiều đơn vị dữ liệu được kích hoạt xử lý đồng thời và
cùng tham gia giải quyết một bài toán
Phân biệt giữa tính toán song song và tính toán tuần tự:
Bảng 1.2: Phân biệt tính toán tuần tự và song song
Tính toán tuần tự Tính toán song songMỗi thời điểm chỉ thực hiện được một —_ | Mỗi thời điểm có thê thực hiện được
phép toán nhiều phép toán
Thời gian thực hiện phép toán chậm Thời gian thực hiện phép toán nhanh
1.2.2 Một số thuật ngữ dung trong tính toan song song
Lập trình song song (Parallel Programming) là việc lập trình sử dụng một ngôn ngữ
có hỗ trợ xử lý song song các lệnh trong một chương trình.
Máy tính song song (Parallel Computer) là một máy tính có nhiều bộ xử lý(multiple-processor) có khả năng phối hop với nhau dé giải quyết các bai toán
Siêu máy tính (Supercomputer) là một máy tính đa năng có khả năng giải các bài
toán đơn với tốc độ tính toán cao (cỡ hàng nghìn tỉ phép tính trong một giây) So với cácmáy tính được chế tạo cùng thời thì siêu máy tính có tốc độ xử lý lớn hơn hàng nghìn lần.Các siêu máy tính hiện đại là các máy tính song song Một vài siêu máy tính có số lượng ít
bộ xử lý nhưng rất mạnh, đa số siêu máy tính có số lượng bộ xử lý rất lớn
Thông lượng (Throughput) của một thiết bị là lưu lượng đữ liệu được truyền tải quathiết bị trong một đơn vi thời gian Có nhiều cách để cải tiến thông lượng của một thiết bịnhư: tăng tốc độ, tăng số thao tác tại một thời điểm
Song song hóa dữ liệu (Data Parallelism) là việc sử dụng nhiều bộ chức năng(functional units) để xử lý cùng một thao tác đồng thời cho các phần tử của một tập dữ liệu
Song song điều khiển (Control Parallelism) là cơ chế trong đó nhiều thao tác khácnhau tác động lên nhiều đơn vị dit liệu khác nhau một cách đồng thời
Dây chuyền (Pipelining) là cơ chế chia công việc thành nhiều chặng nối tiếp nhau,
mỗi chặng được thực hiện bởi một bộ phận khác nhau Đầu ra của bộ phận này là đầu vào
của bộ phận tiếp theo
Trang 7Tăng tốc (Speedup): Tăng tốc của thuật toán song song là tỷ số giữa thời gian thực
hiện trong tình huống xấu nhất của thuật toán tuần tự tốt nhất và thời gian thực thiện cùng
công việc đó của thuật toán song song.
Hiệu qua (Efficiency) của thuật toán song song được tinh bang Tăng tốc/Số bộ xử lytham gia tính toán.
1.2.3 Tại sao phải tính toán song song
Khoa học kỹ thuật ngày càng phát triển, đặt ra nhiều bài toán với khối lượng tínhtoán rất lớn Trong số đó có những bài toán mà kết qua chỉ có ý nghĩa nêu được hoàn thành
trong khoảng thời gian cho phép Ví dụ như các tính toán trong thời gian thực, mô phỏng
các hoạt động ở mức lượng tử, tính qui đạo chuyền động của vật thé trong không gian, xử lyngôn ngữ tự nhiên, dự báo thời tiết Hầu hết những bài toán này, những máy tính xử lýtuần tự không đáp ứng được yêu cầu, do đó cần phải có những hệ thống máy tính thật mạnh
mới đáp ứng được những yêu cầu của thực tế
Mặc dù tốc độ xử lý của các bộ xử lý tăng nhiều trong những năm qua, nhưng do giớihạn về vật lý nên khả năng tính toán của chúng không thê tăng mãi được Điều này dẫn tới
là muốn tăng được khả năng tính toán của các hệ thống máy tính thì đích cuối cùng là phải
khai thác được khả năng xử lý song song của chúng Ngày càng xuất hiện nhiều bài toán mànhững hệ thống đơn một bộ xử lý không đáp ứng được yêu cau xử lý về thời gian, do đó đòihỏi phải sử dụng những hệ thống đa bộ xử lý và đòi hỏi phải xử lý song song
1.2.4 Tìm hiểu các kiến trúc máy tính song song
1.2.4.1 Tổng quan về kiến trúc máy tính
Máy tính được xây dựng từ các khối cơ sở:
- Bộ nhớ: Đề lưu trữ dữ liệu
- Các đơn vị logic và số học: Thực hiện các phép toán, được ký hiệu là ALU
- Các phan tử xử lý: Bộ điều khiển (CU — Control Unit) và các thiết bị vào/ra dit liệu
- Các Bus trao đôi dit liệu
1.2.4.2 Phan loại máy tính song song
Sự phân loại máy tinh song song được dựa trên kiến trúc bộ nhớ của chúng Các zmáy
tính song song có bộ nhớ chia sẻ (Shared Memory) có nhiều bộ xử lý cùng được truy nhậpđến một vùng nhớ tổng thé dùng chung Tất cả các sự thay đổi nội dung bộ nhớ do một bộ
xử lý tạo ra sẽ được nhận biết bởi các bộ xử lý khác Người lập trình không phải quan tâm
đên việc phân chia dir liệu.
Trang 8Còn lại, các máy tính song song có bộ nhớ phân tán (Distribute Memory) cũng có
nhiều bộ xử lý nhưng với mỗi bộ xử lý chỉ có thé truy cap đến bộ nhớ cục bộ của nó, không
có một vùng nhớ dùng chung nào cho tât cả các bộ xử lý.
Interconnection Network
Hình 1.2: Máy tính song song có bộ nhớ phân tan [14]
1.2.4.3 Các mô hình kiến trúc máy tính song song
Mô hình kiến trúc máy tính song song theo Flynn (1996) dựa trên hai yếu tố cơ bản:
Dòng lệnh (instruction stream) va dòng dữ liệu (data stream).
Bảng 1.3: Mô hình máy tính song song theo Flynn
(instruction stream) (data stream) *
Trạng thái đơn Trang thái đơn
(single) (single) Data)
Trang thai don Trang thai da
(single) (multiple) Data)
Trang thai da Trang thai don
(multiple) (single) Data)
Trang thai da Trang thai da MIMD (Multiple Instruction
(multiple) (multiple) Multiple Data)
Trang 97Máy tính đơn dòng lệnh, đơn luồng dữ liệu
ƯO
Data Stream Instruction Stream
Processor Memo
Control Unit m
Hình 1.3: Mô hình kiến trúc máy SISD [13]
Máy tính đơn dòng lệnh, đa luồng dữ liệu
May tinh SIMD đóng vai trò quan trọng trong xử lý song song Chúng có thé thao tác
trên các dữ liệu biểu diễn đưới dạng vector hay ma trận (trên thực tế các dữ liệu về thời tiết
hoặc các nghiên cứu về bức xạ gây ung thư thường được biéu diễn dưới dạng vector) Máytính SIMD có thể xử lý các bài toán này trong một khoảng thời gian ngắn hơn so với các môhình khác Trong trường hợp kích thước của vector đúng bằng số lượng bộ vi xử lý thì hiệu
suất của máy SIMD sẽ đạt tối ưu Trong trường hợp mà số bộ vi xử lý và kích thước vectorkhác nhau, thì tốc độ xử lý của máy tính SIMD cũng tốt hơn nhiều so với máy tính tuần tự
Hình 1.4: Mô hình kiến trúc may SIMD [13]
Máy tính đa dòng lệnh, đơn luồng dữ liệu
MISD là một kiến trúc song song mà trong đó tại mỗi thời điểm các bộ xử lý thực
hiện các thao tác khác nhau trên cùng một dữ liệu (ngược với máy tính loại SIMD) Máy
tính MISD có ý nghĩa về mặt lý thuyết nhiều hơn thực tế; cho tới thời điểm này, kiến trúcMISD vẫn chưa có một phiên bản chính thức nào được xây dựng hay nghiên cứu phát triển
Trang 10Data Stream
ƯO
Instruction Stream
Memory
Hình 1.5: Mô hình kiến trúc máy MISD [13]
Máy tính da dòng lệnh, da luồng dữ liệu
Máy tính MIMD còn được gọi là máy tính đa bộ xử ly (multiprocessors) trong đó các
bộ xử lý có các chức năng độc lập nhau Tại bắt cứ thời điểm nào, các bộ xử lý của máy tính
MIMD có thé thực hiện các lệnh khác nhau trên các di liệu khác nhau một cách không đồng
bộ Đây là loại kiến trúc phức tạp nhất, nhưng nó là mô hình hỗ trợ xử lý song song cao nhất
và đã có nhiều máy tính được thiết kế theo kiến trúc này
Data Stream
Control Unit 1
Processor Memory | Unit 1 (Program, Data)
Processor Memory 2
Unit 2 (Program, Data)
Control Unit 2
Control Unit n
Processor Memory n Unit n (Program, Data)
Hình 1.6: Mô hình kiến trúc may MIMD [13]
1.3 Cac mô hình lập trình tính toán song song
1.3.1 Tìm hiểu về lập trình song song
Lập trình tính toán song song tập trung vào việc phân chia bài toán tông thé ra thành
các công việc con nhỏ hơn rồi định vị các công việc đó đến từng bộ xử lý và đồng bộ các
công việc đê nhận được kêt quả cuôi cùng.
Trang 111.3.2 Một số mô hình lập trình tính toán song song
1.3.2.1 Mô hình chia sẻ bộ nhớ
Mô hình này được thiết kế cho máy tính xử lý song song, các tác vụ chia sẻ không
gian dia chỉ dung chung, được doc/ghi một cách không đồng bộ
1.3.2.2 Mô hình đa luồng
Trong mô hình đa luồng (Threads), một bài toán có thé có rất nhiều luồng xử lý
a.out
call sub1()
call sub2()
do i=1,n A(i)=fne(i**2)
B(I)=A(i)ˆpsi
end do call sub3()
1.3.2.3 Mô hình truyền thông điệp (Message Passing)
Trong máy tính song song cung cấp kỹ thuật truyền thông điệp dé trao đổi giữa các
tác Hai tác vụ nằm trên hai máy khác nhau có thể trao đổi với nhau băng kỹ thuật truyền
Trang 12thông điệp trên mạng kết nối Các thông điệp có thể là các lệnh, dữ liệu, tín hiệu đồng bộ
hay ngắt
Hình 1.9: Mô hình truyền thông giữa các tác vụ trên hai máy tính [12]
1.3.2.4 Mô hình song song dt liệu
Trong mô hình song song dữ liệu (Data Parallel), hầu hết các công việc song song
đều tập trung thực hiện các phép toán trên một tập dữ liệu Tập dữ liệu này thường được tôchức trong một cấu trúc dữ liệu thông dụng như mảng hoặc khối Một tập tác vụ sẽ làm việctrên cùng cấu trúc dữ liệu nhưng mỗi tác vụ sẽ làm việc trên một phần dir liệu khác nhau với
cùng phép toán.
task 1 task 2 ven task n
Hình 1.10: Mô hình song song đữ liệu [12]
1.3.2.5 Mô hình hướng đối tượng
1.3.2.6 M6 hình logic
1.4 Tìm hiểu thuật toán song song
1.4.1 Nguyên lý thiết kế thuật toán song song
Trang 13Khi thiết kế giải thuật song song, cần tuân thủ 5 nguyên lý sau:
- Các nguyên lý lập lịch: Mục đích là giảm tối thiểu các bộ xử lý sử dụng trong giải
thuật sao cho thời gian tính toán là không tăng (xét theo khía cạnh độ phức tạp).
- Nguyên lý hình ống: Nguyên lý này được áp dụng khi bài toán xuất hiện một dãy
các thao tác {Th, Tạ, , Tạ}, trong đó T;+ 1 thực hiện sau khi T; kết thúc
- Nguyên lý chia để trị: Chia bài toán thành những phần nhỏ hơn tương đối độc lậpvới nhau và giải quyết chúng một cách song song
- Nguyên lý đô thị phụ thuộc dé liệu: Phân tích mỗi quan hệ dé liệu trong tính toán
dé xây dựng đồ thị phụ thuộc dit liệu và dua vào đó dé xây dựng giải thuật song song
- Nguyên ly diéu kiện ganh đua: Nêu hai tiễn trình cùng muốn truy cập vào cùng mộtmục dé liệu chia sẻ thì chúng phải tương tranh với nhau, nghĩa là chúng có thé cản trở lẫn
nhau.
1.4.2 Phân tích, danh gia thuật toán song song
Độ phức tạp tính toán của thuật toán song song không chỉ phụ thuộc vào kích cỡ của
dữ liệu đầu vào mà còn phụ thuộc vào kiến trúc máy tính song song và số lượng các bộ xử
lý được phép sử dụng trong hệ thống
Độ phức tạp thời gian là thước đo quan trọng nhất đánh giá mức độ hiệu quả của
thuật toán song song.
1.4.3 Một số chiến lược song song hóa phổ bién
1.4.3.1 Song song hóa kết qua
1.4.3.2 Song song hóa đại diện
1.4.3.3 Song song hóa chuyên biệt
1.5 Kết luận chương 1
Dé phát huy khả năng của những hệ thống máy tính hỗ trợ tính toán song song cần
phải xây dựng mô hình lập trình song song và thuật toán song song phù hợp Nhờ các giải
thuật song song hợp lý đã làm thay đổi quan niệm về khả năng giải được trong thực tế củanhững bài toán khác nhau Nhiều thuật toán trước đây không thể chấp nhận vì khối lượng
tính toán quá lớn thì ngày nay lại hoàn toàn khả thi.