Chục năm trước, siêu máy tính là các cỗ máy siêu to khổng lồ nằm trong những trung tâm dữ liệu rất lớn sở hữu bởi chính phủ, các trường đại học, các doanh nghiệp giàu có. Nhưng năm 2020, khả năng tính toán đã đi một bước rất dài, và chúng ta có được những siêu máy tính nhỏ hơn, dùng cho nhiều mục đích hơn, giá thấp hơn và nhiều công ty có thể dùng nó cho các mục đích nghiên cứu, từ đó làm cho thế giới tốt đẹp hơn. Trong bài này mình giới thiệu (lại) về siêu máy tính, các kiến trúc của nó, cũng như cách mà siêu máy tính đã thay đổi trong 10 năm qua.
Lịch sử siêu máy tính
Cụm từ siêu máy tính (supercomputer) lần đầu tiên xuất hiện trong một bài báo của tờ New York World vào năm 1929 dùng để chỉ các bảng tính khổng lồ mà IBM thiết lập ở Đại học Columbia. Những 1960, kiến trúc siêu máy tính được một kĩ sư người Mỹ tên là Seymour Cray làm việc cho tổ chức Control Data Corporation (CDC) thiết kế và chiếc CDC 6600 ra mắt năm 1964 được xem là supercomputer đầu tiên của thế giới. Seymour Cray được tôn vinh là cha đẻ của siêu máy tính.
Sau đó một thời gian, Cray muốn rời CDC cùng với một số đồng nghiệp nhưng bị CEO William Norris của công ty này từ chối vì Cray đang làm việc trên một dự án cho Hải quân Mỹ. Mãi đến năm 1972 Cray mới thực hiện được ý định này và ông đã lập ra công ty riêng mang tên Cray Research. Sau này Cray Research đổi tên thành Cray Inc. và đây là một trong những hãng cung cấp siêu máy tính hàng đầu thế giới ở thời điểm hiện tại.
Tại công ty riêng của mình, vào năm 1976, Cray đã công bố chiếc supercomputer Cray-1 với CPU 80MHz và nó là một trong những siêu máy tính được người ta biết đến nhiều nhất. Tới năm 1985, Cray-2 ra mắt với 8 vi xử lí. Hệ thống này được làm mát bằng chất lỏng và chất flourinert do 3M sản xuất. Cỗ máy này có tốc độ tính toán 1,9 gigaflops và nó chính là siêu máy tính nhanh nhết thế giới đến tận những năm 1990.
Siêu máy tính Cray-1 với thiết kế hình trụ, đảm bảo khoảng cách giữa vi xử lí với các thành phần khác trong hệ thống là đều nhau
Nếu như những chiếc siêu máy tính của năm 1980 chỉ dùng vài CPU thì đến năm 1990, siêu máy tính đã được trang bị hàng nghìn bộ vi xử lí và chúng bắt đầu xuất hiện nhiều ở Mỹ, Nhật. Kể từ đây, tốc độ tính toán của loại máy tính này bắt đầu tăng vọt một cách nhanh chóng. Ví dụ như chiếc siêu máy tính dùng trong hầm gió của Fujitsu sử dụng 166 vi xử lí vector* với tốc độ 1,7 gigaflops mỗi chip vào năm 1994. Hai năm sau đó, đến lượt máy Hitachi SR2201 với tốc độ 600 gigaflops có được nhờ 2048 bộ xử lí cũng đã làm cho cả thế giới kinh ngạc. Intel cũng có siêu máy tính Paragon của mình với khoảng 1000 đến 4000 chip i860 và nó từng đạt danh hiệu nhanh nhất thế giới vào năm 1993.
*Vi xử lí vector là CPU được tích hợp các bộ chỉ dẫn đặc biệt để có thể hoạt động trong mảng dữ liệu 1 chiều. CPU vector có thể tăng đáng kể hiệu năng ở một số tác vụ nhất định, đặc biệt là trong lĩnh vực giả lập số hoặc và thực thi các tác vụ giống nhau. CPU vector phổ biến trong những năm 1970-1980 nhưng ngày nay nó đã gần như biến mất hoàn toàn.
Đến ngày hôm nay, siêu máy tính dần xuất hiện nhiều hơn và nó cũng có mặt trên nhiều quốc gia hơn. Hệ điều hành, kiến trúc cũng như phần cứng dùng trong siêu máy tính cũng theo đó thay đổi rất nhiều so với vài chục năm trước. Đa số vẫn là Linux, thỉnh thoảng có vài con siêu máy tính dùng Windows nhưng không nhiều.
Người ta dùng siêu máy tính để làm gì?
Những năm 1970, siêu máy tính như chiếc Cray-1 thường được dùng cho dự báo thời tiết, nghiên cứu khí động lực học. Tới những năm 1980, người ta dùng nó để phân tích xác suất thống kê, thiết kế các mô hình che chắn phóng xạ. Năm 1990-2000, người ta xài nó để phá mật mã, mô phỏng các bài thử nghiệm hạt nhân (mà không cần phải đem ra test ngoài đời thật, giảm thiểu rủi ro). Thời 2010, người ta xài đó để nghiên cứu ở cấp độ phân tử.
Và năm 2020 thì người ta dùng siêu máy tính để nghiên cứu, mô hình và dự báo về sự bùng phát của các bệnh tật giống như COVID-19. IBM Summit là chiếc máy tính làm điều đó, nó có công suất 10 MW được chế tạo với 4608 node xử lý, mỗi node xử lý chứa một cặp CPU Power9 3,07 GHz và 6 GPU Nvidia Volta V100. Đây là siêu máy tính nhanh nhất trên Trái Đất với năng lực tính toán đạt đến 148.6 petaFLOPS với bài test Linpack và đạt hiệu năng tối đa trên 200 petaFLOPS.
Đây chỉ là một vài ví dụ đơn giản và nổi tiếng mà thôi. Vì siêu máy tính rất mạnh, có khả năng xử lý những phép tính rất phức tạp trong thời gian ngắn nên những ứng dụng của nó gần như là không giới hạn. IBM thậm chí còn điều chỉnh chiếc siêu máy tính Blue Gene/P của họ để mô phỏng lại hoạt động của neuron trong não người. Nó đã có 1,6 tỉ neuron với khoảng 9 nghìn tỉ kết nối rồi kìa. Ngày nay siêu máy tính cũng được dùng để huấn luyện các mô hình AI phức tạp mà nếu dùng máy tính cá nhân thì không train nổi, còn dùng các server truyền thống thì vẫn mất rất nhiều thời gian.
Kiến trúc phần cứng của siêu máy tính
Những chiếc siêu máy tính đầu tiên, chẳng hạn như chiếc CDC 6600, giải phóng CPU khỏi việc điều khiển các thiết bị ngoại vi như chuột, bàn phím. CPU khi đó chỉ dùng để xử lý số liệu mà thôi, nên nó nhanh hơn bình thường.
Mọt số siêu máy tính sau đó như Cray-1, Cray-2 thì dùng nhiều CPU chạy song song với nha, được kết nối đều nhau tới bộ nhớ (RAM) để đảm bảo tốc độ và hiệu năng. Thế nên nó mới có hình trụ tròn đó anh em. Những kiến trúc này cũng tạo ra các xử lý song song (parallel processing) để cho phép vi xử lý tính toán được nhiều phép tính trong mỗi chu kỳ xung của chip, thay vì phải xử lý tuần tự mỗi lần 1 cái như truyền thống.
Dần dần người ta ngày càng bổ sung nhiều CPU hơn cho các siêu máy tính này, tăng số lượng RAM lên, thậm chí tăng thêm số lượng máy tính cùng kết nối với nhau trong mạng lưới CPU. Bằng cách này, công việc sẽ được chia sẻ giữa nhiều máy tính, nhiều CPU giúp cho chúng hoạt động hiệu quả hơn, thời gian chờ đợi tính toán giảm xuống và kết quả có nhanh hơn, các nhà khoa học có thêm thời gian để đánh giá, điều chỉnh lại mô hình của họ mà không phải đợi quá lâu như xưa.
Khi số lượng máy tính tăng lên, người ta lại gặp vấn đề khác: làm sao kết nối các máy lại với nhau mà vẫn đảm bảo chúng nhận dữ liệu đủ nhanh, chứ không thì sẽ tạo ra hiện tượng nghẽn cổ chai. CPU và RAM thì đợi dữ liệu vào, nhưng kết nối mạng quá chậm khiến dữ liệu đi vào không kịp thì cũng như không. Vậy nên các nhà sản xuất siêu máy tính phải dùng các công nghệ mới nhất về cáp truyền dữ liệu quang học để không ngừng cải tiến các hệ thống của họ. Như chiếc siêu máy tính Tianhe-1 của Trung Quốc dùng một hệ thống mạng được phát triển riêng mới chịu nổi.
Và trong một siêu máy tính, hình ảnh bạn thường thấy sẽ như bên dưới. Đây là một computer card dùng trong siêu máy tính Titan, từng là siêu máy tính mạnh nhất thế giới vào năm 2013 và đặt tại Mỹ.
Ngoài CPU, ngày nay người ta còn gắn thêm cả GPU cho siêu máy tính. Tất nhiên không phải là để chơi game rồi. GPU có khả năng tính toán song song tốt hơn so với CPU, nên nó được dùng như một bộ xử lý phụ trợ để giúp giải toán nhanh hơn. Thời 2012-2013, người ta còn tranh cãi về hiệu quả của GPU trong các hệ thống siêu máy tính vì nó làm cho phần mềm trở nên phức tạp. Nhưng năm 2020 thì mọi chuyện đã khác, các công nghệ xử lý dữ liệu lớn, xử lý thuật toán AI đều hỗ trợ GPU rất tốt nên việc gắn GPU vào siêu máy tính đã không còn phải bàn cãi gì nữa.
Nhiều computer card như trên kết nối lại với nhau thành một hệ thống hoàn chỉnh, như hình bên dưới bạn có thể thấy.
Tới thập niên 21, tức thời hiện nay, người ta bắt đầu làm ra thêm những kiến trúc mới để đáp ứng nhu cầu mới. IBM Blue Gene đánh đổi sức mạnh của từng CPU để đổi lấy mức độ tiêu thụ năng lượng thấp hơn, bù lại họ có thể cho nhiều vi xử lý cùng chạy ở nhiệt độ phòng và làm mát chúng bằng máy lạnh thông thường. Việc này giúp giảm kinh phí vận hành siêu máy tính đi rất nhiều.
Siêu máy tính Tianhe-1A thì dùng kiến trúc lai, nó kết hợp giữa 14.000 bộ xử lý Xeon Phi của Intel với 7.000 card đồ họa NVIDIA Tesla, gắn trên 3.500 khung máy và lắp đặt vào 112 cabin khác nhau. Tổng cộng nó có 262 terabyte RAM, 2 petabyte bộ nhớ lưu trữ.
Người ta đo siêu máy tính bằng gì
Để đo hiệu năng của siêu máy tính, hay thậm chí là CPU và GPU, người ta dùng khái niệm FLOPS. Đây là chữ viết tắt của floating point operations per second, tức là trong một giây máy tính đó có thể tính toán được bao nhiêu phép tính dấu chấm động (còn gọi là dấu phẩy động). Đây là cách mà máy tính biểu diễn số thực, anh em nào muốn biết thêm thì xem ở đây.
Với các bộ xử lý bình thường thì người ta hay đo tới gigaflops, nhưng còn siêu máy tính thì phải đo bằng teraflops.
Có một danh sách các siêu máy tính mạnh nhất thế giới, gọi là TOP500, trang web của họ đây. Tính đến tháng 6/2019, siêu máy tính Summit của Mỹ đang mạnh nhất thế giới với năng lực tối đa 200.794 TFLOPS. Chiếc máy này sở hữu 2.414.592 nhân tính toán, bao gồm cả CPU + GPU và các loại card bổ trợ khác. Anh em có thể dùng link này để xem danh sách các siêu máy tính mạnh nhất hiện nay.
Về con siêu máy tính của VinAI mới mua
Tháng 5/2020, VinAI (thuộc Vingroup) công bố họ mua siêu máy tính NVIDIA DGX A100 để phục vụ cho công tác nghiên cứu các mô hình machine learning, AI nói chung, và mục đích là để xử lý ngôn ngữ tự nhiên cũng như xử lý hình ảnh. Một chiếc DGX A100 có năng lực 5 petaflops (5 triệu tỷ phép tính/giây). Đây là hệ thống phát triển dựa trên kiến trúc NVIDIA Ampere được chế tạo với quy trình công nghệ 7nm, sức mạnh xử lý tương đương một trung tâm dữ liệu.
Cứ một máy A100 có 2 CPU AMD 64 nhân, 8 GPU A100 và tổng bộ nhớ của card đồ họa (vRAM) là 320GB. 8 GPU này được kết nối với nhau bằng kết nối tốc độ cao NVLink. RAM của máy là 1TB, SSD NVMe 15TB. Giá của một chiếc NVIDIA DGX A100 là 199.000 USD, giảm phân nửa so với thế hệ trước.
NVIDIA cũng mới giới thiệu A100 hồi đầu tháng 5/2020 thôi.
Chưa rõ Vin sẽ mua bao nhiêu con NVIDIA DGX A100, nhưng thường thì người ta sẽ mua một vài đến chục máy và kết nối chúng với nhau để tạo ra một cluster xử lý rất mạnh, sức tính toán sẽ tăng lên vài lần. Nếu chỉ dùng 1 con thì cũng được không sao cả.
Anh em thấy là siêu máy tính này rất khác so với những gì chúng ta đọc từ đầu. Nó nhỏ gọn hơn, tiêu thụ ít điện năng hơn. Điều này là hoàn toàn hợp lý, vì quy mô của mỗi siêu máy tính mỗi khác, đâu phải lúc nào cũng cần cả data center siêu to khổng lồ đâu. Và NVIDIA, hay VInAI, gọi đây là siêu máy tính cũng hợp lý, bởi nó có năng lực xử lý số liệu cao hơn rất nhiều lần so với máy tính cá nhân, hay các server chung chung mà chúng ta đang xài. Và đó cũng là định nghĩa của “siêu máy tính” đấy.
Ngoài VinAI, nhiều công ty, tổ chức trên thế giới cũng như các siêu máy tính nhỏ nhỏ kiểu này để phục vụ cho việc nghiên cứu của họ. NVIDIA đã ra mắt dòng DGX đến thế hệ thứ 3 rồi. Thế hệ đầu tiên xuất hiện tận vào năm 2016.
Nguồn: Wikipedia (1), (2)