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

TÌM HIỂU VỀ XỬ LÝ SONG SONG

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 (167.69 KB, 16 trang )

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

LỚP: CAO HỌC KHMT K2020

ĐỀ TÀI: TÌM HIỂU VỀ TÍNH TỐN SONG SONG

Gia Lai, tháng 8 năm 2021

1


MỤC LỤC
PHẦN I: LỜI GIỚI THIỆU...........................................................................................3
PHẦN II: NỘI DUNG................................................................................................4
1. NHỮNG KHÁI NIỆM CƠ BẢN VỀ TÍNH TỐN SONG SONG.......................4
Xuất hiện nhiều bài toán cần phải xử lý 1 khối lượng dữ liệu lớn: xử lý ngôn ngữ tự
nhiên, dự báo thời tiết, …...........................................................................................5
Tốc độ xử lý của bộ xử lý tăng nhưng vẫn có giới hạn: Hệ thống đơn một bộ xử lý
không đáp ứng được yêu cầu xử lý về mặt thời gian.................................................5
Trong khi đó tính tốn song song thì :........................................................................5
2.THUẬT TỐN SONG SONG................................................................................8
3. CÁC LỚP BÀI TỐN CĨ THỂ XỬ LÝ SONG SONG VÀ VÍ DỤ...................10
3.1. Các lớp bài tốn có thể xử lý song song............................................................10
PHẦN III: KẾT LUẬN...............................................................................................15
TÀI LIỆU THAM KHẢO...........................................................................................16

2


PHẦN I: LỜI GIỚI THIỆU


Trong thực tế, có rất nhiều lĩnh vực như xử lý đồ họa, trí tuệ nhận tạo, lý
thuyết đồ thị, lý thuyết nhận dạng, dự báo thời tiết... đều dẫn đến các bài toán xử lý
một khối lượng dữ liệu rất lớn dẫn tới yêu cầu cần phải có những hệ thống máy tính
thật mạnh mới thực hiện được những yêu cầu của thực tế. Hầu hết những bài tốn
này, những máy tính xử lý tuần tự kiểu von Neumann là không đáp ứng yêu cầu.
Mặc dù tốc độ và số lượng các bộ xử lý tăng nhiều trong những năm qua, nhưng do
giới hạn về phương diện vật lý nên khả năng tính tốn của chúng không thể tăng mãi
theo yêu cầu hiện tại, càng không đáp ứng trong tương lai. Điều này dẫn tới là muốn
tăng được khả năng tính tốn của các hệ thống máy tính, để giải được những bài tốn
đáp ứng u cầu thực tế thì khơng cịn cách nào khác là phải khai thác được khả năng
xử lý song song của chúng.
Nghiên cứu về xử lý song song vì vậy khơng chỉ mang ý nghĩa khoa học, mà
cịn có ý nghĩa thực tiễn rất lớn. Việc nghiên cứu về xử lý song song, từ lý thuyết
cho đến ứng dụng, không chỉ giúp chúng ta nắm được nền tảng công nghệ, mà cịn
giúp chúng ta nhìn thấy tiềm năng to lớn của xử lý song song trong cơng nghệ nói
riêng và các lĩnh vực kinh tế quốc dân nói chung.
Trong phần tiểu luận này em sẽ trình bày sơ lược một số vấn đề tính tốn (xử lý)
song song, thuật tốn song song. Tuy nhiên do thời gian thực hiện cũng như kinh
nghiệm của em còn hạn chế nên tiểu luận khơng tránh khỏi những sai sót ngồi ý
muốn. Em rất mong nhận được sự góp ý và chỉ bảo của Thầy cũng như các bạn học
viên trong lớp để tiểu luận được hoàn thiện hơn.
Cuối cùng em xin chân thành cảm ơn Thầy TS Nguyễn Hồng Minh đã tận tình
giảng dạy, cung cấp tài liệu tham khảo để em hoàn thành tốt tiểu luận này.

3


