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

BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC NGÔN NGỮ THUẬT TOÁN VÀ CÁC ĐIỂM CẢI TIẾN CHỦ YẾU ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG NHANH HƠN

31 310 0

Đ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 31
Dung lượng 301 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xử lý song song là quá trình xử lý gồm nhiều tiến trình được kích hoạt đồng thời vàcùng tham gia giải quyết một vấn đề, nói chung là thực hiện trên những hệ thống đa bộ xử lý.. 1.1.2 Sự

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

  

TIỂU LUẬN MÔN HỌC

HỆ TIN HỌC PHÂN TÁN

Đề tài:

BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC

NGÔN NGỮ THUẬT TOÁN

VÀ CÁC ĐIỂM CẢI TIẾN CHỦ YẾU ĐỂ THUẬT TOÁN

LAMPORT HOẠT ĐỘNG NHANH HƠN

GVHD: PGS.TS LÊ VĂN SƠN HVTH: NGUYỄN THÀNH THỦY

Đà Nẵng, tháng 7 năm 2009.

Trang 2

MỤC LỤC

LỜI NÓI ĐẦU 3

CHƯƠNG 1 CÁC CƠ SỞ LÝ LUẬN CÓ LIÊN QUAN 4

1.1 Xử lý song song và xử lý tuần tự 4

1.1.1 Tổng quan 4

1.1.2 Sự khác biệt giữa xử lý song song và xử lý tuần tự 4

1.1.3 Tại sao phải xử lý song song ? 5

1.2 Vấn đề đồng bộ hóa trong hệ phân tán 5

1.2.1 Thời gian lôgic và trật tự sự kiện từng phần (Lamport) 5

1.2.2 Gắn thời gian lôgic với các sự kiện 7

1.2.3 Thuật toán đóng dấu thời gian của Lamport 8

CHƯƠNG 2 BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC NGÔN NGỮ THUẬT TOÁN 10

2.1 Tính toán song song và phân tán 10

2.1.1 Khái niệm 10

2.1.2 Các hệ thống song song 10

2.1.3 Môi trường lập trình 10

2.1.4 Các mô hình và thuật toán song song 11

2.2 Các chiến lược song song hoá phổ biến 11

2.2.1 Song song hoá kết quả 11

2.2.2 Song song hoá đại diện 13

2.2.3 Song song hoá chuyên biệt 14

2.3 Biểu thức song song trong các ngôn ngữ thuật toán 15

2.3.1 Ngôn ngữ CSP (Communicating Sequential Processes) 16

2.3.2 Ngôn ngữ ADA 17

2.4 Một số thư viện và công cụ hỗ trợ lập trình song song khác 19

CHƯƠNG 3 CÁC ĐIỂM CẢI TIẾN CHỦ YẾU ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG NHANH HƠN 21

3.1 Thuật toán giả phân tán: Hàng đợi tập trung 21

3.2 Thuật toán Lamport: Hàng đợi phân tán 22

3.3 Cải tiến thuật toán Lamport (Thuật toán Ricart và Agrawala) 27

KẾT LUẬN 30

TÀI LIỆU THAM KHẢO 31

Trang 3

LỜI NÓI ĐẦU

uộc cách mạng khoa học và công nghệ đang diễn ra một cách sôi động trênphạm vi toàn thế giới, thúc đẩy loài người nhanh chóng bước sang một kỷnguyên mới, đó là kỷ nguyên của nền văn minh dựa trên cơ sở của công nghiệptri thức Mở đầu cho cuộc cách mạng khoa học và công nghệ này là sự ra đời và pháttriển ồ ạt của máy vi tính và các phương tiện xử lý thông tin khác

C

Cùng với sự phát triển nhanh chóng số lượng máy vi tính cũng như nhu cầu traođổi thông tin trong mọi hoạt động xã hội loài người đòi hỏi sự phát triển đồng bộ cácphương pháp truyền thông Mạng máy tính ra đời làm cho thế giới của chúng tadường như nhỏ lại và mọi người trở nên gần nhau hơn

