TỔNG QUAN VỀ TÍNH TOÁN SONG SONG TRONG KHOA HỌC MÁY TÍNH

14 883 5
TỔNG QUAN VỀ TÍNH TOÁN SONG SONG TRONG KHOA HỌC MÁY TÍNH

Đ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

Tính toán song song hay xử lý song song: là quá trình xử lý thông tin trong đó nhấn mạnh việc nhiều đơn vị dữ liệu được xử lý đồng thời bởi một hay nhiều bộ xử lý để giải quyết một bài toán.Siêu máy tính: là những máy tính đa năng thông thường có tốc độ tính toán vô cùng lớn. Chúng chia làm hai loại:Máy tính song song dựa trên bộ vi xử lý : được thiết kế với rất nhiều bộ xử lý có tốc độ vừa phải. Siêu máy tính truyền thống (supercomputer) : ít bộ xử lý hơn nhưng tốc độ của mỗi bộ xử lý đó lại cực cao.Song song về dữ liệu (data parallelism): Là cơ chế sử dụng nhiều đơn vị xử lý thực hiện cùng một thao tác trên nhiều đơn vị dữ liệu .

TỔNG QUAN VỀ TÍNH TOÁN SONG SONG I. Tổng quan thuật toán song song 1. Khái niệm thuật toán song song Tính toán song song hay xử lý song song: là quá trình xử lý thông tin trong đó nhấn mạnh việc nhiều đơn vị dữ liệu được xử lý đồng thời bởi một hay nhiều bộ xử lý để giải quyết một bài toán. Siêu máy tính: là những máy tính đa năng thông thường có tốc độ tính toán vô cùng lớn. Chúng chia làm hai loại: - Máy tính song song dựa trên bộ vi xử lý : được thiết kế với rất nhiều bộ xử lý có tốc độ vừa phải. - Siêu máy tính truyền thống (supercomputer) : ít bộ xử lý hơn nhưng tốc độ của mỗi bộ xử lý đó lại cực cao. Song song về dữ liệu (data parallelism): Là cơ chế sử dụng nhiều đơn vị xử lý thực hiện cùng một thao tác trên nhiều đơn vị dữ liệu . Song song điều khiển (control parallelism) : là cơ chế trong đó nhiều thao tác khác nhau tác động lên nhiều đơn vị dữ liệu khác nhau một cách đồng thời. Dây chuyền (pipeline) : là cơ chế chia công việc thành nhiều chặng nối tiếp, mỗi chặng được thực hiện bởi một bộ phận khác nhau. Đầu ra của bộ phận này là đầu vào của bộ phận tiếp theo. Tăng tốc : tăng tốc của thuật toán song song là tỉ số giữa thời gian thực hiện trong tình huống xấu nhất của thuật toán tuần tự tốt nhất và thời gian thực hiện cũng công việc đó của thuật toán song song. 2. Các mức độ song song Tăng tốc = Thời gian thực hiện trong tình huống xấu nhất theo thuật toán tuần tự nhanh nhất Thời gian thực hiện trong tình huống xấu nhất của thuật toán song song đang xét Giả sử có 10 công việc từng đôi một khác nhau thì ta giao cho 10 máy làm, ta có mức song song cao nhất, và chúng ta gọi là mức chương trình song song. Mỗi công việc ta lại chia thành các công đoạn (Task) và có thể thực hiện song song, ta gọi mức độ song song này là mức song song chương trình con. Mỗi chương trình cũng như chương trình con lại có hàng loạt câu lệnh, ta có mức độ song song câu lệnh, trong câu lệnh lại có hành loạt thao tác (operation) => mức độ song song thao tác. 3. Phân loại các kiến trúc song song Một trong những phân loại hay được nhắc tới là của Flynn – 1972. Michael Flynn phân các kiến trúc máy tính thành bốn loại dựa trên tương tác giữa lệnh và dữ liệu : - SIMD(single instruction stream, single data stream) Đây chính là kiến trúc tuần tự Von Neuman, trong đó tại mỗi thời điểm chỉ một lệnh được thực hiện. - MISD (multiple instruction stream, single data stream) Kiến trúc này cho phép một vài lệnh cùng thao tác trên một dữ liệu - SIMD (single instruction stream, multiple data stream) Cho phép một lệnh được thực hiện đồng thời trên các dữ liệu khác nhau. - MIMD (multiple instruction stream, multiple data stream). Cho phép nhiều lệnh khác nhau có thể đồng thời xử lý nhiều dữ liệu khác nhau trong cùng một thời điểm. 4. Đánh giá độ phức tạp của thuật toán song song Trong thuật toán tuần tự chúng ta chỉ quan tâm tới độ phức tạp về thời gian và không gian, nhưng trong thuật toán song song thường có thêm một số đại lượng đo lường khác. Hơn nữa, độ phức tạp thời gian của thuật toán song song không chỉ đơn giản là việc đếm số câu lệnh cơ bản như trong thuật toán tuần tự mà thay vào đó nó phụ thuộc vào các phép toán cơ bản này có thể được thực hiện trên P (P > 1) bộ xử lý như thế nào. Bên cạnh độ phức tạp thời gian độ phức tạp về số bộ xử lý cũng là một đại lượng quan trọng trong phân tích thuật toán song song. Thiết kế thuật toán song song hiệu quả bao gồm việc lựa chọn cấu trúc dữ liệu phù hợp, phân bố bộ xử lý và cuối cùng là thực hiện thuật toán. Ba đại lượng này tác động lẫn nhau như một tổ chức tính toán. 4.1 Song song giới hạn và song song không giới hạn Độ phức tạp thời gian của thuật toán song song cũng là một hàm của kích thước dữ liệu đầu vào – n . Độ phức tạp thời gian là đại lượng quan trọng nhất của thuật toán song song bởi vì động cơ chính của song song là nhằm tăng tốc thời gian tính toán. Độ phức tạp thời gian tồi nhất (hay đơn giản là độ phức tạp thời gian) của thuật toán song song giải quyết bài toán P n với kích thước đầu vào n là một hàm f(n) cho thời gian lớn nhất từ lúc bắt đầu thực hiện thuật toán trên một hay nhiều bộ xử lý đến lúc kết thúc thuật toán bởi một hay nhiều bộ xử lý với bất kỳ bộ dữ liệu nào. Các thuật toán song song được thực hiện trên một tập các bộ xử lý nên đòi hỏi việc truyền dữ liệu giữa chúng. Vì thế nó bao hàm hai hoạt động khác nhau. Một hoạt động là tính toán (như các phép toán số học hay logic) được thực hiện một cách cục bộ trên một bộ xử lý, hoạt động khác là gửi dữ liệu giữa các bộ xử lý. Trong thuật toán song song một bước cơ bản là một tập các hoạt động cơ bản có thể được thực hiện một cách đồng thời bởi một tập các bộ xử lý – độ phức tạp thời gian của một bước cơ bản là hằng số hay O(1). Độ phức tạp thời gian của thuật toán song song được xác định bởi việc đếm số bước cơ bản và số bước chuyển giao dữ liệu, trong đó thời gian chuyển giao dữ liệu tại mỗi bước phụ thuộc vào mô hình liên kết giữa các bộ xử lý. Một số tài liệu còn gọi độ phức tạp thời gian của thuật toán song song là độ sâu. Độ phức tạp thời gian của thuật toán song song phụ thuộc vào mô hình tính toán song song được sử dụng một cách tốt nhất trên số lượng bộ xử lý. Vì thế, khi đưa ra độ phức tạp thời gian của thuật toán song song cần thiết đưa ra số lượng lớn nhất bộ xử lý cần sử dụng như một hàm của kích thước dữ liệu đầu vào n, và gọi là độ phức tạp số bộ xử lý của thuật toán. Việc tổng hợp và phân tích một thuật toán song song dưới mô hình có P bộ xử lý (P là một số nguyên cố định và P > 1) được gọi là mô hình song song có giới hạn. Ngược lại, mô hình song song không giới hạn là khi mà chúng ta có và được phép tùy ý sử dụng một số lượng bộ xử lý không giới hạn . Thuật toán song song thực hiện trên mô hình P bộ xử lý được gọi là P-song song. Nếu thuật toán P-song song cho bài toán kích thước n đòi hỏi t(n) bước song song thì được gọi là P-có thể tính toán trong thời gian t. Chúng ta giả sử rằng một thuật toán song song A giải quyết bài toán kích thước n với P bộ xử lý.Nếu tồn tại đa thức F sao cho ∀n , P ≤ F(n) , thì số lượng bộ xử lý được gọi là cận đa thức, ngược lại thì không có cận đa thức. Thuật toán song song có giới hạn là thích hợp trong thực tế. Tuy nhiên, các thuật toán song song không giới hạn có một sự quan tâm lớn về mặt lý thuyết, vì chúng đưa ra các giới hạn cho tính toán song song. Bằng trực giác điều đó có nghĩa là chúng ta giả sử tồn tại một số lượng vô hạn bộ xử lý( nghĩa là thuật toán có thể sử dụng tùy ý số lượng bộ xử lý), và cũng không có giới hạn về truyền thông và truy cập bộ nhớ, thì thời gian tính toán không thể giảm dưới một giới hạn nào đó. Thực tế số lượng bộ xử lý là có giới hạn, nên thuật toán trên mô hình song song không giới hạn chỉ có thể sử dụng trong thực tế nếu chúng được chuyển thành thuật toán P-song song. Có hai phương pháp đưa ra các phép chuyển đổi này : phân tách bài toán hoặc là phân tách thuật toán. Ta có thuật toán song song A giải bài toán P n kích thước đầu vào n trong thời gian t 1 (n) sử dụng p 1 (n) bộ xử lý. Giờ ta đi thiết kế thuật toán mới B giải bài toán P n trong thời gian t 2 (n) sử dụng p 2 (n) bộ xử lý, trong đó p 2 (n) < p 1 (n). Cách thứ nhất phân tách bài toán thành các bài toán nhỏ hơn với kích thước m (m < n), mỗi bài toán được giải bởi thuật toán ban đầu với số lượng bộ xử lý nhỏ hơn – p 2 (m). Cách thứ hai là phân tách một thuật toán, mỗi bước của nó được phân tách thành các bước nhỏ hơn theo một cách nào đó sao cho chúng được thực hiện với một số lượng bộ xử lý nhỏ hơn. 4.2. Cận trên và cận dưới Thuật toán song song nhanh nhất được biết để giải quyết bài toán cho ta cận trên của tính toán đó. Nếu một ai đó thiết kế ra một thuật toán nhanh hơn thuật toán nhanh nhất trước đó để giải quyết cùng một bài toán thì chúng ta nói rằng cận trên mới đã được thiết lập cho việc tính toán lời giải của bài toán đó. Cận dưới xác định độ phức tạp của bài toán, nghĩa là nó đưa ra lượng thời gian tối thiểu để giải quyết bài toán sử dụng một thuật toán song song tùy ý. 4.3. Chi phí, tăng tốc, và hiệu quả của thuật toán song song Tăng tốc và hiệu suất : xét bài toán với thuật toán tuần tự tốt nhất có thời gian T s , thuật toán song song T p ; số bộ xử lý là P. Khi đó: Tăng tốc = T s /T p Hiệu suất = T s /(PT p ) Tăng tốc luôn nhỏ hơn số bộ xử lý, cố gắng đạt tới bằng nên hiệu suất đạt cùng lắm là 1. 4.4. Các kĩ thuật cho việc nâng cao hiệu quả của thuật toán song song - Giảm số lượng bộ xử lý - Giảm độ phức tạp thời gian 4.5. Độ phức tạp của bài toán Dưới đây là mô hình phân lớp độ phức tạp của bài toán Nói chung xử lý song song không có tác dụng cho việc giải quyết các bài toán NP. Một bài toán thực hiện trong 400 tỷ thế kỷ trên một bộ xử lý sẽ mất 400 thế kỷ nếu chúng ta thực hiện song song hóa một cách hoàn hảo và thực hiện trên 1 tỷ bộ xử lý. Vì thế, xử lý song song được sử dụng chính cho việc tăng tốc thời gian thực hiện của bài toán P. II. Tổng quan MPI 1. Môi trường gửi nhận MPI. 1.1 Khái niệm SPMD độc trình dùng bộ nhớ phân tán. Mỗi máy hoạt động theo nhịp đồng hồ riêng của mình và chỉ có thể đọc dữ liệu ở trên máy của mình (distributed memory system & asynchronous operation mode). Đối với một mạng như vậy, thì về nguyên tắc, trên mỗi máy ta có thể cho chạy một trình riêng và dữ liệu của mỗi trình là riêng (MPMD). Các trình này có thể khác nhau, tức là chúng giải quyết các bài toán khác nhau, hoạt động độc lập và chỉ đến một lúc nào đó thì chúng mới trao đổi dữ liệu cho nhau. Sự việc xảy ra là: nếu thời điểm khởi động các trình trên các máy khác nhau mà không xác định, thì thời điểm cho việc chúng trao đổi dữ liệu cho nhau cũng không thể xác định được. Vậy chúng ta vẫn cần phải có một “trọng tài” để xác định thời điểm bắt đầu hoạt động cho chúng. Với quan niệm này người ta coi như tất cả chúng chỉ là một trình chung thôi độc trình. Điều này hàm ý: - (1) Trên mỗi máy tính chạy một trình, nhưng chúng hoàn toàn giống nhau, - (2) Tất cả các trình ấy được khởi động để chạy cùng một lúc. Tuy chỉ sử dụng một độc trình, nhưng các máy tính khác nhau vẫn sẽ làm những “phần việc” của mình, bởi trong trình chung ấy, mỗi “phần việc” là những đoạn lệnh riêng – mà mỗi máy sẽ tự kiểm tra xem mình cần chạy đoạn lệnh nào. Các trình, tức là các đoạn lệnh “riêng” ấy, chỉ có thể truy cập trực tiếp vào bộ nhớ RAM trong máy của mình – độc trình dùng bộ nhớ phân tán. Nếu ở trong trình có một biến được khai báo thì tức là nó sẽ có mặt ở tất cả các máy tính. Điều vừa được trình bày ra ở trên hàm ý là các máy tính không thể thực hiện được việc trao đổi giá trị với nhau thông qua các ô nhớ (bởi trên thực tế chúng chẳng có ô nhớ chung nào cả!). Các máy tính muốn trao đổi dữ liệu với nhau thì phải thông qua các lệnh gửi-nhận mà MPI cung cấp. Đó là môi trường đảm nhận nhiệm vụ truyền tải dữ liệu qua mạng. Mỗi máy tính muốn tham gia vào hệ thống MPI phải được cài thêm một trình thường trú, gọi là Driver-MPI. Nó gửi/nhận dữ liệu truyền theo đường mạng rồi chuyển đến nơi qui định. 1.2 Khái niệm mạng ảo. Mục đích của MPI là tạo ra một môi trường gửi-nhận dữ liệu thân thiện, cho phép chúng ta soạn thảo và thử trình MPI chỉ trên một máy, để sau đó chạy nó trên một mạng máy tính – có thể có cấu trúc rất phức tạp. Để làm việc này MPI cho phép mô phỏng một mạng ảo chỉ trên một máy tính. Độc trình của chúng ta sẽ chạy trên các máy ảo này (vẫn theo nguyên tắc trên mỗi máy chạy một trình). MPI bảo đảm để về mặt hình thức máy ảo hoàn toàn tương đương với máy thật. Điểm lưu ý là các độc trình trên cùng một máy thật thì dùng chung đĩa cứng. Cho dù là trên cùng một máy, nhưng các độc trình không thể trực tiếp trao đổi dữ liệu cho nhau (vì chúng chạy trên các máy ảo khác nhau). Hoàn toàn giống như các máy tính độc lập trong mạng, các chúng chỉ có thể trao đổi dữ liệu với nhau thông qua môi trường MPI. Thông thường người ta viết và chạy thử trình trên một máy tính, khi ấy sẽ có sự phân biệt giữa giữa trình và máy tính. Tuy nhiên, khi sử dụng trên một mạng gồm nhiều máy tính thì, thường là, trên mỗi máy chỉ chạy có một trình. Vì vậy, mỗi khi không có khả năng xảy ra nhầm lẫn, chúng ta sẽ dùng từ máy tính với hàm ý chỉ trình chạy trên nó. 1.3 Cấu trúc một trình MPI Cấu trúc khái quát của một trình MPI chạy trên nhiều máy bao gồm 2 phần. Phần thứ nhất là việc mỗi máy tự “nhận biết” đoạn trình mà mình cần thực hiện, và phần thứ hai là thủ tục gửi-nhận dữ liệu cho nhau. Sơ đồ như sau: #include <stdlib.h> #include <stdio.h> #include <mpi.h> main(int argc,char **argv) { … if (MPI_Init(&argc, &argv) != MPI_SUCCESS) exit(1); /* Initialize MPI */ MPI_Comm_size( , &np ); MPI_Comm_rank( , &ip ); … If (ip == me) { … do work-of-me … } … MPI_Finalize(); exit(0); /* check-out */ } Trong đó “np” là số lượng tiến trình, và “ip” là số hiệu của tiến trình hiện tại. Dựa vào số hiệu “ip” mà ta biết được là phải thực hiện khúc lệnh nào. 1.4 Tuần tự hóa song song Cho dù muốn hay không, thì vấn đề tuần tự hóa cũng xuất hiện khi các đối tượng hoạt động song song cùng sử dụng chung một thiết bị, ví dụ như màn hình. Quá trình chuyển từ song song sang tuần tự còn dính đến một vấn đề rắc rối là thứ tự trước sau. Ví dụ như việc các máy tự tìm ra số hiệu của mình, rồi in ra trên màn hình (của máy số 0). Trên màn hình, số hiệu có thể xuất hiện theo một thứ tự không thể đoán trước được, và điều này là do giữa các máy không có một giao tiếp nào để định ra thứ tự in; và do chúng chạy song song nên máy nào “may mắn” hơn thì sẽ in ra trước, máy nào “ít may mắn” hơn sẽ in ra sau(!). Để các máy có thể in số hiệu của mình theo thứ tự tăng dần, chúng ta cần phải có biện pháp xử lý – biện pháp như thế được gọi là tuần tự hóa song song. Có thể có 2 biện pháp: 1. Biện pháp thứ nhất là gọi tên. Theo cách này chúng ta bắt tất cả các máy phải dừng lại trước “barrier” để chờ và chỉ máy nào được gọi tên thì mới được “đi qua” để thực hiện công việc của mình. 2. Biện pháp thứ hai là “chuyền cờ”. Theo phương pháp này có một chiếc “cờ” được chuyền từ máy này đến máy khác theo số hiệu tăng dần. Chỉ máy nào nhận được cờ thì mới được thực hiện tiếp các lệnh của mình. 1.5 Các phương pháp gửi-nhận cơ bản Bản chất của việc gửi dữ liệu từ một máy tính này sang một máy tính khác là việc truyền một dãy xung điện qua dây dẫn. Xung điện này chuyển tải nội dung của một ô nhớ đặc biệt – “port” của máy “A” sang “port” của máy “B”. Cùng lúc ấy một chương trình chuyên dụng của máy “B” được kích hoạt để vận chuyển dữ liệu ấy tới nơi qui định. Như vậy vào thời điểm máy “A” gửi dữ liệu thì máy “B” phải hoạt động. Trường hợp ngược lại mà “B” vẫn muốn nhận được dữ liệu thì những dữ liệu ấy phải được một máy “C” nào đó khác nhận vào hộ. Về nguyên lý chỉ có thể có hai kiểu gửi-nhận: 1. Gửi trực tiếp – transient: “A” gửi, “B” nhận. Nếu “B” không nhận thì những dữ liệu này sẽ bị mất. 2. Gửi gián tiếp – persistence: “A” gửi vào “C”, “B” nhận từ “C”. Máy “C” phải liên tục hoạt động. Mỗi kiểu gửi nói trên có thể được thực hiện theo một trong hai phương án sau: 1. Gửi không đồng bộ – asynchorous. “A” đẩy luôn dữ liệu cho “B” mà không cần biết là “B” có nhận được dữ liệu không. Nếu B chưa sẵn sàng nhận thì dữ liệu sẽ bị mất. 2. Gửi đồng bộ – synchronous. Trước khi gửi dữ liệu, thì “A” tự tạo ra và gửi tín hiệu đồng bộ cho “B”. Các tín hiệu này có khuôn dạng nhất định và được gửi đi gửi lại cho tới khi nào B nhận được mới thôi (như vậy nếu có mất thì không phải là mất dữ liệu cần gửi mà chỉ là các tín hiệu đồng bộ). Tín hiệu đồng bộ hóa báo cho B biết các thông tin cần thiết như dung lượng dữ liệu sẽ gửi cho nó. Khi “A” nhận được tín hiệu hồi âm của B báo cho biết là B đang chờ để nhận dữ liệu do nó gửi, “A” chuyển ngay khối dữ liệu ấy cho “B” – đủ dung lượng như đã thông báo. Về nguyên tắc “A” được giải phóng ngay sau khi bắt đầu gửi (để đi thực hiện lệnh [...]... Chiến lược phân việc cho máy tính Bản chất của việc tính toán song song là làm cho thời gian tính toán giảm đi Việc này được thực hiện thông qua việc sử dụng nhiều máy tính cùng thực hiện Tuy nhiên, việc có được nhiều máy tính mới chỉ là điều kiện cần, vấn đề là chúng ta phải biết cách phân phối công việc cho chúng một cách hợp lý nhất Có 2 phương án phân chia việc cho các máy, theo “kế hoạch” và “đợi... cho “A”! Điều này được minh họa trong sơ đồ sau Nếu máy “A” và “B” mỗi máy đều có dữ liệu để ở sendbuf của mình, và muốn truyền chúng cho nhau Qui trình chuyển diễn ra tuần tự như sau: “A” gửi dữ liệu cho “B”, “B” nhận vào và để ở recvbuf trong máy của mình Sau đó “B” chuyển dữ liệu của mình (để ở sendbuf trong máy của “B”) cho “A”, và “A” lại nhận và để ở recvbuf trong máy của nó 2.2 Lệnh MPI_Recv... nó phải chờ (Nếu “A” chờ cho tới khi “B” thông báo cho “A” biết là mình đã nhận xong dữ liệu thì chúng ta gọi là gửi đồng bộ có bảo đảm.) Đối với các tiến trình trên một máy tính (đơn xử lý hay đa xử lý) hay ở các máy tính khác nhau trong một mạng thì việc gửi nhận dữ liệu cũng diễn ra tương tự như vậy, ngoại trừ một điểm khác là toàn bộ quá trình gửi nhận do hệ điều hành MPI đảm nhận MPI phục vụ công... trình này thông qua các thông tin overhead có ở trong các khối dữ liệu Các thông tin này báo cho MPI biết là phải làm gì với các khối dữ liệu ấy 2 Một số hàm chính trong thư viện MPI 2.1 Lệnh MPI_Send Lệnh này dùng để gửi dữ liệu từ một máy này đến một máy khác Lệnh MPI_Send chỉ có thể kết thúc nếu khối dữ liệu được chuyển xong Từ điều này suy ra rằng: máy “A” gửi dữ liệu cho “B” thì “B” phải nhận vào... nhất là phân phối theo kế hoạch Theo phương án này công việc được giao từ đầu theo năng lực tính toán Phương án thứ hai thì các máy tính tranh nhau nhận việc, làm xong lại đến nhận tiếp Phương án phân việc theo “kế hoạch” được sử dụng khi mà số lượng công việc ít, nhưng mỗi việc đòi hỏi nhiều thời gian chạy máy; và hơn thế những việc ấy tương đối khác nhau (chẳng hạn như cộng và nhân ma-trận là các... và các chỉ thị cho MPI về qui trình gửinhận - Chuyển các khối dữ liệu vừa đóng gói ấy ra vùng đệm Nếu là gửi ra vùng đệm tạm thì toàn bộ dữ liệu chỉ cần đóng thành 1 khối Một tiến trình muốn nhận dữ liệu về nó phải thực hiện việc: - Copy khối dữ liệu từ vùng đệm hệ thống về - Tách dữ liệu từ các khối nhỏ này và kết hợp chúng lại với nhau Các tiến-trình không cần biết chi tiết về công đoạn luân chuyển... nhỏ dữ liệu cần chuyển ra thành các khối nhỏ Các khối này được chuyển, lần lượt lần lượt cho từng tiến trình một (bằng cách làm này MPI tạo ra cảm giác là việc gửi-nhận giữa các tiến được thực hiện song song) Để làm được việc này MPI cấp cho mỗi tiến trình một vùng đệm (buffer) Vùng đệm này được gọi là vùng đệm hệ-thống, để phân biệt với vùng đệm tạm do bản thân tiến trình tạo ra Các khối dữ liệu cần... hết tiến trình gửi – “A” phát tín hiệu cho “B” thông báo là có một lượng dữ liệu cần gửi cho nó và xin phép gửi Tiến trình “A” sẽ phải chờ cho tới khi nào “B” gửi lại tín hiệu cho phép Khi “A” nhận được tính hiệu cho phép báo là “B” đang sẵn sàng nhận dữ liệu thì dòng dữ liệu được truyền từ “A” sang “B” Chỉ khi nào tiến trình “B” nhận xong dữ liệu thì lệnh gửi MPI_Ssend của tiến trình “A” nới được coi... việc ấy tương đối khác nhau (chẳng hạn như cộng và nhân ma-trận là các việc rất khác nhau) Phương án “xếp hàng” được sử dụng khi mà số lượng công việc rất nhiều, nhưng mỗi việc chỉ tốn ít thời gian chạy máy; và hơn thế chúng nó đều là các việc tương tự như nhau . TỔNG QUAN VỀ TÍNH TOÁN SONG SONG I. Tổng quan thuật toán song song 1. Khái niệm thuật toán song song Tính toán song song hay xử lý song song: là quá trình xử lý thông tin trong. thể thực hiện song song, ta gọi mức độ song song này là mức song song chương trình con. Mỗi chương trình cũng như chương trình con lại có hàng loạt câu lệnh, ta có mức độ song song câu lệnh,. không giới hạn . Thuật toán song song thực hiện trên mô hình P bộ xử lý được gọi là P -song song. Nếu thuật toán P -song song cho bài toán kích thước n đòi hỏi t(n) bước song song thì được gọi là P-có

Ngày đăng: 05/07/2014, 18:16

Từ khóa liên quan

Mục lục

  • 2.2 Lệnh MPI_Recv

Tài liệu cùng người dùng

Tài liệu liên quan