PHẦN II: NỘI DUNG
1. NHỮNG KHÁI NIỆM CƠ BẢN VỀ TÍNH TỐN SONG SONG
1.1. Tính tốn tuần tự

- Một vấn đề được chia thành một dãy rời rạc các chỉ thị (Instruction – lệnh máy
tính) mà máy tính có thể hiểu để thực hiện.
- Máy tính thực hiện các chỉ thị theo thứ tự mà chúng xuất hiện.
- Chỉ có duy nhất một chỉ thị được thực hiện tại một thời điểm.
- Các phần mềm ứng dụng đều được viết cho các máy tính tuần tự.
Máy tính tuần tự là loại máy tính thực hiện các lệnh một cách tuần tự và tại mỗi
thời điểm chỉ một chỉ thị duy nhất được thực hiện.
Với những bài toán yêu cầu về khả năng tính tốn và lưu trữ lớn thì mơ hình
kiến trúc này cịn hạn chế. Để tăng cường sức mạnh tính tốn giải quyết các bài tốn
lớn có độ tính tốn cao, người ta đưa ra kiến trúc mới, với ý tưởng kết hợp nhiều bộ
xử lý vào trong một máy tính, mà hay gọi là xử lý song song/ tính tốn song song
1.2. Tính tốn song song
Định nghĩa: Tính tốn song song là q trình tính tốn gồm nhiều tiến trình được
kích hoạt đồng thời và cùng tham gia tính tốn giải quyết một vấn đề, và nói chung
phải thực hiện trên các hệ thống đa bộ xử lí.
-

Một vấn đề cần tính tốn được phân hoạch thành các phần tính tốn rời rạc,
các phần này lại có thể tính tốn được đồng thời (song song).

-

Từng phần của phân hoạch lại được chia nhỏ thành chuỗi các chỉ thị và được
thực hiện tuần tự.

-

Các chỉ thị của từng phần thực hiện đồng thời trên các CPU khác nhau.

Quan niệm đơn giản nhất, tính tốn song song là việc sử dụng đồng thời nhiều

máy tính được kết nối thành mạng hoặc chỉ trên một máy tính nhưng có nhiều hơn
hai bộ xử lý.
Trong tính tốn song song hiện nay, có hai cơng nghệ chính:
Thứ nhất là sử dụng các siêu máy tính với rất nhiều bộ xử lý được tích hợp bên
trong được thiết kế đồng bộ cả về phần cứng và phần mềm. Các công nghệ được áp
4


dụng trong các siêu máy tính thường là các cơng nghệ tiên tiến làm cho giá thành của
hệ thống siêu tính tăng rất cao.Vì thế các siêu máy tính thường được sử dụng trong
các lĩnh vực mà vấn đề tính toán phức tạp, nhạy cảm và yêu cầu thời gian thực như
mô phỏng thực hiện của các động cơ máy bay, quốc phòng, vũ trụ...
Cách thứ hai là kết nối các máy tính lại với nhau và cùng thực hiện bài tốn. Hệ
thống các máy tính kết nối này chính là hệ thống tính tốn song song phân cụm. Hệ
thống này có ưu điểm là giá thành rẻ hơn rất nhiều so với siêu máy tính có cùng sức
mạnh (do sử dụng các thiết bị thơng thường) và tính linh hoạt của hệ thống (số nút, số
bộ xử lý, bộ nhớ, thiết bị mạng... đều mang tính tuỳ biến cao). Sự phát triển mạnh mẽ
của mạng máy tính, các cơng nghệ mạng hiện nay đã lấp đi hạn chế về truyền thơng
trong hệ thống máy tính song song phân cụm làm cho nó được phát triển rộng rãi.
Các lĩnh vực sử dụng hệ thống tính tốn song song phân cụm thường u cầu tính
tốn các kiến trúc song song.
1.3. Tại sao sử dụng tính tốn song song?
- Xuất hiện nhiều bài toán cần phải xử lý 1 khối lượng dữ liệu lớn: xử lý ngôn
ngữ tự nhiên, dự báo thời tiết, …
- Tốc độ xử lý của bộ xử lý tăng nhưng vẫn có giới hạn: Hệ thống đơn một bộ
xử lý không đáp ứng được yêu cầu xử lý về mặt thời gian.
Trong khi đó tính tốn song song thì :
• Tiết kiệm thời gian, tài chính.
• Giải quyết được các vấn đề lớn hơn, phức tạp hơn .
Nhiều vấn đề quá lớn và/hoặc quá phức tạp đến nỗi nó khơng thực tế hoặc