Trên thực tế, một xu hướng kỹ thuật mới được hình thành - xu hướng phân tán cácthành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thông tintrên cơ sở mạng máy tính Song để khai thác có hiệu quả toàn bộ hệ thống, vấn đềquan trọng hàng đầu cần phải tính đến là các tài nguyên và chiến lược khai thác, sửdụng chúng một cách tối ưu nhất Bản thân người sử dụng thuần tuý không thể tự xâydựng nên chiến lược đó được, mà nó là chức năng chủ yếu của các hệ thống tin họcphân tán đồng thời cũng chính là đối tượng nghiên cứu của báo cáo này

Phạm vi và nhiệm vụ nghiên cứu của đề tài là phân tích đặc điểm của biểu thứcsong song và phân tán trong các ngôn ngữ thuật toán và các điểm cải tiến chủ yếu đểthuật toán Lamport hoạt động nhanh hơn nhằm phục vụ công tác lưu chuyển, xử lý dữliệu qua mạng dựa trên phương pháp lý thuyết

Về mặt bố cục, ngoài phần mở đầu, tài liệu tham khảo và mục lục, báo cáo đượcchia làm 3 chương, trong đó:

Chương 1: trình bày các vấn đề tổng quan về hệ phân tác và các cơ sở lý luận có

Trang 4

CHƯƠNG 1 CÁC CƠ SỞ LÝ LUẬN CÓ LIÊN QUAN

1.1 Xử lý song song và xử lý tuần tự

Xử lý song song từ xa xưa cho đến gần đây là lãnh vực cao cấp hầu như chỉ dành cho các nhà khoa học Có ít nhất 2 nguyên nhân:

- Xử lý song song đòi hỏi siêu máy tính đắt tiền, chỉ chính phủ hoặc tập đoàn lớn mới kham nổi

- Nhà khoa học mới cần tính toán cao cấp, như trong nghiên cứu vật lý hạt và vũ trụ,sinh học cấu tạo, khí tượng địa cầu, khoa học máy tính

Gần đây nhờ sự phổ biến của phần cứng rẻ như CPU đa lõi, phần mềm tiện dụng như Erlang, đại chúng bắt đầu biết đến xử lý song song

Xử lý song song là quá trình xử lý gồm nhiều tiến trình được kích hoạt đồng thời vàcùng tham gia giải quyết một vấn đề, nói chung là thực hiện trên những hệ thống đa bộ

xử lý Là phân chia bài toán to thành nhiều bài toán nhỏ, rồi giải cùng lúc, nhờ đó tốc độgiải bài toán gốc tăng lên

Ví dụ: Tính tích phân trong khoảng [0, 100], thì có thể phân làm 2 bài toán nhỏ là tính

tích phân trong khoảng [0, 50] và [50, 100], rồi cộng 2 kết quả lại

1.1.2 Sự khác biệt giữa xử lý song song và xử lý tuần tự

Trong tính toán song song, một số bộ xử lý cùng kết hợp với nhau để giải quyết cùngmột vấn đề cho nên giảm được thời gian xử lý vì mỗi thời điểm có thể có nhiều phép toánđược thực hiện đồng thời

Trong tính toán tuần tự với một bộ xử lý thì mỗi thời điểm chỉ thực hiện được mộtphép toán

Mục đích của xử lý song song là tận dụng các khả năng của các hệ đa bộ xử lý để thựchiện những tính toán nhanh hơn trên cơ sở sử dụng nhiều bộ xử lý đồng thời Cùng vớitốc độ xử lý nhanh hơn, việc xử lý song song cũng sẽ giải quyết được những bài toán lớnhơn

Trang 5

1.1.3 Tại sao phải xử lý song song ?

Nhiều lĩnh vực mới như đồ họa máy tính, trí tuệ nhận tạo, phân tích số, v.v đòi hỏiphải xử lý một khối lượng dữ liệu rất lớn, những vấn đề về xử lý ngôn ngữ tự nhiên, nhậndạng, xử lý ảnh ba chiều (3-D), dự báo thời tiết v.v đều đòi hỏi phải xử lý dữ liệu với tốcđộc rất cao, với khối lượng dữ liệu rất lớn Hầu hết những bài toán này, những máy tính

xử lý tuần tự là không đáp ứng yêu cầu thực tế Do đó cần phải có những hệ thống máytính thật mạnh mới đáp ứng được những yêu cầu của thực tế

