1. 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ỏi phả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ận dạ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áy tí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ới hạ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ẫn tớ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ài toá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ời gian, 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ý song song. 2. Khái niệm 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ý. 3. 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ùng mộ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ột phé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ực hiệ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ới tố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ớn hơn. 4. Xử lý song song thực hiện dựa trên ba yếu tố sau: Sự phát triển của công nghệ mạch tích hợp VLSI cho phép tạo ra những hệ phức hợp có hàng triệu transistor trên một chip. Hiện nay giá thành của phần cứng giảm mạnh, tạo điều kiện để xây dựng những hệ thống có nhiều bộ xử lý với giá thành hợp lý. Tốc độ xử lý của các bộ xử lý theo kiểu von Neumann đã dần tiến tới giới hạn, không thể cải tiến thêm được do vậy dẫn tới đòi hỏi phải thực hiện xử lý song song. Những yếu tố trên thúc đẩy các nhà nghiên cứu phải tập trung khai thác công nghệ xử lý song song và tận dụng chúng để giải quyết những bài toán dặt ra. Vấn đề xử lý song song liên quan trực tiếp đến kiến trúc máy tính, phần mềm hệ thống, thuật toán và ngôn ngữ lập trình, …. Một máy tính song song là tuyển tập các bộ xử lý, thường là cùng một loại, kết nối với nhau theo một kiến trúc topo xác định để có thể hợp tác với nhau trong hoạt động và trao đổi dữ liệu được với nhau. Phần lớn các hệ điều hành ngày nay đều đã hỗ trợ đa xử lý, đa nhiệm và cho phép nghiên cứu, khai thác các phương pháp lập trình song song. Vấn đề là chúng ta phải có nhiều Bộ xử lý (các đơn vị tính toán độc lập) cùng hoạt động. Nhưng điều quan trọng của xử lý spng song là các bộ xử lý phải cùng tham gia " giải một bài toán". Nói cách khác, những tiến trình thực hiện trên mỗi bộ xử lý phải kết hợp, trao đổi với nhau để giải quyết bài toán đặt ra. 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ủa mảng. Trong xử lý song song, giả sử ta có một mô hình song song m bộ xử lý, ta chia việc cho 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ồi như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ực hiệ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ững thuậ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ật toá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ích hợ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ật toán, không gian bộ nhớ và khả năng lập trình, v.v.Đánh giá thuật toán song song thì phức tạ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…. Ví dụ: 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: (ndiv2+1)*((ndiv2+2)*….*n 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. Thời gian tính toán (ở bước 2 và 4): tcomp = n/2 + 1 Thời gian truyền thông (ở bước 1 và 3): tcomm = (tstartup + tdata) + (tstartup + tdata) = 2*tstartup + 2 * tdata Độ phức tạp tính toán là O(n) và độ phức tạp truyền thông là hằng số, do vậy độ phức tạp nói chung của thuật toán trên cũng là O(n). Hiện nay, nhiều ngôn ngữ lập trình song song đang được sử dụng như: Fortran 90, CUBE C, Occam, C-Linda, PVM với C/C++,CDC 6600, v.v. là công cụ quan trọng cho phép chúng ta cài đặt thuật toán song song trên những mô hình máy tính hổ trợ việc xử lý song song. Xử lý song song là một vấn đề phức tạp, khó khăn trước mắt chính là sự thay đổi về tư duy thuật toán (lâu nay chúng ta đã quen với cách nhìn vấn đề một cách tuần tự ), xây dựng mô hình máy tính song song, kỹ thuật cài đặt chương trình …. nhưng những gì mà lập trình song song đem lại thì thật là to lớn, không thể phủ nhận. Thế giới lập trình song song luôn mở rộng cánh cửa đón chào các bạn và điều bí ẩn đang cần được khám phá nhằm tạo ra những ứng dụng quan trọng đáp ứng yêu cầu thực tiễn cuộc sống. Địa chỉ liên lạc Hồ Xuân Bình Số nhà: 132/02 Phan Thanh - Thành phố Đà Nẵng Di động: 0903.537111 Email: hoxuanbinh@gmail.com
School@net (Theo THNT)
|