khơng có khả năng giải quyết chúng trên máy tính đơn, đặc biệt là bộ nhớ máy tính
lại bị hạn chế. Chẳng hạn các vấn đề:
-

Dự báo thời tiết, bão, động đất, sóng thần, mơ hình sinh thái, …

-

Máy dị tìm web/CSDL để xử lý hàng triệu triệu giao dịch trên một giây
(cơng cụ tìm kiếm web/CSDL xử lý hàng triệu giao dịch/giây)

• Cung cấp tính đồng thời


Sử dụng tài nguyên phi cục bộ

Sử dụng tài ngun tính tốn trên một mạng diện rộng, hoặc thậm chí Internet
khi tài ngun tại nơi tính tốn tài ngun đang khan hiếm, không đủ.
5




Những hạn chế khi tính tốn tuần tự

o

Tốc độ truyền - tốc độ của một máy tính tuần tự phụ thuộc trực tiếp vào tốc độ
chuyển dữ liệu qua phần cứng. Giới hạn tốc độ tuyệt đối là tốc độ của ánh sáng
(30 cm/nanosecond) và hạn chế sự lan truyền (băng thông) của dây đồng (9

cm/nanosecond). Để tăng tốc độ cần phải tăng số lượng các phần tử xử lý,...

o

Các giới hạn về công nghệ tiểu họa vi xử lý (miniaturization – processor
technology) là cho phép tăng số lượng bóng bán dẫn được đặt trên một chip.
Tuy nhiên, ngay cả với các thành phần cấp độ phân tử hoặc nguyên tử thì một
giới hạn cũng sẽ được đạt đến dù các thành phần nhỏ đến thế nào đi nữa.

o

Các hạn chế về kinh tế - làm một bộ xử lý đơn càng nhanh thì càng đắt tiền.

o

Các kiến trúc máy tính hiện tại đang ngày càng dựa vào khả năng song song
hóa phần cứng để cải thiện hiệu suất như:
 Có nhiều đơn vị thực hiện
 Dùng các chỉ lệnh đường ống (Pipelined instructions)
 Đa nhân (Multi-core)

Sự khác nhau giữa song song và tuần tự:
 Trong tính tốn tuần tự với một BXL tại mỗi thời điểm, chỉ có thể một
phép tốn
 Trong tính tốn song song thì một số BXL có thể kết hợp với nhau để giải
quyết cùng một vấn đề cho nên giảm được thời gian xử lý
Trong những năm qua, sự phát triển mạnh của các mạng (network), hệ thống phân
tán và kiến trúc đa xử lý (thậm chí là máy tính để bàn) đã cho thấy rõ song song là xu
hướng của tính tốn. Trong thời gian đó, các siêu máy tính đã tăng hơn 1000 lần về
hiệu xuất, và sẽ tiếp tục trong tương lai.

Tính tốn song song hiện đang được sử dụng rộng rãi trên thế giới trong nhiều ứng
dụng lớn
1.4 Các loại máy tính song song
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

6


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
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
1.5 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ỳ.
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 hố.
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.
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 tố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
7


