Theo định nghĩa từ IBM, supercomputer là một hệ thống máy tính cấp độ siêu nhanh, thông thường được xây dựng bằng việc tăng cường hệ thống các đường truyền kết nối giữa các máy tính, tăng cường khả năng đọc ghi dữ liệu, tăng cường hệ thống bộ nhớ và các nhân xử lý của CPU.
Nói một cách nôm na, hệ thống supercomputer chính là một hệ thống bao gồm các máy tính bàn rất xịn (hay dùng từ cao cấp hơn là các máy chủ, server) được gia cố tăng cường các đường truyền kết nối nội hệ. Việc này bao gồm nhóm các vi xử lý lại với nhau thành các group - symmetric multiprocessing và các khối bộ - memory block, để đồng thời hợp lực lại giải một bài toán.
" Hôm sau là sinh nhật crush và bạn muốn làm một hộp ngôi sao tặng cho crush, bạn chỉ có thể làm 1 phút 1 ngôi sao, nhưng để đầy hộp thì cần 10 ngày nhưng hôm sau đã là sinh nhật của crush.
Nhưng may thay bạn đã tìm được các đồng đội phụ bạn gấp, do đó, bạn chỉ mất 30 phút để lấp đầy hộp quà.
--> Hãy suy nghĩ một tí về vấn đề này:
- Nếu bạn một mình gấp các ngôi sao, thì bạn sẽ phải tuần tự (sequentially) gấp vì bạn chỉ có 2 tay để thao tác.
- Công việc gấp ngôi sao này không có trật tự sắp xếp, nghĩa là ngôi sao trước và sau không cần có thứ tự thực hiện.
- Các bạn hỗ trợ có khả năng thực hiện công việc gấp ngôi sao giống bản thân mình tự gấp
Hình 1. Minh hoạ và hiệu năng của sự song song hoá công việc.
Hãy nhìn về cách giải quyết bài toán bằng máy tính trên thực tế.
Tôi muốn in ra màn hình 10 số random bất kỳ.
Trong trường hợp:
Tuần tự: tôi phải dùng vòng lặp từ 1 đến 10 và sau đó gọi hàm random để in số ấy ra trên cùng 1 core của vi xử lý.
Song song: tôi có thể gọi cùng lúc 10 core xử lý gọi hàm random để in số ra trên 10 cores của vi xử lý.
Như thế về mặt nguyên tắc, tôi đã tiết kiệm được khoảng 10 lần thời gian cho việc xử lý song song trên cùng một lúc 10 cores thay vì chỉ tuần tự thực hiện công việc trên 1 core.
Tăng tốc độ xung của vi xử lý: hiện nay, các vi xử lý thường có tốc độ vài GHz. Với việc thu nhỏ kích cỡ và chu trình bán dẫn sử dụng trên vi xử lý, tốc độ xung của vi xử lý đã được cải thiện khá đáng kể và đã chững lại trong gần 15 năm qua ở giới hạn 5GHz. Nhìn vào bức tranh toàn cảnh từ năm 2010 đến năm 2020, chu trình vi xử lý đã chuyển từ 45 nm vào đầu thập kỷ thành 10 nm (Intel Cannon Lake) và 7 nm (AMD Zen 2). Tuy nhiên, việc tăng tốc độ clock (độ nhanh chuyển mạch của transitors trên CPU) cũng sẽ dẫn đến việc CPU sẽ nóng hơn.
Tăng lưu lượng tương tác dữ liệu (data streams) trên cùng lệnh chỉ dẫn (instructions) của CPU: đây là một trong những phương pháp song song hoá trực tiếp phần cứng theo Flynn's taxonomy. Thông thường, kiến trúc vi xử lý có thể được thiết kế theo dạng SISD (đơn luồng instruction, đơn luồng dữ liệu), SIMD (đơn luồng instruction, đa luồng dữ liệu), MISD (đa luồng instructions, đơn luồng dữ liệu) và MIMD (đa luồng dữ liệu và instructions). Hiện nay, các tập lệnh của CPU đều hỗ trợ mạnh kiến trúc SIMD vì đa số trong trường hợp thực tế, chúng ta cần áp dụng một phép toán giống nhau cho nhiều điểm trên ma trận một cách đồng thời (như xử lý ảnh, chéo hoá ma trận, tensor...). Đây là phương pháp song song hoá tính toán trên phần cứng rất phổ biến hiện nay trên các dòng CPU tiên tiến.
Tăng số nhân xử lý trên cùng một CPU: cách giải quyết hiện nay của các công ty thiết kế vi xử lý là tích hợp nhiều core CPU trên cùng một bản wafer. Cách này buộc người dùng phải tối ưu hoá thuật toán của chính mình, bằng cách làm cho thuật toán có thể chia nhỏ thành nhiều bài toán độc lập nhau. Cách này có thể mở rộng trên nhiều máy bằng các kết nối khác nhau như kết nối mạng LAN (đi qua chipset trên mainboard) hoặc kết nối Tofu (trực tiếp trên CPU). Đây là cách thông thường nhất để xây dựng supercomputer.
Trong cuộc đua phát triển các siêu máy tính, một khác niệm hay thường được nhắc đến hiện nay là tốc độ "exascale". Exascale được định nghĩa thông qua khái niệm hệ thống tính toán các khả năng thực hiện 10^18 các phép toán với độ chính xác Double Precision trong một giây (đạt được tốc độ exaFLOPS). Theo top500 [2], một bảng xếp hạng các supercomputer trên thế giới, Tính cho đến hiện tại (tháng 6 năm 2023), chỉ có duy nhất supercomputer Frontier của Mỹ đạt được hơn 1 exascale về phần cứng. Đứng thứ hai thế giới tính tới tháng 6 năm 2023 là supercomputer Fugaku của Nhật với exascale trên lý thuyết tính toán với single precision. với double precision, Fugaku chỉ đạt 0.442 exaFLOPS. Chúng ta có thể nhìn thấy xu hướng bão hoà của performance xuất hiện từ những năm 2018 cho đến nay ở hình 2
Trong cuộc đua supercomputer, nằm trong top đầu của những quốc gia có hệ thống tính toán mạnh nhất cũng là những quốc gia dẫn đầu về công nghiệp. Theo đó, Mỹ và Trung Quốc dẫn đâu về số lượng supercomputer sở hữu, theo sau đó là Đức, Nhật và các nước châu Âu. Tuy nhiên, về mặt hiệu năng, Mỹ và Nhật hiện đang dẫn đầu về supercomputer. Tại châu Á, ngoài Nhật Bản, Trung Quốc đã nổi danh trong làng High Performance Computing, Hàn Quốc, Ả Rập Saudi, Đài Loan, Ấn Độ, Thailand, Ả rập thống nhất đã có các supercomputer vào top 100 thế giới. Ở đông nam á, Thailand hiện dẫn đầu với supercomputer LANTA đứng thứ 79 thế giới. Quốc gia có nền kinh tế phát triển Singapore có supercomputer ASPIRE2 hiện đứng thứ 197 thế giới, A1C đứng thứ 219. Hiện tại, Vietnam chúng ta chưa có supercomputer nào vào top 500 thế giới.
Thị trường nhà sản xuất supercomputer tập trung vào các hãng có thế mạnh như HPE, Dell, Fujitsu, Lenovo, Atos, NVIDIA... (hình 3). Đáng lưu ý trong 5 năm gần đây, Lenovo là công ty nằm trong top đứng đầu các nhà cung cấp giải pháp supercomputer trên toàn thế giới với 168 hệ thống Lenovo ThinkSystems hiện đang vận hành trên toàn thế giới. Đáng kể nhất là một số các công ty tập đoàn lớn đã rút khỏi thị trường supercomputer như Hitachi, Oracle...
Trong những năm gần đây, các supercomputer mạnh nhất thế giới đã chuyển dịch sử dụng vi xử lý của AMD EPYC thay vì dùng Intel XEON như những năm trước đây (hình 4). Các CPU của AMD hiện nay được cho là có hiệu năng số core cao hơn nhưng tiết kiệm điện hơn so với các dòng khác. Đặc biệt, supercomputer Fugaku là supercomputer đầu tiên trên thế giới sử dụng kiến trúc ARM làm vi xử lý. Cùng với sự phát triển của công nghệ vi xử lý, Intel và AMD gần như thống lĩnh toàn bộ thị trường cả về máy chủ (supercomputer) và máy tính cá nhân (máy bàn).
Kể từ khi NVIDIA đưa ra khái niệm tính toán trên GPU, các dòng Accelerator/Co-Processor như GPU của NVIDIA, AMD, Co-Processor Xeon Phi của Intel mới được sử dụng trên các supercomputer (hình 5). Với đặc điểm số core tính toán chuyên dụng nhiều hơn so với CPU, GPU đã góp phần thúc đẩy tăng tốc độc tính toán của các supercomputer từ những năm 2007 trở đi. Đáng lưu ý, NVIDIA gần như thống lĩnh thị trường cung cấp bộ tăng tốc tính toán trong khi đó, giải pháp Co-Processor Intel Xeon Phi được đánh giá khá thất vọng và gần những năm gần đây đã được khai tử.
Hình 5. Biểu đồ thống kê về thị phần của thị trường GPU và Co-processor sử dụng trên supercomputer.
Hình 2. Biểu đồ thể hiện tốc độc của các supercomputers qua từng năm
Hình 3. Biểu đồ về thị phần của trường cung cấp giải pháp về supercomputer trên toàn thế giới. Ảnh thu thập từ danh sách top500.
Hình 4. Biểu đồ thống kê về thị phần của thị trường vi xử lý sử dụng trong hệ thống siêu máy tính. Ảnh thu thập từ danh sách top500.
Các câu hỏi này thường được đặt ra trong các dự án xây dựng supercomputer. Kể từ khi máy tính điện tử ra đời cho đến nay, thiết bị này đã đi sâu vào hoạt động kinh tế xã hội của nhân loại. Do đó, supercomputer thường được xây dựng với hai mục tiêu chủ yếu là giải quyết bài toán xã hội, và giải quyết bài toán khoa học. Trong mục này, chúng ta sẽ thử nhìn qua mục tiêu của các supercomputer trong top đầu thế giới giải quyết các bài toán gì.
Supercomputer exascale đầu tiên của thế giới Frontier đặt ra các mục tiêu giải quyết các bài toán của Hoa Kỳ do được xây dựng tại Phòng Nghiên Cứu Trọng Điểm Quốc Gia Oak Ridge Hoa Kỳ. Về vấn đề xã hội, Frontier đặt trọng tâm vào giải quyết các vấn đề về dự đoán và tính toán các vấn đề liên quan đến hạt nhân như vòng đời của nhiên liệu uranium nhằm giảm tác hại của phóng xạ hạt nhân tới quốc gia. Frontier cũng đặt mục tiêu trọng tâm vào kiểm soát các dòng dữ liệu đa chiều, các hệ thống tư vấn chiến lượt của quốc gia để có những quyết sách kịp thời tư vấn cho chính phủ. Frontier cũng là công cụ để phân tích các dữ liệu lớn thu thập từ vệ tinh để giúp hỗ trợ kiểm soát nguy cơ thiên tai, biên giới quốc phòng.
Supercomputer Fugaku được xây dựng dựa trên ngân sách của bộ Giáo dục, Văn hoá, Thể thao và Khoa học Nhật Bản (MEXT). Fugaku không trực tiếp đặt mục tiêu giải quyết bài toán xã hội nhưng Fugaku là hệ thống hỗ trợ các tập đoàn Nhật về nghiên cứu phát triển sản phẩm, dự báo thời tiết, thiên tai (động đất, sóng thần, núi lửa phun trào), dòng hải lưu...
Frontier: hướng đến các bài toán khoa học sự sống như nghiên cứu đất phá triển cây trồng, nghiên cứu về đa dạng sinh học về gene, nghiên cứu về năng lượng sạch, nghiên cứu về năng lượng hạt nhân và vật lý năng lượng cao, vũ trụ thiên văn, vật liệu tiên tiến...
Fugaku: bản thân Fugaku được xây dựng với mục tiêu khoa học và R&D. Fugaku cũng tập trung vào các mục tiêu về khoa học như Frontier. Thêm vào đó, Fugaku có hoạt động hỗ trợ các tập đoàn làm R&D phát triển các sản phẩm đi vào thực tế như thiết kế thuốc, thiết kế vật liệu pin...
Trong khuôn khổ hiểu biết hạn hẹp, tôi chỉ có thể trình bày một vài vấn đề cần giải quyết bằng supercomputer. Trong bài này có tham khảo thêm về các báo cáo ứng dụng của Fugaku 100Kei [3].
Giải phương trình Schroedinger bằng phương pháp tính toán số. Phương trình Schroedinger là phương tiện giúp con người có thể tính toán được các ứng xử của điện tử, nguyên tử của các hợp chất dưới các tác nhân vật lý hoá học khác nhau. Phương trình cho phép miêu tả mối liên hệ về mặt năng lượng của hệ với tính chất sóng của các vi hạt. Để giải gần chính xác phương trình này, thông thường các nhà khoa học sẽ sấp xỉ các hàm này bằng tổ hợp của các hàm khác và thực hiện cực tiểu hoá năng lượng. Phương pháp giải này yêu cầu cần có số CPU và bộ nhớ cao để miêu tả cho một hệ thực tế, và nhu cầu sử dụng supercomputer để giải các bài toán có sử dụng phương trình này trở thành một nhu cầu không thể thiếu cho khoa học và công nghiệp. Cho đến nay, phương pháp giải số phiếm hàm mật độ (DFT) và các phương pháp sau DFT được sử dụng rộng rãi để dự đoán các tính chất về mặt lượng tử của vật liệu như hiệu suất của pin Lithium, hấp phụ hydro trong pin hydro, các phản ứng hoá (sinh) học như enzyme tổng hợp...
Tính toán năng lượng liên kết bằng phương pháp mô phỏng định luật 2 Newton. Để tính toán năng lượng liên kết của một phân tử thuốc vào protein, vấn đề cốt lõi là cần biết hết được tổ hợp trạng thái có thể có của phân tử thuốc và protein. Trái ngược với hệ lượng tử khi mà chúng ta có thể đoán được số tổ hợp trạng thái của hệ, trạng thái giữa phân tử thuốc và protein trên thực tế rất lớn, do đó chúng ta phải dùng các phương pháp tính xấp xỉ trạng thái tương đối có thể quan sát được này bằng mô phỏng. Để có được một hệ sinh học như thực tế, thông thường số nguyên tử sẽ vào khoảng vài trăm ngàn cho đến vài triệu hạt. Thời gian mỗi bước tính toán là 1 femto giây mô phỏng, do đó để đạt được thời gian thực tế của các hiện tượng sinh học (vào khoảng vài giây đến vài ngày) thì cần có tốc độ tính toán hoặc phương pháp sấp xỉ nhanh hơn mức với mức thông thường của một máy tính cá nhân. Cho đến hiện nay, trạng thái của một tế bào đã được mô phỏng thành công bởi một vài nhóm trên thế giới.
Tính toán dòng chảy đối lưu lỏng khí bằng phương trình Navier-Stokes. Phương trình này được nhận định là không thể giải được bằng các phương pháp tuyến tính thông thường, tuy nhiên, phương trình này miêu tả mối quan hệ giữa dòng chảy (lỏng khí) với các điều kiện môi trường như ma sát, áp suất, độ nén... rất quan trọng trong dự báo thời tiết, khí động học bay... Do đó, để giải phương trình này, các nhà khoa dụng dùng phương pháp lưới bậc thang để giải như phương pháp Gauss-Seidel hoặc phương pháp Successive Over-Relaxation (SOR)... Phương pháp này đòi hỏi tính toán lớn đối với dữ liệu thời tiết hoặc dòng chảy biển...
...