Hệ thống song song. Xử lý dữ liệu song song trên máy tính

“Song song như một phương pháp xử lý dữ liệu song song”

Kotovsk2010

Giới thiệu

Sự phát triển nhanh chóng của khoa học và sự thâm nhập tư tưởng của con người vào những lĩnh vực luôn mới mẻ, cùng với việc giải quyết những vấn đề đã đặt ra trước đây, liên tục làm nảy sinh một loạt câu hỏi và đặt ra những nhiệm vụ mới, thường phức tạp hơn. Vào thời của những chiếc máy tính đầu tiên, dường như việc tăng tốc độ lên 100 lần sẽ giải quyết được hầu hết các vấn đề, nhưng hiệu suất gigaflop của các siêu máy tính hiện đại ngày nay rõ ràng là không đủ đối với nhiều nhà khoa học. Điện và thủy động lực, thăm dò địa chấn và dự báo thời tiết, mô hình hóa các hợp chất hóa học, nghiên cứu thực tế ảo - đây không phải là danh sách đầy đủ các lĩnh vực khoa học mà các nhà nghiên cứu tận dụng mọi cơ hội để tăng tốc độ thực hiện các chương trình của họ.

Hướng đi năng động và hứa hẹn nhất để tăng tốc độ giải các bài toán ứng dụng là đưa rộng rãi các ý tưởng song song vào hoạt động của các hệ thống máy tính. Cho đến nay, hàng trăm máy tính khác nhau đã được thiết kế và thử nghiệm, sử dụng loại xử lý dữ liệu song song này hoặc loại khác trong kiến ​​trúc của chúng. Trong tài liệu khoa học và tài liệu kỹ thuật, bạn có thể tìm thấy hơn chục tên khác nhau chỉ đặc trưng cho các nguyên tắc hoạt động chung của các máy song song: đường ống vector, song song ồ ạt, máy tính có từ lệnh rộng, mảng tâm thu, siêu khối, bộ xử lý đặc biệt và bộ đa xử lý, máy tính phân cấp và cụm, luồng dữ liệu, máy tính ma trận và nhiều loại khác. Để hoàn thành phần mô tả, nếu chúng ta thêm dữ liệu về các tham số quan trọng như tổ chức bộ nhớ, cấu trúc liên lạc giữa các bộ xử lý, đồng bộ hóa hoạt động của các thiết bị riêng lẻ hoặc phương pháp thực hiện các phép tính số học thì số lượng kiến ​​trúc khác nhau sẽ trở nên hoàn toàn không thể hiểu được.

Nỗ lực hệ thống hóa toàn bộ bộ kiến ​​trúc bắt đầu sau khi M. Flynn xuất bản phiên bản đầu tiên về phân loại hệ thống máy tính vào cuối những năm 60 và tiếp tục liên tục cho đến ngày nay. Việc phân loại là rất quan trọng để hiểu rõ hơn về lĩnh vực chủ đề đang nghiên cứu, nhưng việc tìm ra một cách phân loại thành công có thể mang lại một số hậu quả đáng kể.

Câu hỏi chính của việc phân loại - cơ sở của nó là gì - có thể được giải quyết theo nhiều cách khác nhau, tùy thuộc vào việc phân loại này được tạo ra cho ai và nó nhằm giải quyết vấn đề gì. Do đó, việc phân chia máy tính thường được sử dụng thành máy tính cá nhân, máy trạm, máy tính mini, máy tính lớn, siêu máy tính mini và siêu máy tính có lẽ cho phép ước tính gần đúng chi phí của một máy tính. Tuy nhiên, nó không giúp người dùng hiểu rõ hơn những gì cần thiết để viết một chương trình hoạt động ở giới hạn hiệu suất của một máy tính song song, tức là. anh ấy quyết định sử dụng nó để làm gì.

Việc phân loại sẽ giúp hiểu rõ từng kiến ​​trúc là gì, chúng được kết nối với nhau như thế nào, cần tính đến điều gì để viết các chương trình thực sự hiệu quả hoặc lớp kiến ​​trúc nào cần được nhắm mục tiêu để giải quyết lớp vấn đề cần thiết. Đồng thời, việc phân loại thành công có thể gợi ý những cách khả thi để cải thiện máy tính và theo nghĩa này, nó sẽ khá có ý nghĩa. Thật khó để mong đợi tìm thấy những “điểm mù” không hề tầm thường, chẳng hạn như trong việc phân loại theo chi phí, nhưng việc suy nghĩ về một cách phân loại khả thi về mặt đơn giản và khả năng sản xuất của chương trình có thể cực kỳ hữu ích trong việc xác định hướng tìm kiếm mới. kiến trúc.

1. Hệ thống tính toán song song

