1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình song song Nguyên lý và phương pháp lập trình

37 431 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 3,59 MB

Nội dung

Xu hướng phát triển của CPU Sự ra đời và phát triển mạnh mẽ của các dòng chip đa lõi Mutil-Core tạo cơ hội cho sự ra đời của tính toán và lập trình song song... Lập trình song song Khá

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

K H O A K H O A H Ọ C M Á Y T Í N H

Trang 2

BÁO CÁO ĐỒ ÁN:

LẬP TRÌNH SONG SONG

Trang 4

I Giới Thiệu

1 Xử lý song song.

2 Xu hướng phát triển của CPU.

L P TRÌNH SONG SONG Ậ

Trang 5

1 Xử lý song song

I M Đ U Ở Ầ

Trang 6

1 Xử lý song song

 Ứng dụng của xử lý song song trong cuộc sống:

I M Đ U Ở Ầ

Trang 7

1 Xử lý song song

I M Đ U Ở Ầ

Nhiều bộ xử lý cùng kết hợp với nhau để giải quyết cùng một bài

toán.

Độ phức tạp lớn hơn nhiều so với xử lý tuần tự.

Tại mỗi thời điểm chỉ thực hiện được một phép toán.

Trang 8

1 Xử lý song song

 Yếu tố chính dẫn đến xây dựng hệ thống xử lý song song:

hợp lý

 Công nghệ mạch tích hợp phát triển -> tạo ra những hệ thống có hàng triệu transitor

I M Đ U Ở Ầ

Trang 9

1 Xử lý song song

 Đinh luật Moore :

“Số lượng transistor trên mỗi đơn vị inch vuông sẽ tăng lên gấp đôi sau mỗi năm”

I M Đ U Ở Ầ

Trang 10

2 Xu hướng phát triển của CPU

N: số lượng transistor

C: điện dung

V: số vol

f: tần số

Xu hướng hiện nay ↑N ↓C ↓V

o Sẽ như thế nào nếu tang đồng thời f, N ?

I M Đ U Ở Ầ

Trang 11

2 Xu hướng phát triển của CPU

 Mức tiêu hao năng lượng tăng.

 Đã đạt tới giới hạn  xung nhịp CPU không giúp tăng tốc hệ thống như trước nữa

I M Đ U Ở Ầ

Trang 12

2 Xu hướng phát triển của CPU

 Do những rào cản trên nên CPU đơn lõi

 Hiệu năng sẽ tăng rất chậm (5 – 10%)

 Tốt cho phần mềm truyền thống (chạy tuần tự)

 Giải pháp của nhà sản xuất phần cứng để tăng tốc CPU 100x là tăng số lõi/nhân thay vì tăng f.

 mở ra một kỉ nguyên song song mới

I M Đ U Ở Ầ

Trang 13

2 Xu hướng phát triển của CPU

 Sự ra đời và phát triển mạnh mẽ của các dòng chip đa lõi (Mutil-Core) tạo cơ hội cho sự ra đời của tính toán và lập trình song song.

I M Đ U Ở Ầ

Trang 14

II Các Khái Niệm

L P TRÌNH SONG SONG Ậ

Trang 15

1 Lập trình song song

Khái niệm: Lập trình song song là một mô hình cho phép các chương trình được biên dịch là thực hiện

song song đồng thời Từ đó giúp tăng tính toán của máy tính và làm giảm thời gian thực hiện chương trình.

II CÁC KHÁI NI M Ệ

Trang 16

1 Lập trình song song

II CÁC KHÁI NI M Ệ

Tính toán phân tán là những tính toán được thực hiện trên

cơ sở kết hợp khả năng tính toán và truyền thông của hai hay nhiều máy tính trên mạng.

Trong môi trường UNIX, WINDOWS chúng ta có thể tạo ra nhiều

tiến trình khác nhau trong hệ thống và chúng được sử dụng để mô

phỏng lập trình đa bộ xử lý

Trang 17

1 Lập trình song song

• Lập trình song song trên Java

• Lập trình song song trên C#.NET

song song: OpenMP, MPI, MPICH, PyMPI…

II CÁC KHÁI NI M Ệ

Trang 18

2 Tính toán song song

 Là chia công việc ra thành các phần nhỏ và thực hiện đồng thời bởi một hệ thống gồm nhiều máy tính kết nối với nhau ( Multi-Computer ) hoặc nhiều bộ vi xử lý ( Multi-Processor ) hay bộ vi

xử lý đa nhân ( Multi-Core ).

II CÁC KHÁI NI M Ệ

Trang 19

2 Tính toán song song

Multi-Computer

II CÁC KHÁI NI M Ệ

Trang 20

2 Tính toán song song

Multi-Processor

II CÁC KHÁI NI M Ệ

Trang 21

2 Tính toán song song

Multi-core

II CÁC KHÁI NI M Ệ

Trang 22

3 Process

 Tiến trình là gì?

 Tiến trình là một chương trình đang chạy:

- Bộ nhớ được cấp phát bởi hệ điều hành.

- Thường không có sự chia sẽ bộ nhớ giữa các tiến trình với nhau.

II CÁC KHÁI NI M Ệ

Trang 23

4 Thread

Tiểu trình/luồng

- Chạy trong không gian bộ nhớ của tiến trình.

 Nó có bộ đếm chương trình ( program counter ) và ngăn xếp ( stack frame ) riêng.

Ví dụ: Trong chương trình Word có các luồng: luồng ghi nhận nhập kí tự, luồng kiểm tra chính tả, luồng hiển thị lên màn

