ỨNG DỤNG LẬP TRÌNH SONG SONG ĐỂ NÂNG CAO TỐC ĐỘ XỬ LÝ CỦA CHƯƠNG TRÌNH - Pdf 26

Bài tập lớn: Hệ Điều Hành
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚN
MÔN: HỆ ĐIỀU HÀNH
Đề Tài: ỨNG DỤNG LẬP TRÌNH SONG SONG
ĐỂ NÂNG CAO TỐC ĐỘ XỬ LÝ CỦA CHƯƠNG TRÌNH
Giảng viên hướng dẫn : Ts. Vũ Song Tùng
Sinh viên thực hiện :
1, Trần Văn Phú - 20149513
2,
3,
Hà Nội, 11/2014
Đề tài: Ứng dụng lập trình song song Trang 1
Bài tập lớn: Hệ Điều Hành
LỜI NÓI ĐẦU
Sự phát triển của Công Nghệ Thông tin, tin học gắn liền với sự phát triển không
ngừng của các ngôn ngữ lập trình nhằm đáp ứng nhu cầu ngày càng lớn về công nghệ
thông tin của con người.Có rất nhiều cuộc bùng nổ về kĩ thuật lập trình nhằm thỏa mãn
được cao nhất yêu cầu của con người , nhờ đó các mô hình ngôn ngữ lập trình trở nên
đa dạng và vô cùng phong phú.Bên cạnh đó là tốc độ xử lý xử lý thông tin là những
vấn đề mà chúng ta đang muốn nâng cao, nhất là trong những ứng dụng yêu cầu thời
gian thực hay là những thuật toán lớn cần 1 khoảng thời gian mới có thể thực hiện
được. Là những sinh viên của Viện Điện tử viễn thông ,chúng em rất muốn tìm hiểu về
các loại ngôn ngữ lập trình, một kỹ thuật lập trình mới.
Với những kiến thức chưa đầy đủ của chúng em về chuyên ngành, cũng như khả năng
tìm hiểu chưa sâu, nên bài em làm của mình chúng em vẫn còn nhiều sai sót , vì vậy
chúng em mong thầy hướng dẫn em để bài viết được hoàn thiện hơn.
Em xin chân thành cảm ơn.

Đề tài: Ứng dụng lập trình song song Trang 2

- Phối hợp và trao đổi giữa các bộ vi xử lý.
1.2 Phạm vi nghiên cứu
Trong khuân khổ của bài tập lớn môn Hệ Điều Hành, chúng em thực hiện 02 kịch bản
ứng dụng phương pháp lập trình song song để chứng minh việc áp dụng lập trình song
song vào các chương trình để nâng cao tốc độ xử lý, trong đó bao gôm:
 Xử dụng thư viện mã nguồn mở OpenMP vào bài toán cộng ma trận vuông kịch
thước lớn: Trong mô hình này chúng em xử dụng các ma trân với kịch thước
lớn (500x500), đồng thời đo đạc khoảng thời gian tính trong những lần chạy thử
và tính toán các thông số về thời gian trung bình cũng như thời gian đỉnh.
 Ứng dụng lập trình đa luồng (thread) vào bài toán chia sẽ dữ liệu giữa các máy
PC trong một mạng cục bộ (local): Trong mô hình này, chúng em xử dụng 5
luồng dữ liệu để điều khiển 5 cặp giao thức client/server trong giao thức
TCP/IP để chia sẻ file cho nhau.
Đề tài: Ứng dụng lập trình song song Trang 7
Bài tập lớn: Hệ Điều Hành
Toàn bộ source code mã nguồn chúng em viết trên hệ điều hành mã nguồn mở Linux
và xử dụng ngôn ngữ lập trình C để viết.
1.3 Quy trình thực hiện
1.3.1 Ứng dụng lập trình song song vào bài toán cộng ma trận
1.3.2 ứng dụng lập trình song song vào giao thức chia sẻ dữ liệu
Đề tài: Ứng dụng lập trình song song Trang 8
Bài tập lớn: Hệ Điều Hành
CHƯƠNG 2 TỔNG QUAN LÝ THUYẾT
2.1 Tổng quan về lập trình song song
2.1.1 mô hình tính toán song song
Tính toán song song
Như chúng ta đã thấy các phần mềm phổ biến ngày nay hầu hết đều được viết trên cơ
sở của tính toán tuần tự. Các phần mềm này thường được thực hiện trên một máy tính
đơn với duy nhất một bộ xử lý. Vấn đề ở đây được giải quyết thông qua một chuỗi các
lệnh tuần tự được thực hiện bởi một bộ xử lý. Tại một thời điểm chỉ có một lệnh được

2.1.2 Các mô hình song song
 Multi-computer: Với mô hình này thì nhiều máy tính được kết nối với nhau để
cùng xủ lý một chương trình duy nhất.
 Multi-processor/Multi-core: Ở mô hình này xử nhiều bọ vi xử lý trong cùng
một máy tính hay một bộ vi xử lý gồm nhiều CPU để chạy một chương trình.
 Hệ thống lai ghép: Là việc xử dụng kết hợp cả hai mô hình trên. Dùng để tạo