Hệ thống tính toán song song là hệ thống máy tính và phần mềm vật lý thực hiện xử lý dữ liệu song song theo cách này hay cách khác trên nhiều nút máy tính.

Ý tưởng về tính toán song song dựa trên ý tưởng rằng hầu hết các vấn đề có thể được chia thành một tập hợp các vấn đề nhỏ hơn có thể giải quyết đồng thời. Thông thường, tính toán song song đòi hỏi sự phối hợp. Tính toán song song có nhiều dạng: song song cấp bit, song song cấp lệnh, song song dữ liệu và song song nhiệm vụ. Điện toán song song đã được sử dụng trong nhiều năm chủ yếu trong điện toán hiệu năng cao, nhưng gần đây ngày càng có nhiều sự quan tâm đến nó do sự tồn tại của các hạn chế vật lý đối với sự tăng trưởng của tốc độ xung nhịp của bộ xử lý. Tính toán song song đã trở thành một mô hình thống trị trong kiến ​​trúc máy tính, chủ yếu ở dạng bộ xử lý đa lõi.

Viết chương trình cho các hệ thống song song khó hơn so với các hệ thống tuần tự, vì sự cạnh tranh về tài nguyên tạo ra một loại lỗi (lỗi) phần mềm tiềm ẩn mới, trong đó các điều kiện chạy đua là phổ biến nhất. Giao tiếp và đồng bộ hóa giữa các quy trình đặt ra rào cản lớn để đạt được hiệu suất cao trong các hệ thống song song. Trong những năm gần đây, vấn đề tiêu thụ điện năng của các máy tính song song cũng bắt đầu được quan tâm. Bản chất của việc tăng tốc độ chương trình do song song hóa được giải thích bằng định luật Amdahl.

Nếu phép tính không liên quan đến các hành động tuần hoàn (lặp lại), thì N mô-đun điện toán sẽ không bao giờ thực hiện công việc nhanh hơn N lần so với một mô-đun điện toán đơn lẻ.

Ví dụ: để sắp xếp nhanh một mảng trên máy có bộ xử lý kép, bạn có thể chia mảng đó làm đôi và sắp xếp từng nửa trên một bộ xử lý riêng biệt. Việc sắp xếp mỗi nửa có thể mất một khoảng thời gian khác nhau nên việc đồng bộ hóa là cần thiết.

2. Các loại song song

2.1 Song song cấp độ bit

Hình thức song song này dựa trên việc tăng kích thước của từ máy. Việc tăng kích thước từ máy sẽ giảm số lượng thao tác mà bộ xử lý yêu cầu để thực hiện các thao tác trên các biến có kích thước vượt quá kích thước từ máy. Ví dụ: trên bộ xử lý 8 bit, bạn cần thêm hai số nguyên 16 bit. Để thực hiện việc này, trước tiên bạn cần cộng 8 bit thấp hơn của các số, sau đó cộng 8 bit trên và thêm giá trị của cờ nhớ vào kết quả phép cộng của chúng. Tổng cộng 3 hướng dẫn. Với bộ xử lý 16 bit, bạn có thể thực hiện thao tác này bằng một lệnh.

Trong lịch sử, bộ vi xử lý 4 bit được thay thế bằng bộ vi xử lý 8 bit, tiếp theo là bộ vi xử lý 16 bit và 32 bit. Bộ xử lý 32 bit từ lâu đã trở thành tiêu chuẩn trong điện toán hàng ngày. Với sự ra đời của công nghệ x86–64, bộ xử lý 64-bit bắt đầu được sử dụng cho những mục đích này.

2.2 Mức độ song song hướng dẫn

Một chương trình máy tính về cơ bản là một dòng lệnh được thực thi bởi bộ xử lý. Nhưng bạn có thể thay đổi thứ tự của các hướng dẫn này, phân phối chúng thành các nhóm sẽ được thực hiện song song mà không làm thay đổi kết quả của toàn bộ chương trình. Kỹ thuật này được gọi là song song cấp độ hướng dẫn. Những tiến bộ trong song song cấp độ hướng dẫn trong kiến ​​trúc máy tính xảy ra từ giữa những năm 1980 đến giữa những năm 1990.

Bộ xử lý hiện đại có một đường dẫn hướng dẫn nhiều giai đoạn. Mỗi giai đoạn của quy trình tương ứng với một hành động cụ thể được bộ xử lý thực hiện trong lệnh đó ở giai đoạn đó. Một bộ xử lý có N giai đoạn đường ống có thể đồng thời có tới N hướng dẫn khác nhau ở các mức độ hoàn thiện khác nhau. Một ví dụ kinh điển về bộ xử lý đường ống là bộ xử lý RISC với 5 giai đoạn: tìm nạp lệnh (IF), giải mã lệnh (ID), thực thi lệnh (EX), truy cập bộ nhớ (MEM), ghi kết quả vào thanh ghi (WB). Bộ xử lý Pentium 4 có đường dẫn 35 giai đoạn.