ngun 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.
Các hệ điều hành Linux, Unix hay Windows đều phải điều phối sự hoạt động
đồng bộ của tiến trình. Khi muốn sử dụng bộ nhớ chung, ta cần phải xin cấp phát bộ
nhớ và sau đó khi sử dụng xong phải giải phóng chúng.
Khi có một tiến trình truy cập vào một bộ nhớ với mục đích cập nhật thì nó
phải được đảm bảo rằng khơng một tiến trình dữ liệu nào khác đọc dữ liệu ở vùng
nhớ đó cho tới khi việc cập nhật đó kết thúc.
Lập trình chia sẻ bộ nhớ dựa vào luồng
Các luồng của một tiến trình có thể chia sẻ với nhau về khơng gian địa chỉ
chương trình, các đoạn dữ liệu và môi trường xử lý, đồng thời cũng có những vùng
dữ liệu riêng để thao tác.
Cơng việc của một luồng có thể được miêu tả như là một chương trình con của
một chương trình chính. Một luồng bất kì có thể thực thi một chương trình con bất kì
cùng lúc với các luồng khác.
Các thể hiện của luồng có nhiều hệ điều hành hỗ trợ đa luồng như: SUN
Solaris, Windows NT v.v....những nỗ lực tiểu chuẩn hoá không giống nhau đã đưa tới
hai thể hiện rất khác nhau của luồng đó là: POSIX Threads và OpenMP.

Mơ hình truyền thơng điệp
Giống như mơ hình chia sẻ bộ nhớ, các đơn vị xử lý song song trong mơ hình
truyền thơng điệp là các tiến trình. Trong mơ hình truyền thơng điệp.
Các tiến trình có thể thực hiện trên những bộ xử lý khác nhau và không được
truy cập vào không gian bộ nhớ chia sẻ.
Việc truyền thông giữa các tiến trình thơng qua việc gửi và nhận thơng điệp.
Việc đồng bộ hố các tiến trình của một chương trình song song được thực
hiện theo cơ chế truyền thông điệp. Khi một tiến trình muốn gửi một thơng điệp thì
nó phải chờ cho đến khi tiến trình nhận sẵn sàng nhận thơng điệp đó và ngược lại,
cũng tương tự.
2. THUẬT TOÁN SONG SONG

8


2.1. Khái niệm thuật toán song song
Thuật toán song song là một tập các tiến trình (process) hoặc các tác vụ (task) có
thể thực hiện đồng thời và có thể trao đổi dữ liệu với nhau để kết hợp cùng giải
một bài toán đặt ra.
Khi thiết kế thuật toán song song cần xác định
1. Việc phân chia dữ liệu cho các tác vụ như thế nào?
2. Dữ liệu được truy cập như thế nào,
3. Những dữ liệu nào cần phải chia sẻ?
4. Phân các tác vụ cho các tiến trình (bộ xử lý) như thế nào?
5. Các tiến trình được đồng bộ hóa ra sao?
2.2. Nguyên lý thiết kế thuật toán song song
Phát triển thuật toán là một phần cơ bản của việc giải quyết bài tốn sử dụng
máy tính. Một thuật toán tuần tự về bản chất là một cách làm hay một số tuần tự các
bước để giải quyết bài tốn đưa ra bằng một máy tính tuần tự. Một các tương tự, một
thuật toán song song là một cách làm chỉ cho chúng ta làm thế nào để giải quyết bài

tốn đưa ra bằng các máy tính song song.
Tuy nhiên, việc đặc tả một thuật toán song song liên quan tới nhiều hơn là việc
sử dụng các máy tính song song
Trong thực tế, việc xây dựng một thuật tốn song song có thể gồm một số hoặc
tất cả các bước sau:
- Xác định các phần công việc có thể thực hiện đồng thời.
- Gán các cơng việc có thể thực hiện đồng thời và nhiều tiến trình chạy song
song.
- Phân tán dữ liệu đầu vào, đầu ra và trung gian.
- Quản lý việc truy cập tới dữ liệu chia sẻ.
- Đồng bộ các xử lý ở các giai đoạn khác nhau của việc thực thi chương trình.
Có năm ngun lý chính trong thiết kế thuật tốn song song:
- Các nguyên lý lập lịch: Giảm tối thiểu các BXL sử dụng trong thuật tốn sao
cho thời gian tính tốn là khơng tăng
9


