11/7/12
Nội dung
Tính toán song song và phân tán PGS.TS. Trần Văn Lăng tvlang@vast-‐hcm.ac.vn lang@lhu.edu.vn
Tài liệu: Introduc7on to Parallel Compu7ng Blaise Barney, Lawrence Livermore NaGonal Laboratory hIps://compuGng.llnl.gov/tutorials/parallel_comp/
1
2
1. Tổng quan 2. Khái niệm và thuật ngữ 3. Kiến trúc bộ nhớ của máy Znh song song 4. Mô hình lập trình song song 5. Thiết kế chương trình song song 6. Ví dụ
1.1 Tính toán song song là gì
• Theo truyền thống, phần mềm được viết theo
1. Tổng quan
lệnh rời rạc.
cách Znh toán tuần tự: – Được chạy trên một máy Znh đơn có một CPU; – Một bài toán được chia ra thành một chuỗi các câu
– Những câu lệnh này được thi hành sau câu lệnh khác. – Vào một thời điểm chỉ có một câu lệnh thực thi.
3
4
1. Tính toán song song là gì 2. Tại sao phải dùng Znh toán song song
1
11/7/12
Ví dụ Znh Gền lương cho nhiều người
• Trong một ngữ cảnh đơn giản, Znh toán song song
(Parallel CompuGng) là việc sử dụng đồng thời nhiều nguồn tài nguyên Znh toán để giải quyết một vấn đề: – Được chạy bằng cách sử dụng nhiều CPU. – Một vấn đề có thể chia ra thành nhiều phần rời rạc có thể
giải quyết một cách đồng thời.
– Mỗi phần được Gếp tục phân chia thành một chuỗi các câu
lệnh.
– Những câu lệnh của mỗi phần được thi hành một cách
đồng thời trên các CPU khác nhau.
5
6
Tiền lương mỗi người được 1 CPU Znh
– Một máy Znh duy nhất với nhiều bộ xử lý; – Một số tùy ý máy Znh được kết nối qua mạng; – Tổ hợp cả hai loại trên.
7
8
• Nguồn tài nguyên Znh toán có thể là:
2
11/7/12
– Được phân chia thành các phần công việc rời rạc mà có
thể giải quyết một cách đồng thời;
– Thực hiện nhiều câu lệnh chương trình vào bất kỳ thời
điểm nào;
• Bái toán Znh toán có thể: • Tính toán song song là một sự Gến hóa của Znh
gian nhưng vẫn trong cùng một chuỗi.
– Với nhiều nguồn tài nguyên Znh toán, bài toán được giải quyết ít thời gian so với chỉ một nguồn tài nguyên Znh toán.
9
10
toán tuần tự nhằm cố gắng mô phỏng những vấn đề đặt ra trong thế giới tự nhiên chứa đựng: – Nhiều sự phức tạp – Các sự kiện liên quan với nhau xãy ra cùng một thời
The Real World is Massively Parallel !
Ví dụ
11
12
• Hình thành giải thiên hà (Galaxy formaGon) • Chuyển động của hành Gnh • Vấn đề thời Gết và đại dương
3
11/7/12
Sử dụng Znh toán song song
• Về mặt lịch sử, Znh toán song song được coi là
• Giao thông đô thị • Chế tạo máy bay • Những mãng băng trôi
…
13
14
“Znh toán cao cấp” (the high end of compuGng), đã được sử dụng để mô hình hóa các vấn đề khó khăn trong nhiều lĩnh vực khoa học và kỹ thuật: – Khí quyển, trái đất, môi trường – Vật lý: hạt nhân, hạt, áp lực cao, nhiệt hạch, lượng tử,
Sử dụng Znh toán song song
• Ngày nay, những ứng dụng thương mại cũng đòi hỏi công suất lớn của máy Znh.
– Khoa học sinh học, công nghệ sinh học, di truyền học. – Hóa học, khoa học phân tử – Địa chất, địa chấn học – Cơ ký: từ tay chân giả cho đến tàu vũ trụ – Điện, thiết kế vi mạch, vi điện tử – Khoa học máy Znh, toán học
• Những ứng dụng này đòi hỏi xử lý một khối lượng
15
16
lớn dữ liệu; chẳng hạn: – Cơ sở dữ liệu, khai khoáng dữ liệu – Khai thác dầu – Công cụ (cid:156)m kiếm, dịch vụ kinh doanh dựa trên web
4
11/7/12
1.2 Tại sao phải dùng Znh toán song song
– Máy Znh song song có thể xây dựng trên các thành
phần giá rẻ
– Rút ngắn thời gian là sự Gết kiệm đáng kể.
– Chẩn đoán hình ảnh y tế (Medical image diagnosis) – Thiết kế dược phẩm – Quản lý các tập đoàn quốc gia, đa quốc gia – Mô hình tài chính và kinh tế – Đồ họa nâng cao, thự tại ảo, công nghiệp điện ảnh – Video mạng (Networked video) và công nghệ đa
phương Gện
– Môi trường làm việc cộng tác
17
18
• Tiết kiệm thời gian và/hoặc 7ền bạc:
Giải những bài toán lớn
– Những bài toán thách thức lớn (Grand Challenge) được đặt ra đòi hỏi nguồn tài nguyên Znh toán lên đến cả Peta phép Znh trong một giây
• Chẳng hạn:
– Động cơ (cid:156)m kiếm để xử lý hàng triệu phiên giao dịch
trong 1 giây.
19
20
• Nhiều vấn đề quá lớn và/hoặc quá phức tạp; nên sẽ không thực tế hoặc không thể giải quyết được trên một máy Znh đơn, đặc biệt khi bị giới hạn về bộ nhớ.
5
11/7/12
Các thách thức (Grand Challenge) (en.wikipedia.org/wiki/Grand_Challenge)
• Các Znh toán tượng trưng (Symbolic) như:
• Động lực học chất lỏng và chất khí • Tính toán cấu trúc điện tử cho việc thiết kế vật liệu mới
– speech recogniGon – computer vision – natural language understanding – simulaGon of complex systems
• Động lực học Plasma ứng dụng công nghệ nhiệt hạch và an toàn hiệu quả trong quân sự
21
22
• Những Znh toán về sự hiểu biết bản chất cơ bản của vật chất
• Cung cấp đồng thời: Một nguồn tài nguyên Znh
Sử dụng nguồn tài nguyên không địa phương (non-‐local resources) • Dùng nguồn tài nguyên Znh toán trên một mạng diện rộng, hoặc ngay cả trên mạng Internet khi nguồn tài nguyên tại chỗ trở nên cạn kiệt.
việc có thể được làm một cách đồng thời. Chẳng hạn, hệ thống Access Grid (www.accessgrid.org) cung cấp một mạng lưới cộng tác toàn cầu, ở đó mọi người có thể gặp nhau và chỉ đạo công việc một cách sát thực.
23
24
toán đơn chỉ có thể làm một công việc ở vào một thời điểm. – Nhưng với nhiều nguồn tài nguyên Znh toán, nhiều
6
11/7/12
SETi@home
– SETI@home (seGathome.berkeley.edu) sử dụng 2,9 triệu máy Znh kết nối Internet ở khắp các nước. – Folding@home (folding.stanford.edu) sử dụng máy
• Chẳng hạn:
Znh trên 450.000 campus.
25
26
• SETI (Search The Extraterestrial Intelleigence -‐ Tìm kiếm trí tuệ ngoài Trái đất): là một lĩnh vực khoa học với mục Gêu là để phát hiện cuộc sống thông minh ngoài Trái đất .
Folding@home
– Đài phát thanh SETI, sử dụng kính viễn vọng radio để nghe các Zn hiệu vô tuyến băng thông hẹp từ không gian. Tín hiệu xảy ra một cách tự nhiên, sẽ cung cấp bằng chứng của công nghệ ngoài Trái đất.
• Hệ thống bao gồm: • Mục 7êu: Tạo môi trường Znh toán phân tán
– Làm đài phát thanh SETI bằng cách sử dụng một siêu
máy Znh ảo bao gồm số lượng lớn các máy Znh kết nối Internet (5/1999).
27
28
nhằm (cid:156)m hiểu về sự kết xoắn và các đột biến của protein, cũng như các bệnh tật gây ra bởi các biến chứng này. Xuất phát từ Phòng thí nghiệm Pande, Standford University.
7
11/7/12
• Quá trình kết xoắn của protein, mặc dù đó là nền
• Protein là những "chú ngựa thồ" trong sinh học, và là những cỗ máy siêu nhỏ. tảng căn bản quan trọng trong sinh học, vẫn còn là điều mơ hồ và vẫn chưa có câu giải thích đích đáng
29
30
• Trước khi protein có thể lãnh những trách nhiệm cực kỳ quan trọng, chúng tự kết xoắn lại với nhau -‐ hay còn gọi là "fold".
Giới hạn của Znh toán tuần tự
• Giới hạn tuyệt đối bởi tốc độ ánh sáng là 30 cm/nanosecond;
và của dây đồng là 9 cm/nanosecond
• Cả những lý do vật lý cũng như thực tế đặt ra việc cần phải xây dựng những máy Znh nhanh hơn máy Znh tuần tự, cụ thể: – Tốc độ truyền: Phụ thuộc một cách trực Gếp vào việc dữ liệu di chuyển thông qua các phần cứng. Cụ thể
31
32
• Hơn nữa, khi sự kết xoắn của proteins bị sai lệch (còn gọi là "misfold"), chúng có thể tạo ra những hậu quả hết sức nghiêm trọng như: – Alzheimer: chứng bệnh mất trí – Mad Cow: bệnh bò điên – Parkinson: bệnh phân liệt – Và nhiều bệnh ung thư khác
8
11/7/12
– Giới hạn trong việc thu nhỏ: Công nghệ vi xử lý giúp
– Kiến trúc máy Znh hiện đại cho phép có thể nâng cao
năng lực xử lý, cụ thể có các kiến trúc:
tăng số transitor đặt trên một con chip. Tuy nhiên, khả năng đạt được cũng còn gặp nhiều khó khăn.
• Nhiều bộ phận thực thi (MulGple execuGon units) • Kiến trúc lệnh đường ống (Pipelined instrucGons): cho phép nạp một lệnh mới trong khi CPU đang xử lý lệnh trước đó.
• MulG-‐core
– Giới hạn về kinh tế: Một bộ xử lý đơn mạnh gía thành cao hơn nhiều so với việc sử dụng nhiều bộ xử lý với giá vừa phải.
33
34
Một cách tổng quát
35
36
• Ai và những gì đã làm về Tính toán song song
9
11/7/12
Sự phát triển
Ngay cả đơn vị đo Znh toán
• Với sự phát triển trong hơn 20 năm qua cho thấy nhờ sự nhanh hơn của mạng lưới, hệ thống phân tán và kiến trúc máy Znh đa xử lý, cho thấy sự song song là tương lai của máy Znh.
• Ngay trong cùng một thời điểm hiện tại, đã có
• 1 Yflop/s (YoIaFlop/s) = 1024 Flop/s • 1 Zflop/s (ZeIaFlop/s)= 1021 Flop/s • 1 Eflop/s (ExaFlop/s) = 1018 Flop/s • 1 Pflop/s (PetaFlop/s) = 1015 Flop/s • 1 Tflop/s (TetraFlop/s)= 1012 Flop/s • 1 Gflop/s (GigaFlop/s) = 109 Flop/s • 1 Mflop/s (MegaFlop/s) = 106 Flop/s • 1 Kflop/s (KiloFlop/s) = 103 Flop/s • 1 Flop/s = 1 FloaGng Point OperaGon per Second
37
38
những máy Znh nhanh hơn nhau gấp hơn cả 1000 lần.
Máy nhanh nhất (6/2012)
Máy nhanh nhất 6/2012
• Khả năng thực hiện khoảng 16.324.751.000.000.000.000 Flop/s
• Đặt tại Lawrence Livermore NaGonal Laboratory, Bộ Năng lượng, Hoa Kỳ
39
40
• Để thực hiện các nghiên cứu về Vật lý và Hóa học • Máy có 1.572.864 Core
10
11/7/12
Độ đo vật lý
Minh chứng về sự kết nối
– Được xác định bằng cách Znh số phép Znh cộng và
nhân được hoàn thành trong suốt một chu kỳ thời gian của máy.
• Sự phát triển mạng các máy Znh nối kết lại làm • Rpeak: là độ đo lý thuyết đỉnh điểm thay đổi bộ mặt của lĩnh vực Znh toán.
– Chẳng hạn, máy với 1.5 GHz có thể hoàn thành 4 phép Znh trong một cycle, thì hiệu suất lý thuyết là 6 GFlop/ s
• Từ tốc độ 10 Mbps, băng thông kết nối có thể vượt tốc độ Giga (Gigabit Ethernet, Infiniband, Myrinet, Quadric, v.v... )
41
42
• Rmax: là độ đo cực đại mà máy Znh có thể thực hiện được theo chuẩn LINPACK
Kiến trúc máy trong 10 năm qua
Thống kê theo kiến trúc
– Trong số 500 máy nhanh nhất thế giới, có 149 hệ thống
dạng cluster (hệ thống nhóm máy mạng).
– Trong số 149 hệ này có 23 máy tự làm (self-‐made).
• Theo số liệu 6/2003 (hIp://www.top500.org)
43
44
• Đến 6/2012
11
11/7/12
Theo hệ điều hành 10 năm qua
Theo hệ điều hành (11/2011)
45
46
• 11/2011
• 6/2012
2. Khái niệm và thuật ngữ
1. Kiến trúc máy Znh Von Neumann 2. Phân loại kinh điển của Flynn 3. Một vài thuật ngữ song song tổng quát
47
48