Một số bộ xử lý, ngoài việc sử dụng các đường ống, còn có khả năng thực hiện nhiều lệnh đồng thời, điều này cung cấp thêm khả năng song song ở cấp độ lệnh. Có thể triển khai phương pháp này bằng cách sử dụng siêu vô hướng, trong đó các lệnh có thể được nhóm lại với nhau để thực thi song song (nếu chúng không có phụ thuộc dữ liệu). Việc triển khai sử dụng song song mức hướng dẫn rõ ràng cũng có thể thực hiện được: VLIW và EPIC.

2.3 Song song dữ liệu

Ý tưởng chính của cách tiếp cận dựa trên tính song song của dữ liệu là một thao tác được thực hiện trên tất cả các phần tử của mảng dữ liệu cùng một lúc. Các đoạn khác nhau của mảng như vậy được xử lý trên bộ xử lý vectơ hoặc trên các bộ xử lý khác nhau của máy song song. Chương trình phân phối dữ liệu giữa các bộ xử lý. Vector hóa hoặc song song hóa trong trường hợp này thường được thực hiện ở giai đoạn biên dịch - dịch văn bản nguồn của chương trình thành các lệnh máy. Vai trò của lập trình viên trong trường hợp này thường là chỉ định cài đặt tối ưu hóa vectơ hoặc song song cho trình biên dịch, chỉ thị biên dịch song song và sử dụng các ngôn ngữ chuyên dụng cho tính toán song song.

2.4 Song song nhiệm vụ (đa luồng)

Phong cách lập trình dựa trên tính song song của nhiệm vụ ngụ ý rằng một nhiệm vụ tính toán được chia thành nhiều nhiệm vụ con tương đối độc lập và mỗi bộ xử lý được tải với nhiệm vụ phụ riêng của nó.

2.5 Hệ điều hành phân tán

Một hệ điều hành phân tán, bằng cách phân phối công việc một cách linh hoạt và tự động trên nhiều máy hệ thống khác nhau để xử lý, khiến một tập hợp các máy nối mạng hoạt động như một bộ đơn xử lý ảo. Nói chung, người dùng hệ điều hành phân tán không có thông tin về công việc của mình được thực hiện trên máy nào.

Một hệ điều hành phân tán tồn tại dưới dạng một hệ điều hành duy nhất trên một hệ thống máy tính. Mỗi máy tính trên mạng chạy HĐH phân tán thực hiện một phần chức năng của HĐH toàn cầu này. Một hệ điều hành phân tán hợp nhất tất cả các máy tính trên mạng theo nghĩa là chúng hợp tác chặt chẽ với nhau để sử dụng hiệu quả tất cả các tài nguyên của mạng máy tính.


Năm thứ 4, luồng 1 và 2, học kỳ 7

bài giảng (34 giờ), bài kiểm tra

Bộ phận chịu trách nhiệm về khóa học: ASVK

Trình biên dịch chương trình: thành viên-sửa. RAS, Tiến sĩ Vật lý và Toán học. Khoa học Voevodin Vl.V.,

Giảng viên: thành viên-sửa. RAS, Tiến sĩ Vật lý và Toán học. Khoa học Voevodin Vl.V.

chú thích

Khóa học thảo luận các vấn đề chung về tổ chức tính toán song song. Các tính năng của kiến ​​trúc của các hệ thống tính toán song song hiện đại được xem xét, các phương pháp cơ bản và mô hình lập trình trong môi trường song song được nghiên cứu.

Đối với luồng thứ nhất và thứ hai, các cách tiếp cận nhằm hài hòa kiến ​​trúc của hệ thống song song và cấu trúc của thuật toán, các vấn đề về lý thuyết phân tích cấu trúc của chương trình và thuật toán cũng như các mô hình trong tính toán song song sẽ được thảo luận.

Chương trình

1. Nhiệm vụ lớn và siêu máy tính. Xử lý dữ liệu song song và đường ống. Tính song song và khả năng xử lý trong kiến ​​trúc của máy tính hiệu năng cao hiện đại. Lệnh vô hướng và vector. Các thiết bị vô hướng, đường ống và vector. Hệ thống phân cấp bộ nhớ trong máy tính như một phương tiện để tăng tốc độ thực hiện chương trình, vị trí tính toán và vị trí sử dụng dữ liệu. Định luật Amdahl và hệ quả của nó, gia tốc siêu tuyến.

