diff --git a/theory/paper_pasc/pasc_paper.tex b/theory/paper_pasc/pasc_paper.tex index d3d35a32d7bad9c0e44a3ba9371cff05508ddae6..b8ca22238cce1075263adcef852ea3acb4d4e17e 100644 --- a/theory/paper_pasc/pasc_paper.tex +++ b/theory/paper_pasc/pasc_paper.tex @@ -94,7 +94,7 @@ strong scaling on more than 100\,000 cores.} \swift was designed from the bottom up to provide excellent {\em strong scaling} on both commodity clusters (Tier-2 systems) and Top100-supercomputers (Tier-0 systems), without relying on architecture-specific features - or specialized accellerator hardware. + or specialized accelerator hardware. This performance is due to three main computational approaches: \begin{itemize} @@ -107,7 +107,7 @@ strong scaling on more than 100\,000 cores.} the task graph to decompose the simulation domain such that the {\em work}, as opposed to just the {\em data}, as is the case with most partitioning schemes, is equally distributed - accross all nodes. + across all nodes. \item \textbf{Fully dynamic and asynchronous communication}, in which communication is modelled as just another task in @@ -289,7 +289,7 @@ analysis). One of the main concerns when developing \swift was to break with the branch-and-bound type parallelism inherent to parallel -codes using OpenMP and MPI, and the constant synchronization +codes using OpenMP and MPI, and the constant synchronisation between computational steps it results in. If {\em synchronisation} is the main problem, then {\em asynchronicity} @@ -302,7 +302,7 @@ can be used to partition the work equitably over a set of distributed-memory nodes using general-purpose graph partitioning algorithms. Finally, the necessary communication between nodes can itself be -modelled in a task-based way, interleaving communication seamlesly +modelled in a task-based way, interleaving communication seamlessly with the rest of the computation. @@ -372,7 +372,7 @@ may be updated. The task hierarchy is shown in Figure~\ref{tasks}, where the particles in each cell are first sorted (round tasks) before the particle densities are computed (first layer of square tasks). -Ghost tasks (triangles) are used to ensure that all density coputations +Ghost tasks (triangles) are used to ensure that all density computations on a cell of particles have completed before the force evaluation tasks (second layer of square tasks) can be executed. Once all the force tasks on a cell of particles have completed,