- Nguyên lý hình ống: Nguyên lý này áp dụng khi bài toán xuất hiện một dãy
các thao tác {T1,T2,..Tn} Trong đó T ( i+1) thực hiện sau khi kết thúc Ti
- Nguyên lý chia để trị: Chia bài toán thành những phần nhỏ hơn tương đối độc
lập với nhau và giải quyết chúng một cách song song. Có thể chia bài toán theo miền
dữ liệu hoặc theo chức năng
- Nguyên lý đồ thị phụ thuộc dữ liệu: Phân tích mối quan hệ dữ liệu trong tính
tốn để xây dựng đồ thị phụ thuộc dữ liệu và dựa vào đó để xây dựng thuật toán song
song.
- Nguyên lý điều kiện tương tranh: Nếu hai tiến trình cùng muốn truy cập vào
cùng một mục dữ liệu chia sẻ thì chúng phải tương tranh với nhau, nghĩa là chúng có
thể cản trở lẫn nhau
Trên những kiến trúc máy tính khác nhau thì hiệu quả của thuật tốn có thể rất khác
nhau. Việc thiết kế thuật toán song song phải được dựa trên những kiến thức về kiến

trúc máy tính, ngơn ngữ lập trình song song và các phương pháp tính tốn.
- Tác vụ (Task)
- Tiến trình (process)
- Thực hiện tuần tự
- Thực hiện song song
Phương pháp luận để thiết kế thuật toán song song gồm bốn giai đoạn khác
nhau:
- Sự chia nhỏ bài tốn (partitioning)
- Thiết lập kênh truyền (communication)
- Nhóm gom các tác vụ (agglomeration)
- Gán vào hệ thống (mapping)
3. CÁC LỚP BÀI TỐN CĨ THỂ XỬ LÝ SONG SONG VÀ VÍ DỤ
3.1. Các lớp bài tốn có thể xử lý song song
Những bài tốn có u cầu xử lý khối lượng dữ liệu lớn: xử lý ngôn ngữ tự nhiên,
nhận dạng , xử lý ảnh ba chiều, dự báo thời tiết, … Từ một bài tốn đó có thể tách
thành nhiều bài tốn nhỏ, các bài tốn nhỏ có dữ liệu độc lập với nhau.
10


3.2 . Ví dụ tính tốn song song
Ví dụ: Tính Pi
• Giá

trị của số PI có thể được tính bằng nhiều cách. Xét phương pháp tính xấp xỉ

số PI sau đây:
1. Vẽ một vịng trịn trong nội tiếp hình vng , hình 1
2. Các điểm được tạo ra trong hình vuông một cách ngẫu nhiên
3. Xác định số điểm trong hình vng và các điểm trong vịng trịn
4. Giả sử α là tỷ số của số điểm trong vòng tròn chia cho số điểm trong

hình vng, ta có
5. PI ≈ 4α
6. Lưu ý rằng các điểm được tạo ra càng nhiều, càng có xấp xỉ tốt

Hình 1
Tính PI bằng phương pháp tuần tự
Mã chương trình viết bằng C#
static void Main(string[] args)
{
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
double PI,circle_count;
Int64 npoints = 10000000; //tong so diem
Random random = new Random();
circle_count = 0; //tong so diem trong vong tron
11


for (int j = 0; j < npoints; j++)
{
double x = random.NextDouble();
double y = random.NextDouble();
if (IsInsideCircle(Distance(x, y, 0.5, 0.5), 0.5))
{
circle_count++;
}
}
PI = 4.0 * circle_count / npoints;
Console.WriteLine("PI is:" + PI.ToString());
Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed);

Console.ReadKey();
}
static double Distance(double x, double y, double x1, double
y1)
{
return Math.Sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1));
}
static bool IsInsideCircle(double distance, double r)
{
return distance <= r;
}
•Hầu

hết thời gian chạy chương trình này sẽ được dùng cho việc thực hiện các