2. Các lớp chính của hệ thống tính toán song song hiện đại. Máy tính có bộ nhớ dùng chung, ví dụ, lý do giảm hiệu suất trong các chương trình thực. Kiến trúc SMP, NUMA, ccNUMA. Chuyển đổi bộ xử lý và mô-đun bộ nhớ, bus, chuyển mạch ma trận, mạng omega. Hệ thống máy tính đường ống vector, ví dụ, lý do giảm hiệu suất. Máy tính có bộ nhớ phân tán, ví dụ, lý do giảm hiệu suất. Cấu trúc liên kết giữa các bộ xử lý: hình sao, mạng, hình xuyến ba chiều, siêu khối nhị phân, các thuộc tính của chúng. Cụm tính toán, ví dụ, độ trễ và thông lượng của các công nghệ truyền thông khác nhau. Kiến trúc có tính song song ở cấp độ hướng dẫn máy, VLIW, siêu khối.

3. Công nghệ lập trình song song. Các ngôn ngữ tuần tự truyền thống và trình biên dịch song song, có vấn đề. Nhận xét và chỉ thị đặc biệt cho trình biên dịch, phần mở rộng của các ngôn ngữ hiện có. Ngôn ngữ lập trình song song đặc biệt Lập trình sử dụng thư viện và giao diện truyền tin nhắn. Thư viện chuyên đề song song, các gói chuyên dụng và hệ thống phần mềm cấp cao. Các công nghệ lập trình song song MPI, OpenMP, Linda.

4. Hiệu năng của hệ thống tính toán song song. Tính linh hoạt và chuyên môn hóa của máy tính, hiệu suất của bộ xử lý đặc biệt. Định luật Moore. Các phương pháp đánh giá hiệu suất. Giới thiệu một tham số số duy nhất, Mflops, MIPS. Hiệu suất máy tính cao nhất và thực tế. Kiểm tra Linpack và các biến thể của nó. Bộ chương trình kiểm tra bổ sung, STREAM và NPB.

5. Mô hình đồ thị của chương trình. Biểu đồ điều khiển và biểu đồ thông tin chương trình. Thông tin và lịch sử hoạt động thực hiện chương trình. Biểu đồ thuật toán như một dạng tham số nhỏ gọn để biểu diễn lịch sử thông tin. Tính độc lập về thông tin của các hoạt động và khả năng thực hiện song song của chúng. Độ dài của đường tới hạn của biểu đồ thuật toán được coi là thước đo mức độ song song. Song song hữu hạn và lớn, song song tọa độ và nghiêng. Các phép biến đổi chương trình tương đương, các phép biến đổi chu trình cơ bản.

6. Hệ thống máy tính phân tán không đồng nhất. Siêu máy tính và siêu máy tính, các dự án siêu máy tính hiện có. Đặc tính riêng biệt của siêu máy tính. Khái niệm về GRID, các thành phần và dịch vụ cơ bản, các dự án hiện có của các phân đoạn GRID, khái niệm về tổ chức ảo.

Văn học

1. Voevodin V.V., Voevodin Vl.V. Tính toán song song. – St. Petersburg: BHV St. Petersburg, 2002. - 608 tr.

2. Korolev L.N. Kiến trúc của bộ vi xử lý máy tính điện tử. – M.: Nhà xuất bản. Khoa Toán tính toán và Toán trường Đại học Tổng hợp Matxcơva, 2003.

3. V.V. Korneev. Hệ thống tính toán song song. – M.: Nhà xuất bản Kiến thức, 1999. – 320 tr.

4. Tài liệu của trung tâm thông tin và phân tích tính toán song song Parallel.ru.

văn học bổ sung

1. Antonov A.S. Lập trình song song sử dụng công nghệ

MPI: Hướng dẫn. – M.: Nhà xuất bản Đại học Quốc gia Mátxcơva, 2004. - 71 tr.

Tiến trình song song

Tiến trình song song

Xử lý song song là mô hình để thực hiện đồng thời một quy trình ứng dụng bởi một nhóm bộ xử lý. Có ba cách để thực hiện song song:
-1- Phương pháp SIMD làm việc với một luồng lệnh và một số luồng dữ liệu, trong đó tất cả các bộ xử lý làm việc trong cùng một chương trình đều xử lý mảng dữ liệu của riêng chúng dưới sự điều khiển của bộ xử lý chính;
-2- Phương pháp MIMD làm việc với nhiều luồng lệnh và nhiều luồng dữ liệu, trong đó các bộ xử lý hoạt động theo chương trình của chúng độc lập với nhau, chỉ thỉnh thoảng mới giao tiếp với nhau;
-3- Cách MISD làm việc với nhiều luồng lệnh và một luồng dữ liệu.

Bằng tiếng Anh: Tiến trình song song

Từ điển tài chính Finam.