nên một hệ thống tính toán khổng lồ và phức tạp.
2.2 Thư viện lập trình song song mã nguồn mở OpenMP
2.2.1 Giới thiệu về OpenMP
Theo Wikipedia:
OpenMP (Open Multi-Processing) là một giao diện lập trình ứng dụng
API (Application programming interface) hỗ trợ đa nền tảng dựa trên cấu trúc chia sẻ
bộ nhớ chung, đa ngôn ngữ lập trình C, C++, Fortran và hầu hết các bộ kiến trúc vi
xử lý và hệ điều hành Linux, Unix, Mac OS X, nền tảng Microsoft Windows.
Đề tài: Ứng dụng lập trình song song Trang 10
Bài tập lớn: Hệ Điều Hành
Nó bao gồm :
Các chỉ thị biên dịch (Compiler directives)
Các thư viện Runtime (Library rountines)
Các biến môi trường (Environment variables)
Hình 1: Kiến trúc OpenMP
2.2.2 Mô hình lập trình song song
Song song hóa dựa trên cơ chế luồng (Thread based parallelism)
Trong mô hình trên chương trình xử lý trên bộ nhớ toàn cục bao gồm nhiều luồng thực
thi đồng thời. OpenMP dựa vào sự tồn tại của nhiều luồng trên một mô hình lập trình
chia sẻ bộ nhớ chung.
Mô hình song song hiện (Explicit Parallelism)
Mô hình trên là một mô hình lập trình không tự động. Người lập trình có quyền điều
khiển việc song song hóa một cách độc lập
Mô hình Fork-Join

đơn độc mở rộng với các thử tục và các tệp mã nguồn
Đề tài: Ứng dụng lập trình song song Trang 12
Bài tập lớn: Hệ Điều Hành
❖ Phạm vi động (Dynamic Extent): Phạm vi động của chỉ thị bao gồm phạm vi
tĩnh của của chỉ thị và phạm vi của các chỉ thị mồ côi
OpenMP có rất nhiều chỉ thị như: atomic, barrier, critical, flush, for, master, ordered,
parallel, section, single, thread,private.
Các cấu trúc thường gặp :
➢ Cấu trúc chia sẻ
➢ Cấu trúc đồng bộ
Cấu trúc chia sẻ
Cấu trúc chia sẻ công việc dùng để chia việc thực hiện công việc trong vùng song song
cho các luồng trong tập các luồng thực hiện công việc cho bởi vùng song song. Cấu
trúc chia sẻ công việc phải được bao bọc bởi một vùng song song để có thể thực hiện
song song và cấu trúc này có thể được thực hiện bởi tất cả các luồng trong tập các
luồng hoặc chỉ một số luồng trong tập các luồng thực thi vùng song song. Có ba loại
cấu trúc chia sẻ công việc đó là cấu trúc DO/for, cấu trúc SECTIONS và cấu trúc
SINGLE.
2.3 Luồng(thread) trong lập trình song song
2.3.1 Tổng quan về luồng
Một luồng thường được gọi là quá trình nhẹ (lightweight proces-LWP), là một đơn vị
cơ bản của việc sử dụng CPU. Nó hình thành gồm: một định danh luồng (threadID),
một bộ đếm chương trình, tập thanh ghi và ngăn xếp. Nó chia sẻ với các luồng khác
thuộc cùng một quá trình phần mã, phần dữ liệu, và tài nguyên hệ điều hành như các
tập tin đang mở và các tín hiệu. Một quá trình truyền thống (hay quá trình nặng) có
một luồng điều khiển đơn. Nếu quá trình có nhiều luồng điều khiển, nó có thể thực
hiện nhiều hơn một tác vụ tại một thời điểm.
Một số gói phần mềm chạy trên các máy để bàn PC là đa luồng. Điển hình, một ứng
dụng được cài đặt như một quá trình riêng rẻ với nhiều luồng điều khiển. Một trình
duyệt Web có thể có một luồng hiển thị hình ảnh, văn bản trong khi một luồng khác

đa luồng, cụ thể là 5 luồng để truyền dữ liệu. Trong đó mỗi luồng dữ liệu là một cặp
clien/server.
3.2.2 Thực hiện
Sau khi phân chia khối dữ liệu cần truyền thành các khung nhỏ có kích thước tùy chọn
thì đưa chúng là bộ đệm truyền xử dụng chung. Tiếp đến là khởi tạo các luồng
Đề tài: Ứng dụng lập trình song song Trang 15
Bài tập lớn: Hệ Điều Hành
CHƯƠNG 4 ĐÁNH GIÁ KẾT QUẢ
4.1 DD
Đề tài: Ứng dụng lập trình song song Trang 16
Bài tập lớn: Hệ Điều Hành
CHƯƠNG 5 KẾT LUẬN – HƯỚNG PHÁT TRIỂN
5.1 Các kết quả đạt được
Trong đồ án này em đã hoàn thành:
- Thiết kế thành công nút mạng cảm biến không dây chuẩn Zigbee
- Thiết kế thành công 2 cơ cấu chấp hành trong hệ thống: Thiết bị điều khiển giàn tưới
phong lan và đồng hồ cảnh báo cháy rừng
- Phát triển các ứng dụng cho mạng cảm biến không dây, điều phối hoạt động của các
cơ cấu chấp hành
- Thực thi thành công giải thuật thức – ngủ phục vụ tiết kiệm năng lượng cho nút mạng
cảm biến không dây
- Triển khai thực nghiệm dài hạn hệ thống tại vườn quốc gia Cúc Phương
Nội dung chưa hoàn thành:
- Hiện em chưa thực thi thành công giải thuật điều khiển công suất phát cho nút mạng
cảm biến. Em vẫn đang tiến hành hạng mục này và cố gắng thực thi trên phần cứng.
5.2 Hướng phát triển đề tài
Với các tiêu chí đặt ra, hệ thống cần được hoàn thiện theo một số hướng:
- Thực thi giải thuật điều khiển công suất cho nút mạng nhằm tiết kiệm năng lượng
- Tối ưu hệ thống cho thân thiện hơn với người sử dụng
- Mở rộng cho các ứng dụng khác


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status