Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
755,66 KB
Nội dung
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 [...]... Huy Trang 14 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... 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ứ HVTH : Mã Tuấn Huy Trang 15 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... 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ứ HVTH : Mã Tuấn Huy Trang 18 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... 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... 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... bộ xử lý liên hợp nổi tiếng nhất GVHD : PGS.TS Nguyễn Phi Khứ HVTH : Mã Tuấn Huy Trang 17 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ề... 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ứ HVTH : Mã Tuấn Huy Trang 13 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... 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... Khứ HVTH : Mã Tuấn Huy Trang 23 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ứ HVTH : Mã Tuấn Huy Trang 24 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... 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 . 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. 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. 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