Xem "Xử lý song song" là gì trong các từ điển khác:

    Tiến trình song song- Là một trong những kiểu xử lý thông tin có thể thực hiện đồng thời nhiều thao tác. Không giống như quá trình xử lý có ý thức, thường xảy ra tuần tự, kiểu xử lý này diễn ra mà không cần nỗ lực có ý thức. Ví dụ, đọc những thứ này... ...

    - (xử lý song song) Một phương pháp làm việc trên máy tính trong đó hai hoặc nhiều phần của chương trình được thực thi không tuần tự mà song song. Nói đúng ra, phương pháp này chỉ có thể được sử dụng trên các máy tính có hai hoặc nhiều... Từ điển thuật ngữ kinh doanh

    tiến trình song song- - Chủ đề viễn thông, khái niệm cơ bản EN xử lý song song...

    tiến trình song song- lygiagretusis apdorojimas statusas T sritis automatika atitikmenys: engl. xử lý song song vok. Song song với Nga. xử lý song song, f pranc. đặc điểm song song, m … Automatikos terminų žodynas

    xử lý thông tin song song- một mô hình xử lý thông tin trong não, theo đó thông tin trải qua một loạt biến đổi trong một số “khối chức năng” nhất định của não để tại bất kỳ thời điểm nào, nó được xử lý đồng thời (song song) theo nhiều... ... Bách khoa toàn thư tâm lý lớn

    XỬ LÝ THÔNG TIN SONG SONG- Xem xử lý thông tin, song song...

    Là phương pháp xử lý dữ liệu song song bởi một số lượng lớn bộ xử lý, triển khai phương pháp tổ chức song song MIMD. Trong tiếng Anh: Xử lý song song lớn Từ đồng nghĩa tiếng Anh: MPP Xem thêm: Xử lý song song Từ điển tài chính Finam... Từ điển tài chính

    XỬ LÝ, SONG SONG- Xử lý thông tin trong đó nhiều chuỗi hoạt động xử lý được thực hiện đồng thời hoặc song song. Việc xử lý có thể liên quan đến các thành phần ở mức độ cực thấp, không mang tính biểu tượng, chẳng hạn như những thành phần được sử dụng trong... ... Từ điển giải thích tâm lý học

    đường ống song song- lygiagretusis konvejerinis apdorojimas statusas T sritis radioelektronika atitikmenys: engl. đường ống song song vok. Đường ống song song được cung cấp, f rus. đường ống song song, f pranc. đặc điểm của đường ống song song, m... Radioelektronikos thiết bị đầu cuối

    xử lý đồng thời- xử lý song song - [L.G. Sumenko. Từ điển Anh-Nga về công nghệ thông tin. M.: State Enterprise TsNIIS, 2003.] Chủ đề công nghệ thông tin nói chung Từ đồng nghĩa xử lý song song EN xử lý đồng thời ... Hướng dẫn dịch thuật kỹ thuật

Sách

  • Xử lý dữ liệu song song
  • Xử lý dữ liệu song song, A. O. Latsis. Hướng dẫn này cung cấp cái nhìn tổng quan có hệ thống chuyên sâu về các công nghệ xử lý dữ liệu song song. Sự chú ý chính được dành cho các công nghệ phần mềm truyền thống về lập trình song song...

Bộ Giáo dục và Khoa học Liên bang Nga

FSBEI HPE "Kỹ thuật và Công nghệ Nhà nước Bryansk

học viện"

Khoa công nghệ thông tin

Xử lý thông tin tuần tự và song song

Công việc tính toán và đồ họa số 1

theo kỷ luật

"Công nghệ xử lý thông tin"

Phương án số 16

RGR-02068025.230400.084

Bryansk 2015

Giới thiệu 3

Xử lý thông tin song song 4

Hệ thống bộ nhớ dùng chung 6

Xử lý SQL song song 7

Xử lý thông tin tuần tự 9

10 hệ thống hàng loạt đơn giản

Tài liệu tham khảo 13

Giới thiệu

Nghiên cứu tính toán và đồ họa này kiểm tra việc xử lý thông tin tuần tự và song song. Ví dụ được đưa ra cho mỗi người trong số họ.

Xử lý thông tin tuần tự là việc truyền thông tin tuần tự từ đầu vào đến đầu ra thông qua một loạt các phép biến đổi (giai đoạn), sao cho trong mỗi khoảng thời gian (cụ thể đối với một khối nhất định), việc chuyển đổi chỉ được thực hiện trong một khối chức năng và thông tin chỉ đến với nó từ khối trước đó.

Xử lý thông tin song song là một mô hình xử lý thông tin, theo đó thông tin trải qua một loạt biến đổi trong các khối chức năng nhất định, do đó tại bất kỳ thời điểm nào, nó được xử lý đồng thời (song song) trong một số khối.