Mặc dù tốc độ xử lý của các Bộ xử lý tăng nhiều trong những năm qua, nhưng do giớihạn về vật lý nên khả năng tính toán của chúng không thể tăng mãi được Điều này dẫntới là muốn tăng được khả năng tính toán của các hệ thống máy tính thì đích cuối cùng làphải khai thác được khả năng xử lý song song của chúng Ngày càng xuất hiện nhiều bàitoán mà những hệ thống đơn một bộ xử lý không đáp ứng được yêu cầu xử lý về thờigian, do đó đòi hỏi phải sử dụng những hệ thống đa bộ xử lý và đòi hỏi phải xử lý songsong

1.2Vấn đề đồng bộ hóa trong hệ phân tán

1.2.1. Thời gian lôgic và trật tự sự kiện từng phần (Lamport)

Trong các hệ tin học tập trung, vấn đề đồng bộ hóa được giải quyết thông qua cơ chếloại trừ tương hỗ Cơ chế này cho phép xác lập trật tự hoàn toàn các sự kiện Tuy nhiên,trong thực tế một số hệ thống khi đồng bộ hóa chỉ đòi hỏi trật tự từng phần Chính vì vậy,trật tự hóa từng phần giữa các sự kiện mà tiến trình của nó cần phải đồng bộ là vấn đề cầnphải quan tâm giải quyết

Trong hệ phân tán, việc đồng bộ hóa chủ yếu yêu cầu thiết lập một trật tự giữa các sựkiện Giữa các trạm khác nhau, trật tự đó có thể thể hiện thông qua việc trao đổi cácthông điệp với nhau

Trang 6

Trở lại năm 1979, Lamport đã đưa ra rằng hai sự kiện từ các trạm khác nhau chỉ cóthể có trật tự nếu chúng được tách rời với nhau bằng cách gửi và nhận thông điệp Ngượclại, cho dù một sự kiện xảy ra trước sự kiện khác theo thời gian, không có cách nào cho

sự kiện thứ hai có thể quan sát trật tự này và vì vậy, không có cách nào cho sự chính xáccủa nó phụ thuộc vào nó Giả định ở đây là không có sự quan sát bên ngoài của trật tự sựkiện Nếu sự chính xác của hệ thống phụ thuộc vào trật tự được quan sát bởi con người,

ví dụ, thì sự quan sát Lamport không áp dụng Tuy nhiên, sự chính xác trật tự chỉ phụcthuộc vào sự đồng bộ bên trong của các sự kiện và vì thế định nghĩa của Lamport có thể

a “xảy ra trước” c (a  c) - bắc cầu -

Trang 7

Trật tự các sự kiện được định nghĩa như sau:

Nếu A và B là hai sự kiện của cùng một trạm và A xảy ra trước B thì ta có AB.Nếu A là phát thông điệp từ một trạm nào đó và B là nhận thông điệp thì ta có AB.Nếu AB và BC, thì AC

Nếu hai sự kiện A và B xảy ra ở hai tiến trình riêng biệt và không trao đổi thông điệpthì ta không thể nói A B hay B A Các tiến trình này được gọi là song song (A||B)

1.2.2 Gắn thời gian lôgic với các sự kiện

Các đồng hồ lôgic: gán một số cho mỗi sự kiện cục bộ nhưng không liên quan đếnthời gian vật lý

Hệ thống các đồng hồ lôgic phải chính xác :

Hay nói cách khác:

Làm thế nào chúng ta có thể thực thi các đồng hồ thỏa mãn Điều kiện Đồng hồ? Bằngthuật toán đóng dấu thời gian của Lamport – cung cấp một tập hợp các quy luật thực thiđơn giản

 sự kiện a,b : nếu a  b thì C(a) < C(b)

Điều kiện đồng hồ

a Pi

Trang 8

1.2.3 Thuật toán đóng dấu thời gian của Lamport

Đồng hồ lôgic là thuật toán cho phép đóng dấu cho từng sự kiện trong hệ phân tán đểvới mỗi cặp sự kiện A và B ta có: nếu A có trước B (A  B) thì đồng hồ lôgic của A nhỏhơn đồng hồ lôgic của B

Các quy luật:

Quy luật 1: Mỗi tiến trình Pi gia tăng Ci thêm một trị số giữa hai sự kiện thành công

