Tải bản đầy đủ (.doc) (15 trang)

Tìm hiểu tính toán song song hóa thuật toán và ứng dụng song song bài toán sắp xếp theo giỏ (bucket sort

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 (509.42 KB, 15 trang )




Nội dung:
Tìm hiểu tính toán song song hóa thuật toán và
ứng dụng song song bài toán sắp xếp theo giỏ
(bucket sort)

MỤC LỤC
TÀI LIỆU THAM KHẢO.......................................................................................15
2
Phần I: MỞ ĐẦU
Bốn thập kỷ qua chứng kiến sự phát triển bùng nổ về sức mạnh máy tính,
tạo tiền đề cho những bước tiến chưa từng thấy về phát minh, năng suất lao động
và phúc lợi cho con người. Nhưng quá trình đó giờ đây đứng trước một trở ngại
mà ít ai nghĩ đến: sự kết thúc của quá trình mở rộng sức mạnh điện toán. Ngành
tin học đã đạt đến giới hạn của những gì từng khả thi với một hay hai vi xử lý
trung tâm hoạt động theo chuỗi truyền thống (serial processing). Ngành nào vẫn
dựa vào mô hình đó để tiếp tục phát triển năng suất, tăng trưởng kinh tế và phát
triển xã hội thì cần phải bắt đầu một bước nhảy mới vào điện toán xử lý song
song (parallel processing).
Ngày nay, với các bài toán yêu cầu xử lý trên một số lượng dữ liệu lớn và
phức tạp như sự mô phỏng những hệ thống phức tạp và "những vấn đề thách
thức lớn" như: dự báo thời tiết và khí hậu, những phản ứng hoá học và hạt nhân,
hệ gen sinh học, ... đặt ra một nhu cầu lớn về tốc độ tính toán. Những bài toán
này thường yêu cầu một lượng lớn các phép tính lặp lại trên một khối lượng lớn
dữ liệu để đưa ra một kết quả đúng đắn, và các phép tính này cần hoàn thành
trong khoảng thời gian hợp lý. Ví dụ như bài toán dự bào thời tiết không thể xử
lý bằng các máy tính thông thường vì thời gian xử lý là khoảng 10 năm, điều
này hoàn toàn không phù hợp.
Đề giải quyết được các bài toán trên ta cần phải tăng tốc độ tính toán. Mặc


dù trong những thập kỷ vừa qua chúng ta đã được chứng kiến những thành tựu
to lớn về công nghệ vi xử lý. Tốc độ đồng hồ của các bộ xử lý đã tăng từ khoảng
40MHz (MIPS R3000, circa 1988) tới trên 2,0 GHz (Pentium 4, circa 2002);
cùng một lúc các bộ xử lý có khả năng thực hiện đa chỉ lệnh trong cùng một chu
kỳ ... nhưng do giới hạn về vật lý nên khả năng tính toán của các bộ xử lý không
thể tăng mãi được.
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ừ đầu đến cuối, còn tính toán song song thì
giống như tách bài văn đó thành các phần và cho nhiều người khác nhau cùng
đọc một lúc để 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. Bài viết sau đây về đề
tài “Tìm hiểu về tính toán song song , áp dụng giải quyết một số bài toán” phần
nào thể hiện được những kiến thức cơ bản đầu tiên về tính toán song song, tính
đúng đắn và ứng dụng của nó.
Phần II: NỘI DUNG
I. Những khái niệm cơ bản về tính toán song song
1. Nhu cầu tính toán hiệu năng cao và tính khả dụng của tính toán song song.
a. Nhu cầu tính toán song song
Ví dụ 1: Oregon State University: Mô phỏng các dòng chảy lưu thông của đại
dương --> xác định nguyên nhân gây trái đất đang nóng dần lên.
- Phân chia đại dương thành:
• 4096 vùng từ đông sang tây.
• 1024 vùng từ bắc sang nam.
• 12 tầng biển.
• Xấp sỉ 50 triệu khối trong không gian 3 chiều.
- Mô phỏng lưu thông thực hiện ~ 30 tỷ phép tính trong 10 phút. Công
việc này thực hiện liên tục trong năm.
Ví dụ 2: Dự báo thời tiết (weather forecasting):
- Chia bầu khí quyển theo không gian 3 chiều, mỗi khối kích thước 1mile

x 1mile x 1mile.
- Ước tính khoảng 5x10^8 khối (cells).
- Trên mỗi khối cần thực hiện ~ 200 phép toán -> cần thực hiện ~ 10^11
phép toán.
- Nếu cần dự báo cho 1 tuần, chu kỳ 1 phút -> cần thực hiện 10^4 lần, mỗi
lần 10^11phép toán.
- Siêu máy tính có thể thực hiện: 10^9 phép toán trên 1 giây -> cần 10^6
giây ~ 10 ngày để thực hiện.
Ví dụ 3: Mô phỏng tương tác của các protein với phân tử nước (Levin 1990):
- Thực hiện trên máy Cray X/MP (~800 triệu phép toán / 1 giây): để mô
phỏng 10^-12 giây phản ứng protein cần 1 giờ thực hiện.
- Nếu mô phỏng một phản ứng thực sự trên cùng máy Cray X/MP cần
31,688 năm.
TÓM LẠI:
Yêu cầu về thực nghiệm nghiên cứu, mô phỏng -> giải quyết những bài
toán có khối lượng tính toán lớn trong một khoảng thời gian chấp nhận được.
Phương hướng giải quyết vấn đề:
- Thực hiện trên các siêu máy tính mạnh.
- Thực hiện phân chia công việc thực hiện song song trên hệ thống các máy tính
Tính khả dụng của tính toán song song
SIÊU MÁY TÍNH: Khả năng tính toán phụ thuộc nhiều vào tốc độ xử lý
của CPU -> phụ thuộc vào cấu trúc và số lượng transistors chứa trong CPU –>
Có những giới hạn nhất định về kích thước, nhiệt độ -> không thể tăng số
transistors lên mãi được
THỰC HIỆN SONG SONG:
Nguyên tắc: thực hiện phân chia công việc chính thành các công việc con, có thể
thực hiện song song với nhau.
Xây dựng hệ thống song song từ nhiều bộ xử lý riêng biệt. Thực hiện các công
việc song song trên các bộ xử lý đó.
Vấn đề:

- Phương pháp phân chia công việc.
- Môi trường hỗ trợ thực hiện song song.
Ví dụ: Xếp sách trong thư viện
Sách trong thư viện được phân loại theo chữ cái đầu tiên và sắp xếp theo
thứ tự.
Sách cùng nhóm được xếp trên cùng một giá. Các giá đặt trong các tủ
sách.
Thư viện nhập một số lượng sách lớn -> yêu cầu thủ thư phải sắp xếp sách
theo đúng nguyên tắc.
Cách giải quyết hiệu quả nhất?
+ Nếu chỉ có 1 thủ thư
- Cách thứ nhất: Lấy từng cuốn sách rồi sắp xếp vào vị trí thích hợp ->
không hiệu quả.
- Cách thứ hai: Sắp xếp các cuốn sách theo thứ tự trước rồi mang từng
chồng sách cùng vị trí đi sắp xếp.
Rõ ràng cách thứ 2 hiệu quả hơn.
Muốn hiệu quả hơn nữa thì cần có nhiều người làm hơn.
+ Nhiều thủ thư hơn
Cách thứ nhất: Mỗi người lấy 1 cuốn rồi đi sắp đặt vị trí -> không hiệu
quả.
Cách thứ hai: Phân chia mỗi người một nhóm ký tự, khi đó mỗi người chỉ
mang sách thuộc nhóm mình đi sắp xếp.
Cách thứ ba: Sắp xếp sách trước khi mang đi đặt vị trí. Mỗi người đảm
nhận một số ký tự:
Nếu cuốn sách đang cầm của mình thì đặt vào chồng sách của mình.
Nếu của người khác thì chuyển cho người đấy.
Sau đó mang sách đi sắp xếp.
-> cách thứ ba hiệu quả nhất.
Ý nghĩa của tính toán song song
Thực hiện công việc trong khoảng thời gian ngắn hơn -> tiết kiệm thời

gian.
Thực hiện được với số lượng phép toán lớn hơn -> giải quyết được bài
toán lớn.
Hỗ trợ giải quyết nhiều công việc đồng thời.
2. Các ứng dụng trong hệ thống máy tính
Khi các hệ thống máy tính trở nên rộng khắp và sự tính toán trải rộng trên
toàn mạng, thì các vấn đề xử lý song song cũng được ứng dụng nhiều hơn. trong
việc bảo mật máy tính, việc phát hiện xâm phạm là một thử thách đáng kể.
Trong trường hợp phát hiệ xâm phạm mạng, dữ liệu được thu thập từ các trang
phân tán và phải được phân tích một cách nhanh chóng. Việc không thể thu thập
được dữ liệu này tại vị trí trung tâm để phân tích đòi hỏi các thuật giải song song
5
và phân tán. Trong lĩnh vực mật mã, ứng dụng đặc biệt nhất của tính toán song
song trên Internet tập trung vào việc phân tích các số nguyên cực lớn.
Các hệ thống nhúng tăng dựa trên các thuật toán điều khiển phân tán để
hoàn thành một số tác vụ. Một ô tô hiện đại gồm mười bộ xử lý liên lạc với nhau
để thực hiện các tác hợp trong việc tối ưu hoá quá trình tiến hành và sự thực
hiện. Trong các hệ thống này, các thuật toán phân tán và song song truyền thống
để lựa chọn vật dẫn đầu và tập độc lập lớn nhất, vv... thường được sử dụng.
3. Các loại máy tính song song
3.1. Phân loại theo Flynn
Dù là máy tính tuần tự hay song song đều phải thực hiện bằng cách thực
thi các chỉ lệnh trên dữ liệu
Dựa vào số lượng dòng lệnh và số lượng dòng dữ liệu thực thi cùng tại
một thời điểm mà Micheal Flynn đã phân các máy tính thành 4 loại:
- Máy tính SISD: Đơn dòng lệnh-đơn dòng dữ liệu
- Máy tính MISD: Đa dòng lệnh – đơn dòng dữ liệu
- Máy tính SIMD: Đơn dòng lệnh – đa dòng dữ liệu
- Máy tính MIMD: Đa dòng lệnh – đa dòng dữ liệu
3.2. Kiến trúc bộ nhớ của máy tính song song

- Hệ thống đa bộ xử lý bộ nhớ chia sẻ
- Hệ thống đa máy tính bộ nhớ phân tán
- Hệ thống bộ nhớ chia sẻ phân tán
4. Các mô hình lập trình song song
Lập trình song song là sự trừu tượng hoá trên các kiến trúc phần cứng và
bộ nhớ của máy tính song song. Mô hình lập trình song song không đặc tả riêng
cho một loại kiến trúc bộ nhớ hay máy tính cụ thể. Một các lý thuyết thì một loại
mô hình lậo trình song song có thể được thể hiện dưới một phần cứng bất kỳ.
4.1. Lập trình chia sẻ bộ nhớ
Trong mô hình lập trình chia sẻ bộ nhớ, các tác vụ chia sẻ không gian địa
chỉ chung nơi các tác vụ đọc và ghi dữ liệu.
Các cơ chế khác nhau như locks/semaphores có thể được dùng để điều
khiển việc truy cập tới bộ nhớ chia sẻ.
Một ưu điểm của mô hình này theo quan điểm của người lập trình đó là
không có quyền sử hữu dữ liệu riêng nên không cần phải đặc tả việc truyền
thông dữ liệu giữa các tác vụ. Việc phát triển chương trình có thể được đơn giản
hoá.
Nhược điểm quan trọng của mô hình là các ngôn ngữ của việc thực hiện
nó trở nên khó hiểu và khó quản lý vùng dữ liệu hơn.
4.2. Lập trình chia sẻ bộ nhớ dựa vào tiến trình
Tiến trình (processes) là một bản thể của chương trình đang thực thi. Yêu
cầu của xử lý song song là khả năng tạo ra một số tiến trình cần thiết cho bài
toán và khả năng huỷ bỏ tiến trình khi phần việc xử lý song song kết thúc để giải
phóng các tài nguyên mà tiến trình đã chiếm giữ và không cản trở hoạt động của
những tiến trình khác.
6

×