N-body là bài toán tiêu biểu cho tính toán hiệu năng cao, được ứng dụng rộng rãi trong các mô phỏng vật lý, hóa học, thiên văn học với khối lượng tính toán rất lớn.
Mô phỏng n-body là mô phỏng số lượng rất lớn các hạt dưới ảnh hưởng của các lực vật lý, thường là lực hấp dẫn. Mô phỏng này thường được sử dụng trong vũ trụ học
để nghiên cứu các quá trình dữ liệu cấu trúc phi tuyến tính như cơ cấu hình thành các dải thiên hà và các ngôi sao từ hố đen trong thiên văn học. Mô phỏng n-body trực tiếp
được dùng trong nghiên cứu vụ nổ của các cụm sao.
Trong nhiều trường hợp, kích thước của phô phỏng thiên văn học N-body bị giới hạn bởi các tài nguyên tính toán hiện có. Mô phỏng cho hệ thống N-body hấp dẫn thuần khiết là một ví dụ điển hình. Vì lực hấp dẫn là sự tương tác ở khoảng cách dài (long-range), độ phức tạp tính toán cho sự tương tác giữa tất cả các phần tử là O(N2) cho từng bước tính toán của mô hình đơn giản nhất, với N là số lượng phần tử trong hệ
thống. Chúng ta có thể giảm độ phức tạp tính toán từ O(N2) còn O(NlogN) bằng cách sử dụng một vài thuật toán xấp xỉ, như thuật toán cây Barnes-Hut [~11], nhưng hệ số tỉ
lệ (scaling coefficient) thực sự lớn. Do vậy, tính toán sự tương tác giữa các phần tử
thường là phần "đắt" nhất trong toàn bộ việc tính toán, và do đó giới hạn số lượng các phần tử chúng ta có thể xử lý. Smoothed Particle Hydrodynamics (SPH) [[~3][~22] trong đó các phần tử biểu diễn phân tử chất lỏng (khí) là một ví dụ khác. Trong các tính toán SPH, phương trình tính toán thủy động học được biểu diễn bởi sự tương tác giữa các phần tử ở khoảng cách ngắn (short-range). Độ phức tạp tính toán của SPH tương đối cao bởi số lượng phần tử trung bình tương tác với 1 phần tử thực sự lớn, thường dao động ở 50, và tính toán tương tác giữa từng cặp 2 phần tử thì phức tạp hơn một chút so với tương tác hấp dẫn.
Trong mô phỏng thiên văn học N-body, tương tác quan trọng nhất là lực hấp dẫn. Sử dụng tài máy tính, chúng ta tính được lực hấp dẫn của phần tử thứ i từ j phần tử
theo công thức sau:
Thiên văn học không phải là ứng dụng duy nhất của mô phỏng N-body. Mô phỏng chuyển động phân tử (MD - Molecular dynamics) và phương pháp khoanh vùng thành phần (BEM - Boundary element method) là những ví dụ của phương pháp số
học trong đó từng thành phần trong hệ thống nằm trong những tương tác cơ bản với các thành phần còn lại của hệ thống. Trong cả 2 trường hợp, cách tiếp cận giống với thuật toán cây Barnes-Hut hoặc FMM [~21] giúp giảm được độ chi phí tính toán, tuy nhiên tính toán sự tương tác vẫn ảnh hưởng lớn tới tổng chi phí tính toán.
Một cách tiếp cận tiêu biểu làm tăng tốc mô phỏng N-body là xây dựng 1 máy tính chuyên biệt (special-purpose) cho việc tính toán tương tác. Hai đặc trưng của tính toán tương tác làm chúng rất phù hợp với cách tiếp cận này, đó là:
Thứ nhất, tính toán tương tác trên từng cặp đôi là tương đối đơn giản. Trong trường hợp tương tác hấp dẫn, tổng số phép toán dấu phảy động (đếm toàn bộ phép toán bao gồm cả phépcăn bậc hai và phép chia) cũng chỉ dao động quanh 20. Do vậy không khó hiểu khi thiết kế 1 bộ xử lý có đường ống dẫn đầy đủ, gắn cứng và được kiểm soát bằng vi mạch điện tử phục vụ việc tính toán tương tác hấp dẫn. Với những
ứng dụng khác như SPH, hay chuyển động phân tử học thì tính toán tương tác phức tạp hơn, tuy nhiên cách tiếp cận về phần cứng vẫn khả thi.
Đặc trưng thứ hai, sự tương tác theo cách đơn giản nhất của nó tác động tất cả lên tất cả (all-to-all). Nói cách khác, từng phần tử trong hệ thống tác động lên tất cả các phần tử còn lại. Do đó có rất nhiều cách thức song song áp dụng được. Nói cụ thể, có thể thiết kế một phần cứng để tính toán lực tác động tự 1 phần tử lên nhiều phần tử
một cách song song. Theo cách này chúng ta có thể giảm yêu cầu về băng thông (bandwidth) bộ nhớ. Tất nhiên là nếu sự tương tác thuộc vào loại khoảng cách ngắn (short-range), thì nó có thể thực hiện một số cách thông minh để làm giảm chi phí tính toán từ O(N2) thành O(N), và việc làm giảm băng thông bộ nhớ không hiệu quả bằng trường hợp tính toán O(N2)