Xử lý thông tin song song

Xử lý dữ liệu song song, thể hiện ý tưởng thực hiện đồng thời một số hành động, có hai loại: đường ống và song song.

Tiến trình song song. Nếu một thiết bị nào đó thực hiện một thao tác trên một đơn vị thời gian thì nó sẽ thực hiện một nghìn thao tác trong một nghìn đơn vị. Nếu chúng ta giả sử rằng có năm thiết bị độc lập giống hệt nhau có khả năng hoạt động đồng thời, thì một hệ thống gồm năm thiết bị có thể thực hiện cùng một nghìn thao tác không phải trong một nghìn mà trong hai trăm đơn vị thời gian. Tương tự, một hệ thống gồm N thiết bị sẽ thực hiện cùng một công việc trong 1000/N đơn vị thời gian. Có thể tìm thấy sự tương tự tương tự trong cuộc sống: nếu một người lính đào một khu vườn trong 10 giờ, thì một đại đội gồm 50 người lính có cùng khả năng, làm việc đồng thời, sẽ hoàn thành cùng một công việc trong 12 phút - nguyên tắc song hành trong hành động!

Gia công băng tải. Cần làm gì để cộng hai số thực được biểu diễn dưới dạng dấu phẩy động? Rất nhiều thao tác nhỏ như so sánh đơn hàng, căn chỉnh đơn hàng, thêm mantissa, chuẩn hóa, v.v. Bộ xử lý của những chiếc máy tính đầu tiên thực hiện tất cả các “thao tác vi mô” này cho từng cặp đối số, lần lượt cho đến khi đạt được kết quả cuối cùng và chỉ sau đó mới tiến hành xử lý cặp số hạng tiếp theo.

Ý tưởng của xử lý đường ống là tách biệt các giai đoạn riêng lẻ để thực hiện một thao tác chung và mỗi giai đoạn, sau khi hoàn thành công việc của mình, sẽ chuyển kết quả sang giai đoạn tiếp theo, đồng thời nhận được một phần dữ liệu đầu vào mới. Chúng tôi đạt được mức tăng rõ ràng về tốc độ xử lý bằng cách kết hợp các thao tác cách đều nhau trước đó. Giả sử có năm thao tác vi mô trong một thao tác, mỗi thao tác được thực hiện trong một đơn vị thời gian. Nếu có một thiết bị nối tiếp không thể phân chia thì nó sẽ xử lý 100 cặp đối số trong 500 đơn vị. Nếu mỗi thao tác vi mô được tách thành một giai đoạn riêng biệt (hay còn gọi là giai đoạn) của thiết bị băng tải, thì trên đơn vị thời gian thứ năm, ở các giai đoạn xử lý khác nhau của thiết bị đó, năm cặp đối số đầu tiên sẽ được đặt , và toàn bộ bộ một trăm cặp sẽ được xử lý trong thời gian 5 + 99 = 104 đơn vị - khả năng tăng tốc so với thiết bị nối tiếp gần như gấp năm lần (theo số giai đoạn băng tải).

Có vẻ như việc xử lý đường ống có thể được thay thế thành công bằng tính song song thông thường, trong đó chúng tôi sao chép thiết bị chính nhiều lần bằng số lượng giai đoạn của đường ống được cho là sẽ được phân bổ. Trên thực tế, 5 thiết bị trong ví dụ trước sẽ xử lý 100 cặp đối số trong 100 đơn vị thời gian, nhanh hơn thời gian chạy của thiết bị băng tải! Do đó, bằng cách tăng số lượng thiết bị lên gấp 5 lần, chúng tôi đã tăng đáng kể cả số lượng thiết bị và giá thành của nó. Hãy tưởng tượng rằng một nhà máy ô tô quyết định loại bỏ dây chuyền lắp ráp trong khi vẫn duy trì tốc độ sản xuất ô tô. Nếu trước đây có một nghìn chiếc ô tô trên dây chuyền lắp ráp cùng một lúc, thì tương tự như ví dụ trước, cần tuyển một nghìn đội, mỗi đội có khả năng lắp ráp hoàn chỉnh chiếc ô tô từ đầu đến cuối, thực hiện hàng trăm loại hoạt động khác nhau và thực hiện việc này giống như thời điểm chiếc xe ở trên dây chuyền lắp ráp trước đây.

Ngày nay, tính song song trong kiến ​​trúc máy tính sẽ ít người ngạc nhiên. Tất cả các bộ vi xử lý hiện đại đều sử dụng một số dạng xử lý song song. Trong lõi Pentium 4, có thể thực hiện đồng thời tới 126 thao tác vi mô ở các giai đoạn thực thi khác nhau. Đồng thời, bản thân những ý tưởng này đã xuất hiện từ rất lâu rồi. Ban đầu, chúng được triển khai trên các máy tính tiên tiến nhất và do đó là đơn nhất vào thời đó. Sau đó, sau khi công nghệ phát triển phù hợp và sản xuất rẻ hơn, chúng chuyển sang các máy tính hạng trung, và cuối cùng ngày nay tất cả những thứ này được thể hiện đầy đủ trong các máy trạm và máy tính cá nhân.

