TÍNH TOÁN LƯỚI
MỤC LỤC
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 1
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
CHƯƠNG I. TÍNH TOÁN SONG SONG
1. Tổng quan
• Tính toán song song là một hình thức tính toán trong đó nhiều phép tính được
thực hiện đồng thời, hoạt động trên nguyên tắc là những vấn đề lớn đều có thể
chia thành nhiều phần nhỏ hơn, sau đó được giải quyết tương tranh ("trong lĩnh
vực tính toán"). Có nhiều hình thức khác nhau của tính toán song song: song
song cấp bit, song song cấp lệnh, song song dữ liệu, và song song tác vụ. Song
song đã được sử dụng từ nhiều năm qua, chủ yếu là trong lĩnh vực tính toán hiệu
năng cao.
• Gần đây hình thức tính toán này được quan tâm nhiều hơn, do những hạn chế vật
lý ngăn chặn việc tăng hiệu năng tính toán chỉ bằng cách tăng tần số.
Vì việc tiêu
hao điện năng (dẫn đến sinh nhiệt) từ máy tính đã trở thành một mối lo ngại trong
những năm gần đây,
tính toán song song đã trở thành mô hình thống trị trong lĩnh
vực kiến trúc máy tính, phần lớn là dưới dạng bộ xử lý đa nhân. Xử lý thông tin
hay dữ liệu là nhiệm vụ quan trọng nhất của bất kỳ phần mềm nào và một trong
những trở ngại chính mà các nhà phát triển hiện nay phải đối mặt là khác biệt
giữa ngôn ngữ lập trình hướng đối tượng và ngôn ngữ truy vấn dữ liệu, vấn đề
càng phức tạp hơn với sự xuất hiện của XML (eXtensible Markup Language -
ngôn ngữ đánh dấu mở rộng).
• Các máy tính song song có thể được phân loại tùy theo cấp độ hỗ trợ cho song
song của phần cứng, với những chiếc máy tính đa nhân và đa xử lý có bộ phận đa
xử lý trong một máy đơn lẻ, trong khi cụm máy tính, xử lý song song hàng loạt,
và điện toán lưới sử dụng nhiều máy tính để xử lý cùng một công việc. Những
kiến trúc máy tính song song chuyên dụng thỉnh thoảng cũng sử dụng các bộ xử
lý truyền thống nhằm tăng tốc độ cho những công việc đặc trưng.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 2
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
• Thuật toán song song khó viết hơn so với những thuật toán tuần tự,
vì sự tương
tranh tạo ra nhiều lớp mới tiềm tàng các lỗi phần mềm, trong đó lỗi điều kiện
ganh đua là phổ biến nhất. Mạng máy tính và đồng bộ giữa các phần việc nhỏ là
một trong những trở ngại lớn nhất để tạo ra một chương trình song song tốt.
• Khả năng tăng tốc cao nhất có thể đạt được của một chương trình khi được song
song hóa tuân theo định luật Amdahl.
2. Bối cảnh
• Theo truyền thống, phần mềm máy tính được viết cho tính toán tuần tự. Để giải
quyết một vấn đề, một thuật toán được xây dựng và thực thi tuần tự theo các
dòng lệnh. Những câu lệnh này lại được chạy trên một đơn vị xử lý trung tâm
(CPU) của chiếc máy tính. Chỉ có một câu lệnh được chạy trong một khoảng thời
gian. Sau khi câu lệnh đó kết thúc, câu tiếp theo mới được thực hiện.
• Tính toán song song, mặt khác, lại sử dụng đồng thời các bộ đa xử lý để giải
quyết một vấn đề. Việc này được hoàn thành bằng cách tách vấn đề thành nhiều
phần độc lập sau đó mỗi bộ xử lý có thể chạy thuật toán của nó đồng thời với
những cái khác. Các bộ phận xử lý có thể khác nhau và bao gồm các dạng tài
nguyên như: một máy tính đơn gồm nhiều bộ đa xử lý, nhiều máy tính được kết
nối mạng, phần cứng chuyên biệt, hoặc có thể là sự kết hợp của những dạng trên.
• Tăng tần số là cách chủ đạo để cải thiện khả năng xử lý của máy tính từ giữa
những năm 1980 cho đến năm 2004. Thời gian chạy của một chương trình được
tính bằng số câu lệnh nhân với thời gian trung bình của một câu lệnh. Như vậy
nếu duy trì tất cả những thứ khác ổn định, gia tăng tần số xung nhịp sẽ làm giảm
thời gian trung bình để thực thi một câu lệnh. Như vậy tần số tăng sẽ giảm đi thời
gian chạy của những chương trình chạy trong CPU.
• Tuy nhiên, mức tiêu hao năng lượng của một con chip được tính bởi công thức P
= C × V
2
× F, trong đó P là công suất tiêu thụ, C là điện dung được chuyển trong
mỗi chu kỳ xung nhịp (tỷ lệ thuận với số lượng transistor có đầu vào thay đổi), V
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 3
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
là điện áp, và F là tần số của bộ xử lý (số chu kỳ mỗi giây).
Như vậy tăng tần số
cũng làm năng lượng sử dụng của bộ xử lý tăng theo. Việc tăng tiêu hao năng
lượng này đã dẫn đến quyết định ngừng phát triển bộ xử lý Tejas và Jayhawk của
Intel tháng 5 năm 2004, được cho là sự chấm dứt của việc sử dụng tăng tần số
như một kiến trúc máy tính chủ đạo.
• Định luật Moore là một quan sát thực tế cho thấy mật độ transistor trong bộ vi xử
lý tăng gấp hai lần sau mỗi 18 đến 24 tháng. Bất chấp nhược điểm về tiêu hao
năng lượng, và những dự đoán về sự chấm dứt của nó, định luật Moore vẫn khá
thông dụng. Với sự kết thúc của phương pháp tăng tần số, các transistor bổ sung
này (không còn được sử dụng cho việc tăng tần số) có thể được sử dụng để tạo ra
phần cứng bổ sung cho tính toán song song.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 4
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
CHƯƠNG II. ĐỊNH LUẬT AMDAHI VÀ ĐỊNH
LUẬT GUSTAFSON
3. Giới thiệu
• Trong trường hợp tối ưu, khả năng tăng tốc từ việc song song hóa là tuyến tính
gấp đôi các thành phần xử lý sẽ làm giảm một nửa thời gian chạy, và gấp đôi lần
nữa sẽ lại tiếp tục giảm thời gian chạy xuống còn một nửa. Tuy nhiên, có rất ít
thuật toán song song có thể đạt được sự tăng tốc tối ưu. Hầu hết đều chỉ đạt đến
gần mức tuyến tính khi số thành phần xử lý là nhỏ, và tiệm cận đến một giá trị
không đổi khi số lượng các thành phần xử lý tăng lên nhiều.
• Tiềm năng của việc tăng tốc bởi một thuật toán trên nền tảng tính toán song song
được đưa ra bởi định luật Amdahl, ban đầu được xây dựng bởi Gene Amdahl
trong những năm 1960. Trong đó nói rõ rằng chỉ một phần nhỏ của chương trình
không thể được song song cũng sẽ hạn chế khả năng tăng tốc tổng thể của việc
song song hóa. Một chương trình giải quyết một vấn đề toán học hoặc kỹ thuật
lớn thường sẽ bao gồm một số bộ phận song song và bộ phận không song song
(tuần tự). Nếu là tỷ lệ thời gian chạy mà một chương trình tuần tự bỏ ra trên bộ
phận không song song, thì
là tỷ lệ tăng tốc tối đa khi song song hóa chương trình. Ví dụ, nếu coi phần tuần
tự của một chương trình là 10% thời gian chạy, tốc độ tăng sẽ không thể đạt
được quá 10 lần, bất kể có bao nhiêu bộ xử lý được thêm vào. Điều này đặt ra
một giới hạn về tính hữu ích của việc thêm các đơn vị thực hiện song song với
nhau nhiều hơn. "Khi công việc không thể được phân chia vì ràng buộc về trình
tự, dù có áp dụng thêm nhiều phương pháp cũng không ảnh hưởng đến tiến độ.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 5
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
Mang thai một đứa trẻ phải mất 9 tháng, cho dù có bao nhiêu người phụ nữ đi
nữa.
• Định luật Gustafson: là một nguyên lý khác trong tính toán, liên quan chặt chẽ
đến định luật Amdahl.
Nó chỉ ra rằng việc tăng tốc với bộ xử lý là
Định luật Amdahl giả định kích thước bài toán là cố định và thời gian chạy của các
phần tuần tự của chương trình là độc lập với số lượng bộ xử lý, trong khi định luật
Gustafson không đưa ra giả thuyết này.
4. Phụ thuộc
• Hiểu biết về phụ thuộc dữ liệu là bước cơ bản trong việc thực hiện thuật toán
song song. Không một chương trình nào có thể chạy nhanh hơn chuỗi dài nhất
của các phép tính phụ thuộc (được biết đến như là đường tới hạn), khi mà các
phép tính phụ thuộc vào các phép tính trước trong chuỗi phải được thực hiện theo
thứ tự. Tuy nhiên, hầu hết các thuật toán không chỉ bao gồm một chuỗi dài các
phép tính phụ thuộc, luôn luôn có khả năng phải thực hiện các phép tính độc lập
song song.
• Cho Pi và Pj là hai đoạn của chương trình. Bernstein's conditions[14] mô tả khi
nào hai đoạn độc lập với nhau và có thể được thực hiện song song. Với Pi, đặt Ii
là tất cả các biến đầu vào, Oi là biến đầu ra, tương tự ta làm như vậy với Pj. P i
và Pj là độc lập nếu chúng thỏa mãn
Không thỏa mãn điều kiện đầu tiên sẽ tạo ra một phụ thuộc lưu lượng, giông như
câu lệnh đầu tiên sẽ tạo ra một kết quả được sử dụng ở câu lệnh thứ hai. Điều
kiện thứ hai có thể coi là chống phụ thuộc, khi mà câu lệnh thứ hai (P
j
) sẽ ghi đè
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 6
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
lên biến được sử dụng ở biểu thức thứ nhất (P
i
). Điều kiện thứ ba và cuối cùng
thể hiện một sự phụ thuộc đầu ra: Khi hai câu lệnh cùng thực hiện một công việc,
kết quả cuối cùng phải lấy từ các câu lệnh thực hiện một cách hợp lý nhất.
• Xem xét các hàm sau đây, trong đó thể hiện nhiều loại phụ thuộc:
Trong ví dụ này, không có phụ thuộc giữa các chỉ lệnh, do đó, tất cả đều có thể chạy
song song.
Điều kiện của Bernstein không cho phép bộ nhớ được chia sẻ giữa các quá trình
khác nhau. Nó cho rằng, một số phương tiện thực thi một lệnh giữa các truy cập là
cần thiết, ví dụ như semaphores, barriers hoặc một số phương pháp đồng bộ khác.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 7
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
CHƯƠNG III. HÌNH THỨC SONG SONG
5. Song song cấp Bit
• Từ sự ra đời của công nghệ chế tạo chip máy tính very-large-scale integration
(VLSI) từ những năm 1970 cho đến năm 1986, tăng tốc trong kiến trúc máy tính
được điều khiển bằng cách tăng gấp đôi kích cỡ từ máy tính—khối lượng thông
tin bộ xử lý có thể thao tác trên một chu kỳ. Tăng kích thước từ làm giảm số
lượng chỉ lệnh các bộ xử lý phải thực thi để thực hiện một hoạt động trên các
biến có kích cỡ lớn hơn độ dài của từ. Ví dụ, khi một bộ xử lý 8-bit phải tạo thêm
2 nguyên số 16-bit, trước tiên bộ xử lý phải thêm vào các bit bậc thấp hơn 8 từ
mỗi số nguyên bằng cách sử dụng lệnh cộng tiêu chuẩn, sau đó thêm vào các bit
bậc cao hơn 8 bằng cách sử dụng lệnh cộng có nhớ và bit nhớ lấy từ việc thêm
vào bậc thấp; do đó, bộ xử lý 8-bit cần đến hai câu lệnh để hoàn thành một thao
tác, trong khi bộ xử lý 16-bit có thể làm xong công việc này chỉ với một câu lệnh
duy nhất.
• Trong lịch sử, các vi xử lý 4-bit đã từng được thay thế bằng 8-bit, 16-bit, sau đó
là 32-bit. Xu hướng này đã kết thúc với sự ra đời của bộ vi xử lý 32-bit, đã trở
thành tiêu chuẩn cho các tính toán chung trong hai thập kỷ. Cho đến gần đây
(khoảng 2003–2004), với sự ra đời của kiến trúc x86-64, bộ xử lý 64-bit đã trở
nên phổ biến.
6. Song song cấp lệnh
• Một chương trình máy tính, về bản chất là một loạt những câu lệnh được thực
hiện bởi một bộ xử lý. Những câu lệnh này sẽ được sắp xếp lại và kết hợp thành
các nhóm mà sau đó được thực hiện song song mà không thay đổi kết quả của
chương trình. Đây được gọi là song song cấp câu lệnh. Những ưu điểm của song
song cấp câu lệnh đã thống trị kiến trúc máy tính từ giữa những năm 1980 cho
đến giữa thập niên 1990.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 8
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
Một bộ xử lý siêu vô hướng với liên kết 5 giai đoạn, có khả năng phát ra 2 câu lệnh một
chu kỳ. Nó có thể có 2 câu lệnh trong mỗi giai đoạn của đường liên kết, với tổng số lên
đến 10 câu lệnh (màu xanh lá cây) được thực hiện đồng thời.
• Các bộ xử lý hiện đại có những đường liên kết câu lệnh đa công đoạn. Mỗi giai
đoạn trong đường liên kết tương ứng với mỗi hành động khác nhau mà bộ xử lý
thực hiện với câu lệnh trong giai đoạn đó; bộ xử lý với một đường liên kết N giai
đoạn có thể có đến N câu lệnh ở những giai đoạn khác nhau. Ví dụ tiêu chuẩn của
một bộ xử lý đường liên kết là bộ xử lý RISC, với 5 công đoạn: nạp lệnh, giải
mã, thực thi, truy cập bộ nhớ, và write back. Bộ xử lý Pentium 4 có một đường
liên kết 35 giai đoạn.
• Ngoài mô hình song song cấp câu lệnh từ đường liên kết, một số bộ xử lý cũng
có thể tạo ra nhiều hơn một câu lệnh tại một thời điểm. Chúng được gọi là bộ xử
lý siêu vô hướng. Các câu lệnh chỉ được nhóm lại với nhau khi giữa chúng không
có phụ thuộc dữ liệu. Scoreboarding và thuật toán Tomasulo (tương tự như
scoreboarding nhưng sử dụng đổi tên thanh ghi) là hai trong số những kỹ thuật
phổ biến nhất cho việc thực thi sai thứ tự và song song cấp câu lệnh.
7. Song song dữ liệu
• Song song dữ liệu là song song vốn có trong Vòng lặp chương trình, trong đó tập
trung vào phân phối dữ liệu qua các nút tính toán khác nhau để được xử lý song
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 9
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
song. "Vòng song song thường dẫn đến những chuỗi hoạt động tương tự (không
nhất thiết phải giống nhau) hoặc các chức năng được thực hiện trên các yếu tố
của một cấu trúc dữ liệu lớn."[21] Nhiều ứng dụng khoa học và kỹ thuật áp dụng
song song dữ liệu.
• Một phụ thuộc loop-carried là sự phụ thuộc của một vòng lặp đi lặp lại trên đầu
ra của một hoặc nhiều lần lặp lại trước. Phụ thuộc loop-carried ngăn chặn sự song
song hóa của các vòng. Ví dụ, xem xét giả mã sau khi tính một vài số Fibonacci
đầu tiên:
Vòng này không thể song song vì CUR phụ thuộc vào chính nó (PREV2) và
PREV1, được tính toán trong mỗi lần lặp vòng. Vì mỗi lần lặp phụ thuộc vào kết
quả của lần lặp trước đó, nên chúng không thể song song. Khi vấn đề trở nên lớn
hơn, khối lượng của dữ liệu song song luôn luôn tăng theo.
8. Song song tác vụ
• Song song tác vụ là thuộc tính của một chương trình song song mà "các phép tính
hoàn toàn khác nhau có thể được thực hiện trên các bộ dữ liệu giống hoặc khác
nhau". This contrasts with data parallelism, where the same calculation is
performed on the same or different sets of data. Task parallelism does not usually
scale with the size of a problem.Khi gọi SubmitChanges() trên lớp DataContext,
các lệnh cập nhật sẽ luôn được thực thi trong cùng một transaction. Có nghĩa là
CSDL của bạn sẽ không bao giờ ở trong một trạng thái không toàn vẹn nếu bạn
thực thi nhiều câu lệnh – hoặc tất cả các thao tác bạn làm sẽ được lưu lại, hoặc
không có bất kỳ thay đổi nào.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 10
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
CHƯƠNG IV. PHẦN CỨNG
9. Bộ nhớ và sự kết nối
• Bộ nhớ chính trong một máy tính song song có thể là bộ nhớ chia sẻ (chia sẻ giữa
tất cả các yếu tố xử lý trong một vùng địa chỉ đơn lẻ), hoặc bộ nhở phân tán
(trong đó mỗi yếu tố xử lý có vòng địa chỉ cục bộ riêng). Bộ nhớ phân tán đề cập
đến việc bộ nhớ được phân phối một cách hợp lý, nhưng cũng bao hàm đến việc
nó bị phân tán vật lý. Bộ nhớ chia sẻ phân tán và ảo hóa bộ nhớ kết hợp hai
phương pháp tiếp cận, nơi mà các phần tử xử lý có bộ nhớ cục bộ riêng và truy
cập vào bộ nhớ trên bộ xử lý không cục bộ. Truy cập vào bộ nhớ cục bộ thường
nhanh hơn là truy cập vào bộ nhớ không cục bộ. Dễ quản lý các thành phần của
hệ thống.
• Kiến trúc máy tính trong đó mỗi phần tử của bộ nhớ chính có thể được truy cập
với độ trễ và băng thông bằng nhau được gọi là hệ thống Truy cập bộ nhớ đồng
bộ (UMA). Thông thường, việc đó chỉ có thể được thực hiện bởi một hệ thống bộ
nhớ chia sẻ, trong đó bộ nhớ không bị phân tán vật lý. Một hệ thống không có
thuộc tính này được gọi là kiến trúc truy cập bộ nhớ không đồng bộ (NUMA). Hệ
thống bộ nhớ phân tán có NUMA.Tạo thuận lợi cho coding, dễ sửa lỗi.
• Hệ thống máy tính sử dụng các vùng nhớ đệm—các bộ nhớ nhỏ, nhanh đặt gần
bộ xử lý mà lưu trữ các bản sao tạm thời của các giá trị bộ nhớ (gần trong cả ý
nghĩa về vật lý và logic). Hệ thống máy tính song song gặp khó khăn với vùng
nhớ đệm có thể lưu trữ cùng một giá trị ở nhiều vị trí, với khả năng thực thi
chương trình không chính xác. Những máy tính này yêu cầu một hệ thống đồng
bộ vùng nhớ đệm, trong đó theo dõi các giá trị lưu trữ và dọn dẹp chúng theo
trình tự, do đó đảm bảo chương trình được thực hiện đúng. Bus snooping là một
trong những phương pháp phổ biến nhất cho việc theo dõi những giá trị nào đang
được truy cập (và nên được thanh lọc). Thiết kế hệ thống đồng bộ vùng nhớ đệm
lớn, hiệu suất cao là một vấn đề rất khó trong kiến trúc máy tính. Kết quả là, kiến
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 11
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
trúc máy tính chia sẻ bộ nhớ không được coi trọng như hệ thống bộ nhớ phân
tán.Phân biệt kiến trúc đa tầng/nhiều lớp.
• Kiểu kết nối bộ xử lý-bộ xử lý và bộ xử lý-bộ nhớ có thể được thực hiện trong
phần cứng theo nhiều cách, bao gồm thông qua chia sẻ (bộ nhớ đa cổng hoặc đa
hợp), một bộ chuyển mạch thanh ngang, một dòng chia sẻ hay một mạng liên kết
của vô số các cấu trúc liên kết bao gồm star, ring, tree, hypercube, fat hypercube
(một hypercube với nhiều hơn một bộ xử lý tại nút a), hoặc mạng n chiều.
• Máy tính song song dựa trên kết nối mạng cần phải có một số loại định tuyến để
cho phép việc truyền thông điệp giữa các nút không được kết nối trực tiếp.
Phương pháp được sử dụng cho kết nối giữa các bộ xử lý có thể được phân cấp
trong các máy vi xử lý lớn.
10. Các dạng máy tính song song
Máy tính song song có thể được tạm phân loại theo mức độ các phần cứng hỗ
trợ song song. Kiểu phân loại này nói chung tương tự như khoảng cách giữa các
nút tính toán cơ bản. Đây không phải là loại trừ lẫn nhau; ví dụ, các cụm đa xử
lý đối xứng là tương đối phổ biến.
10.1. Tính toán đa nhân
• Một bộ xử lý đa lõi là một bộ xử lý bao gồm nhiều đơn vị thực hiện
("nhân") trên cùng một chip. Những bộ xử lý này khác với bộ xử lý siêu vô
hướng, có thể tạo ra nhiều câu lệnh trên một chu kỳ từ một dòng lệnh
(thread). Mỗi lõi trong bộ xử lý đa lõi đều có khả năng là siêu vô hướng, có
nghĩa là, trên mỗi chu kỳ, mỗi lõi có thể tạo ra nhiều câu lệnh từ một dòng
lệnh.
• Xử lý đa luồng đồng thời (trong đó HyperThreading của Intel là nổi
tiếng nhất) là một hình thức ban đầu của giả đa nhân. Một bộ xử lý có khả
năng xử lý đa luồng đồng thời chỉ có một đơn vị thực hiện ("nhân"), nhưng
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 12
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
khi đơn vị thực hiện đó không hoạt động (chẳng hạn như trong lỗi không tìm
thấy trong vùng nhớ đệm), nó sử dụng đơn vị thực hiện đó để xử lý một
chuỗi thứ hai.Cell microprocessor của IBM, được thiết kế để sử dụng cho
Sony PlayStation 3, là một bộ xử lý đa lỗi nổi bật khác.
10.2. Đa xử lý đối xứng
• Một bộ đa xử lý đối xứng (SMP) là một hệ thống máy tính với nhiều
bộ xử lý giống hệt nhau chia sẻ bộ nhớ và kết nối thông qua một kênh. Bus
contention ngăn chặn các kiến trúc khỏi việc mở rộng. Kết quả là, SMPS
thường không bao gồm hơn 32 bộ xử lý. "Vì kích thước nhỏ của bộ xử lý và
việc giảm đáng kể trong các yêu cầu về băng thông đạt được bởi các vùng
nhớ đệm lớn, bộ đa xử lý đối xứng như vậy là cực kỳ hiệu quả, với điều kiện
là tồn tại một băng thông bộ nhớ đủ dung lượng”.
10.3. Tính toán phân tán
• Một máy tính phân tán (còn được gọi là bộ đa xử lý bộ nhớ phân tán)
là một hệ thống máy tính phân tán bộ nhớ trong đó các thành phần xử lý
được kết nối bởi mạng. Máy tính phân tán có khả năng mở rộng cao.Cung
cấp các dịch vụ cho lớp Business sử dụng.
10.4. Tính toán cụm
• Cluster là một nhóm các máy tính kết nối lỏng làm việc cùng nhau
chặt chẽ, như vậy trong một số khía cạnh nào đó chúng có thể được coi là
một chiếc máy tính.[26] Các cụm gồm nhiều máy tính độc lập được kết nối
qua mạng. Khi các máy trong cụm không cần phải đối xứng, cân bằng tải sẽ
trở nên khó hơn nếu chúng không đối xứng. Dạng phổ biến nhất của cụm là
cụm Beowulf, là một cụm thực hiện trên nhiều máy tính commercial off-the-
shelf giống nhau kết nối qua mạng cục bộ TCP/IP Ethernet.[27] Công nghệ
Beowulf được phát triển đầu tiên bởi Thomas Sterling và Donald Becker.
Đại đa số các siêu máy tính TOP500 là cụm.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 13
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
Hình: một cụm Beowulft
10.5. Tính toán song song hàng loạt
• Một bộ xử lý song song hàng loạt (MPP) là một máy tính đơn được
kết nối với nhiều bộ xử lý. MPPs có nhiều đặc điểm tương tự như cụm,
nhưng MPPs có kết nối mạng riêng biệt (trong khi các cụm sử dụng phần
cứng cho mạng). MPPs cũng có xu hướng lớn hơn so với các cụm, thường có
"nhiều hơn" 100 bộ xử lý. Trong một MPP, "mỗi CPU có bộ nhớ riêng của
nó và bản sao của hệ điều hành và ứng dụng. Mỗi hệ thống con giao tiếp với
những cái khác thông qua một kết nối tốc độ cao."
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 14
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
Hình: Blue Gene / L, siêu máy tính nhanh thứ năm thế giới theo xếp hạng TOP500
tháng sáu năm 2009, là một MPP.
10.6. Tính toán mạng lưới
• Tính toán mạng lưới là dạng phân tán nhất của tính toán song song.
Nó sử dụng các máy tính kết nối thông qua mạng Internet để làm việc với
một vấn đề nhất định. Vì băng thông thấp và độ trễ rất cao của Internet, tính
toán mạng lưới thường chỉ đối mặt với vấn đề embarrassingly parallel. Nhiều
ứng dụng tính toán mạng lưới đã được tạo ra, trong đó SETI@home và
Folding@Home là những ví dụ nổi tiếng nhất.
• Hầu hết những ứng dụng đều sử dụng middleware, phần mềm ở giữa
hệ điều hành và các ứng dụng quản lý tài nguyên mạng và chuẩn hoá giao
diện phần mềm. Middleware tính toán mạng lưới phổ biển nhất là Berkeley
Open Infrastructure for Network Computing (BOINC). Thông thường, phần
mềm tính toán mạng lưới sử dụng các "chu kỳ rỗi", thực hiện tính toán vào
các thời điểm khi một máy tính đang không hoạt động.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 15
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
10.7. Máy tính song song chuyên nghành
• Trong tính toán song song, có những thiết bị song song chuyên ngành
vẫn còn những khu vực quan tâm thích hợp. Khi không có miền riêng, chúng
có xu hướng áp dụng đối với chỉ một vài phần của vấn đề song song.
10.8. Tính toán đa năng trên các đơn vị xử lý đồ họa cụ thể (GPGPU)
• Tính toán đa năng trên các đơn vị xử lý đồ họa (GPGPU) là một xu
hướng khá phổ biến gần đây trong nghiên cứu kỹ thuật máy tính. GPUs là
các bộ xử lý đồng bộ được tối ưu hóa mạnh cho việc xử lý đồ họa máy tính.
[33] Xử lý đồ họa máy tính là một lĩnh vực bị chi phối bởi các thao tác dữ
liệu song song—đặc biệt là các thao tác ma trận đại số tuyến tính.
• Trong những ngày đầu, các chương trình GPGPU sử dụng đồ họa
thông thường APIs để chạy. Tuy nhiên, một số ngôn ngữ và nền tảng lập
trình mới đã được xây dựng để thực hiện tính toán đa năng trên GPU với cả
Nvidia và AMD tạo ra môi trường lập trình với CUDA và CTM tương ứng.
Các ngôn ngữ lập trình GPU khác là BrookGPU, PeakStream, và
RapidMind. Nvidia cũng đã tung ra các sản phẩm dành riêng cho tính toán
trong dòng Tesla của họ. Tập đoàn công nghệ Khronos Group đã tạo ra kỹ
thuật OpenCL, một khuôn khổ cho việc viết chương trình chạy trên nền tảng
bao gồm CPU và GPU. Apple, Intel, Nvidia và nhiều nhãn hiệu khác đều hỗ
trợ OpenCL.
10.9. Mạch tích hợp ứng dụng cụ thể
• Một số phương pháp tiếp cận mạch tích hợp ứng dụng cụ thể (ASIC)
đã được nghĩ ra để đối phó với các ứng dụng song song.
• Vì một ASIC (theo định nghĩa) là dành riêng cho một ứng dụng nhất
định, nó có thể được tối ưu hóa hoàn toàn cho ứng dụng đó. Kết quả là, đối
với một ứng dụng nhất định, ASIC là một xu hướng tốt hơn một máy tính đa
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 16
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
năng. Tuy nhiên, ASIC được tạo ra bởi X-ray lithography. Quá trình này đòi
hỏi một màn chắn rất tốn kém. Một màn chắn đơn có thể có giá hơn một
triệu đô la Mỹ. (Các bóng bán dẫn cần thiết cho chip càng nhỏ, các màn chắn
sẽ càng đắt tiền.) Trong khi đó, tăng hiệu quả tính toán đa năng theo thời
gian (như mô tả của định luật Moore) có xu hướng xóa bỏ lợi nhuận trong
chỉ một hoặc hai thế hệ chip . Chi phí ban đầu cao, và xu hướng bị vượt qua
bởi tính toán đa năng của định luật Moore, đã làm cho ASIC không khả thi
với hầu hết các ứng dụng tính toán song song. Tuy nhiên, một số đã được
xây dựng. Một ví dụ là máy peta-flop RIKEN MDGRAPE-3 đã sử dụng tùy
chỉnh ASIC cho mô phỏng động học phân tử.
10.10. Xử lý liên hợp
• Một bộ xử lý liên hợp là hệ thống CPU hoặc máy tính có thể thực hiện
cùng một lệnh trên các bộ dữ liệu lớn. "Các bộ xử lý liên hợp có những thao
tác cấp cao làm việc trên các mảng tuyến tính của số hoặc vector. Một ví dụ
thao tác liên hợp là A = B × C, trong đó A, B, và C là các vector phần tử 64
của các số dấu phẩy động 64-bit." Chúng liên quan chặt chẽ đến phân loại
SIMD của Flynn.
• Các máy tính Cray trở nên nổi tiếng với bộ xử lý liên hợp của chúng
trong những năm 1970 và 1980. Tuy nhiên, bộ xử lý liên hợp—trong cả các
hệ thống CPU cũng như máy tính—đã gần như biến mất. Các bộ xử lý lệnh
hiện đại có bao gồm một số câu lệnh xử lý liên hợp, chẳng hạn như AltiVec
và Streaming SIMD Extensions (SSE).
Hình: Cray-1 là bộ xử lý liên hợp nổi tiếng nhất
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 17
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
CHƯƠNG V. PHẦN MỀM
11. Ngôn ngữ lập trình song song
• Ngôn ngữ lập trình tương tác, thư viện, APIs, và các mô hình lập trình song song
(như thuật toán Skeletons) đã được xây dựng cho các máy tính lập trình song
song. Những thứ này có thể được chia thành các lớp dựa trên những giả thuyết
chúng tạ ra về kiến trúc bộ nhớ cơ bản—bộ nhớ chia sẻ, bộ nhớ phân tán, hay
DSM.
• Các ngôn ngữ lập trình chia sẻ bộ nhớ giao tiếp bằng cách điều khiển các biến
chia sẻ bộ nhớ. Bộ nhớ phân tán sử dụng truyền tin. POSIX Threads and
OpenMP là hai trong số các API phổ biến nhất sử dụng bộ nhớ chia sẻ, trong khi
Giao diện truyền tin (MPI) là API sử dụng hệ thống truyền tin nổi bật nhất. Một
khái niệm được sử dụng trong chương trình lập trình song song là Khái niệm
tương lai, khi một phần của chương trình hứa hẹn sẽ mang lại dữ liệu cần thiết
cho một phần khác ở một thời điểm trong tương lai.
12. Song song hóa tự động
• Song song hóa tự động của một chương trình tuần tự bởi trình biên dịch là holy
grail của tính toán song song. Mặc dù các nhà nghiên cứu trình biên dịch đã làm
việc hàng thập kỷ, song song hóa tự động vẫn chỉ đạt được những thành công
giới hạn.
• Các ngôn ngữ lập trình song song có thể là song song hiện hoặc (tốt nhất) ngầm
một phần, trong đó các lập trình viên chỉ thị trình biên dịch song song hóa. Cũng
có một vài ngôn ngữ lập trình song song ngầm hoàn toàn tồn tại—SISAL, song
song Haskell, và Mitrion-C (cho FPGAs).
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 18
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
13. Tạo điểm kiểm tra ứng dụng
• Các máy tính càng lớn và càng phức tạp thì càng dễ sai và thời gian giữa các thất
bại càng ngắn. Tạo điểm kiểm tra ứng dụng là kỹ thuật mà hệ thống máy tính tạo
một "bản ghi nhanh" của ứng dụng - một bản ghi của tất cả các phân bổ tài
nguyên và trạng thái của biến ở thời điểm đó, giống như một kết xuất bộ nhớ;
thông tin này có thể được sử dụng để khôi phục lại chương trình nếu máy tính bị
gặp sự cố. Tạo điểm kiểm tra ứng dụng có nghĩa là chương trình chỉ phải khởi
động lại từ điểm kiểm tra cuối cùng chứ không phải từ đầu. Đối với ứng dụng có
thể chạy trong hàng tháng, điều này rất quan trọng. Tạo điểm kiểm tra ứng dụng
có thể được sử dụng cho xử lý di chuyền thuận lợi
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 19
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
CHƯƠNG VI. CÀI ĐẶT ỨNG DỤNG
14. Mô tả
• Twitter là mạng xã hội phổ biến được rất nhiều người khắp nơi trên thế giới ưa
chuộng, nhiều doanh nghiệp, công ty lớn nhỏ đã chọn Twitter để quảng bá
thương hiệu, sản phẩm của mình.
• Để quảng bá thương hiệu, sản phẩm các doanh nghiệp thường tạo các accout sau
đó post bài viết thông tin về sản phẩm trên trang cá nhân, và tạo các accout khác
để vào Follow và Retweet (tương tự như Like trên Facebook) các bài viết trên để
tạo thêm uy tín khi các user khác vào xem.
• Vấn đề cần đặt ra là làm thế nào để quản lý accout và tự động hóa khi Retweet
các bài viết về thông tin mà các doanh nghiệp đã post trước đó.
15. Phương pháp thủ công
• Đầu tiên truy cập vào website và Login
• Sau khi Login thành công chọn Link mà mình cần Retweet sau đó nhấn Retweet.
Với phương pháp này trung bình để login bằng 1 acout và Retweet thì mất tối thiểu
1 -2 phút, để quản lý 100, 1000 accout để làm hành động này thì mất
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 20
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
1x100 phút = 100 phút
Vậy trung bình ta mất 100 phút để dùng 100 accout để Retweet cho các link.
16. Phương pháp Auto
• Dùng Software Import list Accout và List link Twitter cần Retweet.
• Sau đó chọn số lượng cần Retweet và nhấn nút Start.
• Lưu ý: ta có thể chọn số tác vụ cần thực hiện song song để giảm thời gian chờ
Đã test tốc độ xử lý và thời gian chờ (test trên đường truyền mạng cáp quang và có
xử dụng Proxy)
o 100 accout xử lý dùng 1 thread mất 20 phút (có thể không xử dụng Proxy)
o 100 accout xử lý dùng 10 thread mất khoảng 2-3 phút (phải xử dụng Proxy)
có thể xem như 1 thread = 1 lần dùng accout để Retweet (hiệu năng cao gấp
10 lần và giảm thời gian chờ hơn khi dùng 1 thread)
o 100 accout xử lý dùng 20 thread mất khoảng 1 phút (phải xử dụng Proxy)
17. Môi trường thiết kế và cài đặt
• Sử dụng Visual 2010 trên nền C#, database SQL Server 2008.
• Hệ điều hành XP, Vista, Win 7.
• NetFramwork 4.0
•
CPU Core 2 Dual 2.0Ghz, Ram 2.0G
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 21
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
18. Giao diện người dùng
Hình: giao diện chính
Hình: nhóm chức năng import link
Nút Browse dùng để trỏ đến file Excel chứa các link cần Retweet, hoặc ta có thể Copy các
link đó và past vào textbox trên sau đó nhấn Import
Sau khi nhấn nút Import chương trình sẽ thông qua internet kiểm tra xem các link đó đã
có bao nhiêu Retweet và hiển thị như List bên dưới.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 22
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
Hình: List các link sau khi Import
Hình: nhóm chức năng Import accout
Nút Browse trỏ tới File Excel chứa accout.
Sau khi nhấn nút Import chương trình sẽ test xem accout có đăng nhập được vào hệ
thống Twitter hay không (lưu ý nếu lỗi kết nối internet cũng chương trình cũng báo
status là Login Fail – khuyến khích nên dùng proxy).
Hình: nhóm chức năng Start và Setting
Thread là số tác vụ thực hiện cùng 1 thời điểm, Retweet là số lượng cần cho 1 link
retweet.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 23
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
Hình: nhóm chức năng Setting
From (s): 3 – 5: ý nghĩa là Delay Random 3-5s sau mỗi Task.
Time out (s): thời gian chờ kết quả trả về từ internet.
Connection: chế độ kết nối.
Hình: quản lý Proxy
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 24
HVTH : Mã Tuấn Huy
TÍNH TOÁN LƯỚI
CHƯƠNG VII. KẾT QUẢ ĐẠT ĐƯỢC
Đã tìm hiểu về mô hình tính toán song song và ứng dụng được vào trong thực tế để xây
dựng Demo Quản lý Login và Retweet trong Twitter.
Cố gắng hoàn thiện software để đưa vào thương mại.
GVHD : PGS.TS. Nguyễn Phi Khứ Trang 25
HVTH : Mã Tuấn Huy