Quy luật 2: Mỗi tiến trình Pi đóng dấu thời gian cho các thông điệp m gửi đi, Tm =

Thỉnh thoảng chúng ta cần đến trật tự toàn cục của các sự kiện

Trật tự toàn cục sắp xếp thứ tự cho từng sự kiện để tất cả các trạm đồng ý với trật tựnày

Trang 9

Lamport định nghĩa trật tự toàn cục dựa trên quan hệ “có trước”, nó gán cho mỗi trạmmột số duy nhất và sau đó sử dụng số này để lập trật tự cho các sự kiện không được sắpxếp thứ tự bằng quan hệ “có trước”

Trật tự nhất quán của các sự kiện phát:

3 2

2

Trang 10

CHƯƠNG 2 BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC

NGÔN NGỮ THUẬT TOÁN2.1 Tính toán song song và phân tán

2.1.1 Khái niệm

Tính toán song song và phân tán (Parallel and Distributed Computing) là một dạngtính toán hiệu năng cao (high performance computing) bằng cách tận dụng sức mạnh tínhtoán của một tập các máy tính hoặc bộ xử lý được kết nối thông qua các hệ thống mạngchuyên dụng (tốc độ rất cao) hoặc mạng thông thường (TCP/IP chẳng hạn)

Hầu hết các ứng dụng của tính toán song song là nhằm giải quyết các bài toán có độphức tạp thời gian lớn hoặc những bài toán thời gian thực (real-time applications) Sauđây là một số ví dụ:

Tính toán trong vật lý và hóa học: mô phỏng các quá trình nhiệt học, mô phỏng

chuyển động các hạt cơ bản trong vật lý, mô phỏng các quá trình hóa học,…

Tính toán trong sinh học: hiện nay có một lĩnh vực đang được giới nghiên cứu

focus, đó là tin sinh (bioinformatics) Bài toán này chủ yếu phân tích thông tin di truyềnADN Bài toán phân tích và mô hình hóa bản đồ gen người cũng không thể không sửdụng các máy tính hiệu năng cao, trong đó có các hệ thống tính toán song song rất mạnh

Trò chơi: dòng máy tính DeepBlue của IBM, có khả năng tính toán hàng triệu nước

cờ trong một giây và đây là một hệ thống song song sử dụng môi trường lập trình MPI

Tính toán song song áp dụng trong khám phá tri thức từ cơ sở dữ liệu

(Knowledge Discovery from Databases - KDD & Data Mining)

2.1.2 Các hệ thống song song

Có rất nhiều các hệ thống song song khác nhau được phân loại theo cấu trúc, theochức năng hoặc theo sức mạnh tính toán Sau đây là một số ví dụ về các hệ thống tínhtoán song song:

- Cray T3E (massively parallel processors)

- IBM RS/6000 SP2 (distributed memory system)

- Sun Fire 15000 (shared memory system)

- Cray SV1 (massively parallel processors)

- PC-Cluster (một tập các máy PC được kết nối lại với nhau thông qua mạng chuyêndụng hoặc mạng thông thường)

2.1.3 Môi trường lập trình

Môi trường lập trình song song được chia làm hai mức như sau:

Mức hệ thống: thường là một phần mềm hệ thống chạy ở background nhằm thực hiện

các chức năng trong tính toán song song như quản lý tiến trình (task management), truyềnthông (communication), đồng bộ hóa (synchronization), Mức này còn cung cấp thư

Trang 11

viện bao gồm các hàm về truyền thông, đồng bộ hóa, Hiện nay có khá nhiều phần mềm

hỗ trợ tính toán song song như MPI (Message Passing Interface), PVM (Parallel VirtualMachine),

Mức ngôn ngữ lập trình song song: Ngôn ngữ C/C++ để lập trình song song kết hợp

với bộ thư viện của MPI hoặc PVM cung cấp, ngoài ra ngôn ngữ FORTRAN (fortran 77hoặc fortran 90) hoặc HPF (High Performance Fortran) cũng được để lập trình song song

2.1.4 Các mô hình và thuật toán song song

Về mô hình song song được chia ra các dạng chính sau đây: SIMD (Đơn dòng lệnh,

đa dữ liệu Single Instruction Multiple Data); MISD (Đa dòng lệnh, đơn dữ liệu Multiple Instruction Single Data); MIMD (Đa dòng lệnh, đa dữ liệu - MultipleInstructions Multiple Data)