Hiệu suất của nhiều ứng dụng chạy trên hệ thống máy tính bộ xử lý đơn có thể được cải thiện đáng kể bằng cách sử dụng các công cụ xử lý song song. Sau đây giới thiệu các khái niệm cơ bản về xử lý song song và kiến ​​trúc máy tính đa bộ xử lý.

Khi nhiều ứng dụng yêu cầu công việc của chúng được xử lý trên một máy tính có bộ xử lý đơn, bộ xử lý đơn của nó phải thực hiện tất cả công việc. Mục đích của xử lý song song thường là cải thiện hiệu suất ứng dụng. Khi một ứng dụng đưa ra yêu cầu công việc cho một máy tính có nhiều bộ xử lý, máy tính sẽ chia công việc thành các nhiệm vụ con logic rồi xử lý chúng bằng cách sử dụng nhiều bộ xử lý song song, giúp giảm thời gian hoàn thành công việc. Số lượng nhiệm vụ con do việc chia nhỏ một nhiệm vụ lớn được gọi là mức độ song song . Việc giảm thời gian xử lý thông tin cần thiết để hoàn thành một nhiệm vụ tỷ lệ thuận với mức độ song song. Họ cố gắng tăng hiệu suất của các hệ thống xử lý song song theo cách đảm bảo hiệu suất tối đa của từng bộ xử lý trong hệ thống.

Tăng hiệu suất máy tính nhờ đâu?

Tại sao siêu máy tính tính toán nhanh như vậy? Có thể có một số phương án trả lời, trong đó có hai phương án có lợi thế rõ ràng: phát triển nền tảng phần tử và sử dụng các giải pháp mới trong kiến ​​trúc máy tính.

Chúng ta hãy cố gắng tìm ra yếu tố nào trong số những yếu tố này có tính quyết định để đạt được hiệu suất kỷ lục. Chúng ta hãy chuyển sang các sự kiện lịch sử đã biết. Trên một trong những máy tính đầu tiên trên thế giới - EDSAC, xuất hiện vào năm 1949 tại Cambridge và có thời gian đồng hồ là 2 micro giây (2 * 10-6 giây), có thể thực hiện các phép tính số học 2 * n trong 18 * n mili giây , tức là trung bình thực hiện 100 phép tính số học mỗi giây. Hãy so sánh với một nút tính toán của siêu máy tính Hewlett-Packard V2600 hiện đại: thời gian xung nhịp xấp xỉ 1,8 nano giây (1,8 * 10-9 giây) và hiệu suất cao nhất là khoảng 77 tỷ phép tính số học mỗi giây.

Điều gì xảy ra? Hơn nửa thế kỷ, hiệu năng máy tính đã tăng hơn bảy trăm triệu một lần. Đồng thời, mức tăng hiệu suất liên quan đến việc giảm thời gian chu kỳ xung nhịp từ 2 micro giây xuống 1,8 nano giây chỉ khoảng 1000 lần. Phần còn lại đến từ đâu? Câu trả lời rất rõ ràng - việc sử dụng các giải pháp mới trong kiến ​​trúc máy tính. Vị trí chính trong số đó là nguyên tắc xử lý dữ liệu song song, thể hiện ý tưởng thực hiện đồng thời (song song) một số hành động.

Xử lý dữ liệu song song, thể hiện ý tưởng thực hiện đồng thời một số hành động, có hai loại: song song đường ống và song song thực tế. Cả hai loại xử lý song song đều mang tính trực quan nên chúng tôi sẽ chỉ đưa ra những giải thích nhỏ.

Tiến trình song song. Nếu một thiết bị nào đó thực hiện một thao tác trên một đơn vị thời gian thì nó sẽ thực hiện một nghìn thao tác trong một nghìn đơn vị. Nếu chúng ta giả sử rằng có năm thiết bị độc lập giống hệt nhau có khả năng hoạt động đồng thời, thì một hệ thống gồm năm thiết bị có thể thực hiện cùng một nghìn thao tác không phải trong một nghìn mà trong hai trăm đơn vị thời gian. Tương tự, một hệ thống gồm N thiết bị sẽ thực hiện cùng một công việc trong 1000/N đơn vị thời gian. Có thể tìm thấy sự tương tự tương tự trong cuộc sống: nếu một người lính đào một khu vườn trong 10 giờ, thì một đại đội gồm 50 người lính có cùng khả năng, làm việc đồng thời, sẽ hoàn thành cùng một công việc trong 12 phút - nguyên tắc song hành trong hành động!