hình, luồng quản lý giao diện…

II CÁC KHÁI NI M Ệ

Trang 24

4 Thread

New – Mới được tạo ra

Ready (Runnable) – Sẵn sàng thực thi

Running – Đang thực thi

Waiting – Trạng thái ngừng để chờ

Terminated– Kết thúc

II CÁC KHÁI NI M Ệ

Trang 26

III ĐẶC ĐIỂM

L P TRÌNH SONG SONG Ậ

Trang 27

1 QUÁ TRÌNH SONG SONG HÓA

 Gồm 3 giai đoạn chính:

• Phân chia chương trình thành các công việc con (Sub-task Decomposition)

• Phân tích sự phụ thuộc (Dependence Analysic)

• Định thời các công việc (Task Scheduling)

III Đ C ĐI M Ặ Ể

Trang 28

2 CƠ CHẾ MUTIL-THREADING

• Các thread chạy bên trong máy ảo

JVM(Java) hoặc trình biên dịch song song

(Ngôn ngữ khác)

• Mỗi thread có biến dữ liệu và ngăn xếp

riêng được cấp phát bởi JVM JVM chịu sự

quản lý của Hệ điều hành

III Đ C ĐI M Ặ Ể

Trang 29

3 CƠ CHẾ MUTIL-TASKING

• Hệ điều hành cấp phát bộ nhớ cho

từng ứng dụng riêng biệt Vì vậy các

biến và vùng dữ liệu của các chương

trình (tiến trình) khác nhau là khác nhau

III Đ C ĐI M Ặ Ể

Trang 30

4 ƯU ĐIỂM VÀ KHUYẾT ĐIỂM

ƯU ĐIỂM

+ Giao tiếp và chuyển đổi nhanh.

+ Tách công việc để xử lý song song, tiết kiệm thời gian.

+ Tận dụng tối đa sức mạnh đa lõi.

+ Khả năng mở rộng và tăng tốc độ tính toán.

KHUYẾT ĐiỂM

- Cơ chế giao tiếp, chuyển đổi phức tạp.

- Mất thời gian cho việc quản lý đồng bộ dữ liệu.

- Khó lập trình, kiểm tra lỗi.

- Hình thành hệ thống phức tạp đòi hỏi trình độ cao để quản lý.

III Đ C ĐI M Ặ Ể

Trang 31

5 ĐẶC ĐIỂM CỦA THREAD

a QUYỀN ƯU TIÊN (PRIORITY)

b ĐỒNG BỘ HÓA (SYNCHRONIZATION)

c GIAO TIẾP (COMMUNICATION)

III Đ C ĐI M Ặ Ể

Trang 32

a QUYỀN ƯU TIÊN (PRIORITY)

 Mỗi thread có một độ ưu tiên khác nhau và có mối quan hệ với nhau Thread có quyền ưu tiên cao có thể chuyển sang hoặc gọi một thread khác gọi là Context Switching.

• Một thread có thể tự động sinh ra thread khác

• Thread có độ ưu tiên cao hơn có thể giành quyền sử dụng CPU từ thread ưu tiên thấp hơn

• Nếu quyền ưu tiên ngang nhau thì xử lý theo cơ chế của hệ điều hành

III Đ C ĐI M- 5 Đ c đi m c a thread Ặ Ể ặ ể ủ

Trang 33

b ĐỒNG BỘ HÓA (SYNCHRONIZATION)

được đồng bộ hóa trong Java sử dụng thông qua một Monitor (Semaphore – “Cột tín hiệu”) Chỉ có một thread được sử dụng một monitor vào bất kì một khoảng thời gian nào

 Có hai cách để đồng bộ hóa các thread:

• Sử dụng method được đồng bộ hóa Trong Java, mỗi thread có một monitor cho đến khi từ khóa Synchronization được gọi

• Sử dụng phát biểu (Statement) được đồng bộ hóa Phát biểu đồng bộ hóa chứa block được đồng bộ hóa, bên trong đặt những đối tượng và những method được đồng bộ hóa

III Đ C ĐI M- 5 Đ c đi m c a thread Ặ Ể ặ ể ủ

Trang 34

IV MINH HỌA TRÊN JAVA

 MỘT SỐ VÍ DỤ:

• Khởi dựng thread bằng Runnable Interface và extends lớp thread

• Tạo và bắt đầu một thread mới

• Dùng nhiều thread trong một chương trình

• Cài đặt quyền ưu tiên cho thread

• Thực thi đồng bộ hóa các thread

- Đồng bộ dùng method.

- Đồng bộ dùng phát biểu đồng bộ hóa

• Giao tiếp giữa các thread

• Sử dụng thread trong Swing

L P TRÌNH SONG SONG Ậ

Trang 35

IV MINH HỌA TRÊN JAVA

L P TRÌNH SONG SONG Ậ

Ví dụ cách tạo luồng bằng cách kế thừa từ lớp Thread :

+ Khai báo lớp mới ThreadX kế thừa từ lớp Thread và override phương thức run() :  + Tạo các đối tượng thuộc lớp ThreadX và start() chúng :

Trang 36

IV MINH HỌA TRÊN JAVA

+ Kết quả ta nhận được như sau :

L P TRÌNH SONG SONG Ậ

Trang 37

Kết Thúc !!!

L P TRÌNH SONG SONG Ậ

Ngày đăng: 10/07/2016, 10:04

TỪ KHÓA LIÊN QUAN

w