-Thuật toán song song rất đa dạng, mỗi bài toán có một chiến lược song song riêng Có

hai chiến lược chính là song song theo chức năng và song song theo dữ liệu.

2.2 Các chiến lược song song hoá phổ biến

Trong rất nhiều chiến lược khác nhau để song song hoá thuật toán tuần tự, có bachiến lược thiết kế chương trình song song tương đối phổ biến là: song song hoá kết quả,song song hoá đại diện và song song hoá chuyên biệt Mặc dù, trong từng bài toán cụ thểviệc kết hợp các chiến lược thiết kế có thể cho ta kết quả thú vị, song thông thường tuỳthuộc tính chất bài toán, chỉ một chiến lược thiết kế thuật toán song song được chọnnhằm đạt hiệu quả cao nhất

2.2.1 Song song hoá kết quả

Việc phân loại các chiến lược thiết kế thuật toán song song phụ thuộc vào tính chấtbài toán Song song hoá kết quả là cơ chế tính toán song song tập trung trên toàn bộ dữliệu của bài toán Mỗi bộ xử lý sẽ cho một phần kết quả của bài toán và các bộ xử lý hoạtđộng song song sao cho các phần việc được thực hiện độc lập tối đa có thể

Sau khi các phần việc hoàn thành, công đoạn cuối cùng là kết hợp các thành phần đểđược kết quả hoàn chỉnh Các lớp bài toán chia - để - trị, bảng đen (trong hệ chuyên gia)

và lơi - lặp (iterative relaxtion) thường sử dụng chiến lược song song hoá kết quả để thiết

kế chương trình song song

Mỗi bài toán trong lớp các bài toán chia-để -trị, thường được chia thành các bài toánthành phần Mỗi bài toán thành phần được giải quyết độc lập và kết quả cuối cùng là sựkết hợp các kết quả của bài toán thành phần

Trong hệ thống bảng đen cấu trúc dữ liệu thể hiện mô hình tính toán Mỗi bộ xử lýđộc lập có trách nhiệm quản lý, kiểm tra trạng thái hiện thời và cập nhật nó nếu cần.Trong lơi - lặp người ta chia không gian dữ liệu thành các vùng có quan hệ lánggiềng, mỗi vùng này được một hay nhiều bộ vi xử lý đảm nhiệm Mỗi bộ vi xử lý này

Trang 12

đảm trách công việc theo từng vùng song song và khi cần có sự truyền thông điệp với cácláng giềng.

Việc thiết kế chương trình theo chiến lược song song hoá kết quả thông qua năm giaiđoạn:

- Giai đoạn đầu cần phải mô hình kết qủa dưới dạng cấu trúc dữ liệu gồm nhiều thànhphần, đồng thời xác định được sự phụ thuộc giữa chúng

- Giai đoạn hai, phân mỗi bộ xử lý đảm nhiệm công việc cho một hay nhiều thành phần

và việc phân chia này phải bảo đảm vấn đề hiệu suất của các bộ xử lý

- Giai đoạn ba, xác định nguồn tài nguyên cần thiết để thực hiện việc tính toán cácthành phần

- Bước tiếp theo xác định cách lấy các giá trị kết quả của các thành phần khi thực hiện

xử lý song song

- Cuối cùng, là giai đoạn kết hợp các kết quả thành phần để được kết quả bài toán vàkết thúc các xử lý

Ví dụ 1: Giả sử cần thực hiện tính n! trên hai máy tính, trong đó mỗi máy nhân n/2 số

với nhau và n lưu ở máy tính thứ nhất

Kết quả của máy tính thứ hai khi được tính xong sẽ được chuyển về máy tính thứ nhất

để nó nhân hai kết quả bộ phận với nhau

Bài toán này được phát biểu như sau:

B1 Máy tính thứ nhất gửi n cho máy tính thứ hai

B2 Cả hai máy tính thực hiện nhân n/2 số một cách đồng thời

P1= 1*2*3…*(ndiv2)

P2= n*(n-1)*(n-2)*…*(ndiv2+1)

B3 Máy tính thứ hai chuyển kết quả tính được về máy tính thứ nhất