Nhân tiện, người tiên phong trong việc xử lý song song các luồng dữ liệu là Viện sĩ A.A. Samarsky, người đã thực hiện các tính toán cần thiết để mô phỏng các vụ nổ hạt nhân vào đầu những năm 50. Samarsky đã giải quyết vấn đề này bằng cách cho vài chục cô gái trẻ ngồi cùng máy tính cộng. Các cô gái trẻ truyền dữ liệu cho nhau một cách đơn giản bằng lời nói và ghi những con số cần thiết vào máy cộng. Do đó, đặc biệt, sự phát triển của sóng nổ đã được tính toán. Có rất nhiều công việc, các cô gái trẻ mệt mỏi, và Alexander Andreevich đi lại giữa họ và động viên họ. Có thể nói đây là hệ thống song song đầu tiên. Mặc dù các tính toán cho bom khinh khí được thực hiện một cách thuần thục nhưng độ chính xác của chúng rất thấp do có ít nút trong lưới được sử dụng và thời gian tính toán quá dài.



Gia công băng tải. Cần làm gì để cộng hai số thực được biểu diễn dưới dạng dấu phẩy động? Rất nhiều thao tác nhỏ như so sánh đơn hàng, căn chỉnh đơn hàng, thêm mantissa, chuẩn hóa, v.v. Bộ xử lý của những chiếc máy tính đầu tiên thực hiện tất cả các “thao tác vi mô” này cho từng cặp đối số, lần lượt cho đến khi đạt được kết quả cuối cùng và chỉ sau đó mới tiến hành xử lý cặp số hạng tiếp theo.

Ý tưởng của xử lý đường ống là tách biệt các giai đoạn riêng lẻ để thực hiện một thao tác chung và mỗi giai đoạn, sau khi hoàn thành công việc của mình, sẽ chuyển kết quả sang giai đoạn tiếp theo, đồng thời nhận được một phần dữ liệu đầu vào mới. Chúng tôi đạt được mức tăng rõ ràng về tốc độ xử lý bằng cách kết hợp các thao tác cách đều nhau trước đó. Giả sử có năm thao tác vi mô trong một thao tác, mỗi thao tác được thực hiện trong một đơn vị thời gian. Nếu có một thiết bị nối tiếp không thể phân chia thì nó sẽ xử lý 100 cặp đối số trong 500 đơn vị. Nếu mỗi thao tác vi mô được tách thành một giai đoạn riêng biệt (hay còn gọi là giai đoạn) của thiết bị băng tải, thì trên đơn vị thời gian thứ năm, ở các giai đoạn xử lý khác nhau của thiết bị đó, năm cặp đối số đầu tiên sẽ được đặt , và toàn bộ bộ một trăm cặp sẽ được xử lý trong thời gian 5 + 99 = 104 đơn vị - khả năng tăng tốc so với thiết bị nối tiếp gần như gấp năm lần (theo số giai đoạn băng tải).

Có vẻ như việc xử lý đường ống có thể được thay thế thành công bằng tính song song thông thường, trong đó chúng tôi sao chép thiết bị chính nhiều lần bằng số lượng giai đoạn của đường ống được cho là sẽ được phân bổ. Trên thực tế, 5 thiết bị trong ví dụ trước sẽ xử lý 100 cặp đối số trong 100 đơn vị thời gian, nhanh hơn thời gian chạy của thiết bị băng tải! Có chuyện gì vậy? Câu trả lời rất đơn giản: bằng cách tăng số lượng thiết bị lên gấp 5 lần, chúng tôi tăng đáng kể cả số lượng thiết bị lẫn giá thành của nó. Hãy tưởng tượng rằng một nhà máy ô tô quyết định loại bỏ dây chuyền lắp ráp trong khi vẫn duy trì tốc độ sản xuất ô tô. Nếu trước đây có một nghìn ô tô trên dây chuyền lắp ráp cùng một lúc, thì tương tự như ví dụ trước, cần tuyển một nghìn đội, mỗi đội (1) có thể lắp ráp ô tô hoàn chỉnh ngay từ đầu. để hoàn thiện, thực hiện hàng trăm loại thao tác khác nhau, và (2) thực hiện việc này cùng lúc với thời điểm chiếc xe ở trên dây chuyền lắp ráp trước đó. Bạn có thể tưởng tượng chi phí của một chiếc xe như vậy? KHÔNG? Tôi đồng ý, điều đó thật khó, trừ khi nghĩ đến Lamborghini, nhưng đó là lý do tại sao quá trình xử lý dây chuyền lắp ráp lại nảy sinh...