vịng lặp.
Tính số PI bằng giải pháp song song


Chiến lược song song: phá vỡ các vịng lặp tạo thành các phần có thể được
thực hiện bởi các tác vụ.



Đối với tác vụ tính xấp xỉ số PI:
o

Mỗi tác vụ thực hiện vòng lặp một số lần.

o


Mỗi tác vụ có thể làm cơng việc của mình mà khơng cần bất cứ thơng
tin nào từ các tác vụ khác (khơng có phụ thuộc dữ liệu).

12


o

Sử dụng mơ hình SPMD. Một tác vụ đóng vai trị tác vụ chủ và thu thập
các kết quả.

Chương trình viết bằng C#
static readonly object _locker = new object();
static int circle_count, myPoint;
static void Main(string[] args)
{
Stopwatch stopwatch = new Stopwatch();
double PI;
Int64 npoints = 10000000; //tong so diem
int p = 4; //so process
Random random = new Random();
stopwatch.Start();
Console.WriteLine("Chay song song:");
circle_count = 0; //tong so diem trong vong tron
myPoint = npoints / p;
Parallel.For(0, p, k =>
{
ParallelRun();
});

stopwatch.Stop();
PI = 4.0 * circle_count / npoints;
Console.WriteLine("PI is:" + PI.ToString());
Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed);
Console.ReadKey();
}
static void ParallelRun()
{
int total = 0;
Random random = new Random();
for (int j = 0; j < myPoint; j++)
{
double x = random.NextDouble();
double y = random.NextDouble();
if (IsInsideCircle(Distance(x, y, 0.5, 0.5), 0.5))
{
total++;
13


}
}
lock (_locker)
circle_count += total;
}
static double Distance(double x, double y, double x1, double y1)
{
return Math.Sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1));
}
static bool IsInsideCircle(double distance, double r)

{
return distance <= r;
}
So sánh 2 kết quả:
Với số điểm là 10.000.000 thì kết quả như sau:

Chạy song song nhanh hơn chạy tuần tự ≈ 3.53 lần.
Như vậy, ta nhận thấy rằng việc chạy chương trình song song sẽ nhanh hơn việc chạy
chương trình tuần tự.

14


PHẦN III: KẾT LUẬN
Trên đây là phần nội dung bài tiểu luận của em. Em đã tìm hiểu sơ lược về tính
tốn song song, thuật tốn song song . Từ đó trả lời được 3 câu hỏi:
1. Xử lý song song là gì?
2. Thuật tốn song song là gì?
3. Trình bày được các lớp bài tốn có thể xử lý song song.
Bên cạnh đó đã lấy được ví dụ về tính bằng 2 phương pháp: phương pháp tuần tự và
phương pháp song song. Từ đó chúng ta có thể so sánh được việc chạy chương trình
song song sẽ nhanh hơn việc chạy chương trình tuần tự.
Trong quá trình tìm hiểu do thời gian cũng như kiến thức còn hạn chế khơng thể
tránh khỏi một số sai sót ngồi ý muốn. Rất mong nhận được sự góp ý của thầy và
các học viên.

15


TÀI LIỆU THAM KHẢO

- Bài giảng Xử lý song song của Giảng viên: TS. Nguyễn Hoàng Hà – Khoa
CNTT, Đại Học Khoa Học ĐH Huế
- Nguyễn Văn Ba, Phát triển hệ thống hướng đối tượng với UML và C++, Nhà
xuất bản ĐH Quốc gia Hà nội, 2007.
- Open Source High Performance Computing

/>
- Cơ sở lý thuyết song song – TS.Lê Huy Thập, NXB Thơng tin và truyền thơng
- Tính tốn song song, TS. Ngô Văn Thanh, Viện Vật lý.
- Introduction to Parallel computing- Blaise Barney, Lawrence Livermore
National Laboratory
-

PATTERNS OF PARALLEL PROGRAMMING, Stephen Toub,Parallel

- Trang Web
MPI Tutorial : />Open Source High Performance Computing />
16



×