B4 Máy tính thứ nhất nhân hai kết quả để có kết quả cuối cùng

Trang 13

2.2.2 Song song hoá đại diện

Thiết kế chương trình theo cơ chế song song hoá đại diện xác định cụ thể công việcphải thực hiện để song song hoá Như vậy, để giải quyết một bài toán có nhiều côngđoạn, mỗi công đoạn của bài toán được giải quyết song song cho đến khi hoàn thànhcông đoạn đó và các công đoạn tiếp theo cũng được thực hiện tương tự cho đến khi bàitoán được giải quyết Các mô hình của chiến lược này là Client/Server, tính toán - tổnghợp - truyền thông

Trong mô hình Client/Server, bài toán cần giải được chia thành các vấn đề phụ thuộclẫn nhau Các bộ xử lý đóng vai trò tớ trong mô hình có nhiệm vụ xử lý các vấn đề này vàgiữa chúng được điều phối bởi bộ xử lý đóng vai trò chủ Khác với phương pháp chia đểtrị, các vấn đề ở đây không nhất thiết cùng được tiến hành giải quyết, mà có thể được giảiquyết song song một cách tuần tự

Trong mô hình tính toán - tổng hợp - truyền thông thiết kế bao gồm ba giai đoạn Giaiđoạn tính toán thực hiện các tính toán cơ bản có tính chất cục bộ, giai đoạn tổng hợp kếthợp các dữ liệu cục bộ thành dữ liệu toàn cục, giai đoạn truyền thông trả lại các thông tintoàn cục cho các bộ xử lý

Việc thiết kế chương trình theo chiến lược song song hoá đại diện được thực hiệnthông qua ba giai đoạn:

- Giai đoạn đầu xác định các công việc cần phải thực hiện bởi các bộ xử lý

- Trong giai đoạn tiếp theo cần phải xác định bộ xử lý đóng vai trò điều khiển các côngviệc

- Cuối cùng cần phải nhận biết được kết quả công việc

Trang 14

2.2.3 Song song hoá chuyên biệt

Trong chiến lược song song hoá chuyên biệt, bài toán cần giải quyết bao gồm nhiềucông việc, mỗi công việc có đặc thù riêng được giao cho một bộ xử lý chuyên dụng.Ngoài ra hệ thống cần một bộ xử lý giữ vai trò agent, điều phối quá trình thực hiện côngviệc Trong mỗi công việc đặc thù, các phần việc nhỏ hơn được thực hiện song song Saukhi các phần việc này hoàn thành, cần tiến hành “phối hợp” các kết quả để hoàn thànhcông việc

Một số mô hình thường gặp trong chiến lược thiết kế này là: ống dẫn và bộ lọc,Client/Server

Trong mô hình ống dẫn và bộ lọc dòng dữ liệu kết quả ra của quá trình xử lý A là dữliệu vào của quá trình xử lý B

Trong mô hình Client/Server các yêu cầu từ các bộ xử lý đóng vai trò khách được gửiđến các bộ xử lý đóng vai trò phục vụ để xử lý

Ví dụ: Ta xét bài toán tìm phần tử a trên mảng A kích thước n.

Trong xử lý tuần tự: ta dùng một bộ xử lý duyệt từ phần tử đầu đến phần tử cuối củamảng

Trong xử lý song song, giả sử ta có một mô hình song song m bộ xử lý, ta chia việccho mỗi bộ xử lý đồng thực hiện tìm kiếm, một bộ xử lý tìm kiếm trên (n div m) phần tử.Trong quá trình thực hiện, bộ xử lý nào tìm thấy phần tử a hoặc đã duyệt qua hết rồinhưng không tìm thấy thì phải gửi thông điệp để hệ thống xử lý nhận biết, điều khiển quátrình xử lý

Chúng ta dễ nhận thấy là độ phức tạp của xử lý song song có thể sẽ lớn hơn xử lý tuần

tự rất nhiều, bởi vì cần có sự trao đổi thông tin và sự đồng bộ các tiến trình trong quátrình thực hiện xử lý bài toán, vấn đề chúng ta cần quan tâm ở đây chính là thời gian thựchiện chương trình

Một trong những mục đích chính của xử lý song song là nghiên cứu, xây dựng nhữngthuật toán thích hợp để cài đặt trên các máy tính song song, nghĩa là phát triển các thuậttoán song song nhằm giải quyết các bài toán đặt ra trong thực tế

Vấn đề đặt ra là là đánh giá một thuật toán song song như thế nào được gọi là thíchhợp? Trong thuật toán tuần tự thì chúng ta đánh giá dựa vào thời gian thực hiện thuậttoán, không gian bộ nhớ và khả năng lập trình, Đánh giá thuật toán song song thì phứctạp hơn nhiều, ngoài những tiêu chuẩn trên còn phải bổ sung thêm các thông số về số bộ

xử lý, khả năng của các bộ nhớ cục bộ, sơ đồ truyền thông, và các giao thức đồng bộ hoátiến trình …

Trang 15

2.3 Biểu thức song song trong các ngôn ngữ thuật toán

Nguyên cứu một số khía cạnh cơ bản của việc lập trình bằng các ngôn ngữ thuật toáncho phép biểu diễn cấu trúc kiểm tra và các cơ chế định danh

Các ngôn ngữ có thể chia làm hai loại chính:

- Một số ngôn ngữ cho phép lập trình ứng dụng với tư cách là kích hoạt song song vàhoàn toàn không quan tâm đến vấn đề là sẽ triển khai chương trình trên hệ tập trunghay là hệ phân tán Các ngôn ngữ này triển khai cấu trúc kiểm tra có tính chất thủ tục.Mặc dù có một số hạn chế, song chúng cũng triển khai trên các hệ phân tán

- Một số ngôn ngữ khác cho phép triển khai tường minh công việc phân tán Chúng chophép tạo các mối quan hệ cần thiết từ một trạm đến các trạm khác trong hệ phân tán.Hai loại ngôn ngữ để thể hiện cho biểu thức song song trong các ngôn ngữ lập trình làngôn ngữ CSP [Hoare] và ADA [Ichbiah], các phương tiện định nghĩa các tiến trình vàthực hiện trao đổi thông tin giữa chúng với nhau Hai ngôn ngữ này cho phép phân đoạn

dữ liệu của một ứng dụng thành các tập hợp độc lập nhau Việc quản lý các tập hợp nàyđược tiến hành nhờ một tiến trình đặc biệt

Cả hai ngôn ngữ này đều có các đặc tính chung như sau:

- Sự liên thông giữa hai tiến trình không cần đặt lại cho sự tồn tại của các biến toàn cục

- Các cơ chế sơ đẳng của việc đồng bộ ví dụ như "cuộc gặp gỡ" của hệ CSP, "vào" củaADA thường là gần giống nhau

- Các cấu trúc mô phỏng tạo thuận lợi cho các tiến trình thể hiện việc chờ tương đốiđồng nhất và có điều kiện phù hợp với một trong các khả năng có thể Các nguyên lýkhác nhau cho ta khả năng lựa chọn cấu trúc thể hiện quan hệ giữa các tiến trình cũngnhư công cụ song song cho phép truy cập đến dữ liệu

- Trong CSP, các quan hệ và các đồng bộ giữa các tiến trình được thể hiện tường minhbằng các trao đổi thông điệp Ngược lại, trong ngôn ngữ ADA, một tiến trình T1 nào

đó có thể truy cập vào dữ liệu cục bộ của tiến trình T2 khác bàng cách sử dụng hàmnguyên thuỷ mà hiệu ứng của nó là việc gọi thực hiện thủ tục Các đồng bộ thực tế(tuỳ vào tình hình) được trình bày bởi T2 nhờ cấu trúc chính xác

- Trong CSP, số lượng và lai lịch của các tiến trình được định nghĩa theo kiểu tĩnh Một

dữ liệu nào đó chỉ để được truy cập bởi tiến trình có nhiệm vụ quản lý rõ ràng, trongkhi đó ADA cho phép nhiều tiến trình truy cập đến dữ liệu (việc kiểm soát dữ liệuđược giao cho một tiến trình đặc biệt)

Cần phải nhấn mạnh là ngôn ngữ ADA là một ngôn ngữ được xây dựng theo hướngtổng quát Nó biểu hiện một số đặc tính như biến toàn cục, các quy trình về trực quangđối tượng,…

Ngày đăng: 23/03/2015, 18:44

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w