@conference {13940,
	title = {Scalable fast multipole methods on distributed heterogeneous architectures},
	booktitle = {High Performance Computing, Networking, Storage and Analysis (SC), 2011 International Conference for},
	year = {2011},
	month = {2011/11//},
	pages = {1 - 12},
	abstract = {We fundamentally reconsider implementation of the Fast Multipole Method (FMM) on a computing node with a heterogeneous CPU-GPU architecture with multicore CPU(s) and one or more GPU accelerators, as well as on an interconnected cluster of such nodes. The FMM is a divide- and-conquer algorithm that performs a fast N-body sum using a spatial decomposition and is often used in a time- stepping or iterative loop. Using the observation that the local summation and the analysis-based translation parts of the FMM are independent, we map these respectively to the GPUs and CPUs. Careful analysis of the FMM is performed to distribute work optimally between the multicore CPUs and the GPU accelerators. We first develop a single node version where the CPU part is parallelized using OpenMP and the GPU version via CUDA. New parallel algorithms for creating FMM data structures are presented together with load balancing strategies for the single node and distributed multiple-node versions. Our implementation can perform the N-body sum for 128M particles on 16 nodes in 4.23 seconds, a performance not achieved by others in the literature on such clusters.},
	keywords = {accelerators;OpenMP;analysis, algorithm;iterative, and, architecture;CUDA;FMM, architectures;, architectures;divide-and-conquer, based, conquer, CPU-GPU, CPU;scalable, data, fast, heterogeneous, loop;data, loop;multicore, methods;graphics, methods;multiprocessing, methods;time, multipole, parts;distributed, PROCESSING, stepping, structures;divide, structures;GPU, systems;parallel, translation, units;iterative},
	author = {Hu,Qi and Gumerov, Nail A. and Duraiswami, Ramani}
}
@article {12158,
	title = {The ASC-Alliance Projects: A Case Study of Large-Scale Parallel Scientific Code Development},
	journal = {Computer},
	volume = {41},
	year = {2008},
	month = {2008/03//},
	pages = {50 - 58},
	abstract = {Computational scientists face many challenges when developing software that runs on large-scale parallel machines. However, software-engineering researchers haven{\textquoteright}t studied their software development processes in much detail. To better understand the nature of software development in this context, the authors examined five large-scale computational science software projects operated at the five ASC-Alliance centers.},
	keywords = {ASC-Alliance, code, development;large-scale, development;parallel, engineering;, machines;software, Parallel, projects;computational, scale, Science, scientific, scientists;large, software, systems;parallel},
	isbn = {0018-9162},
	doi = {10.1109/MC.2008.101},
	author = {Hochstein, L. and Basili, Victor R.}
}
@conference {15016,
	title = {Practical parallel algorithms for dynamic data redistribution, median finding, and selection},
	booktitle = {Parallel Processing Symposium, 1996., Proceedings of IPPS {\textquoteright}96, The 10th International},
	year = {1996},
	month = {1996/04//},
	pages = {292 - 301},
	abstract = {A common statistical problem is that of finding the median element in a set of data. This paper presents a fast and portable parallel algorithm for finding the median given a set of elements distributed across a parallel machine. In fact, our algorithm solves the general selection problem that requires the determination of the element of rank i, for an arbitrarily given integer i. Practical algorithms needed by our selection algorithm for the dynamic redistribution of data are also discussed. Our general framework is a distributed memory programming model enhanced by a set of communication primitives. We use efficient techniques for distributing, coalescing, and load balancing data as well as efficient combinations of task and data parallelism. The algorithms have been coded in SPLIT-C and run on a variety of platforms, including the Thinking Machines CM-5, IBM SP-1 and SP-2, Gray Research T3D, Meiko Scientific CS-2, Intel Paragon, and workstation clusters. Our experimental results illustrate the scalability and efficiency of our algorithms across different platforms and improve upon all the related experimental results known to the authors},
	keywords = {algorithms;performance, algorithms;scalability;statistical, allocation;, balancing, clusters;distributed, CM-5;communication, CS-2;SPLIT-C;Thinking, data, data;median, evaluation;resource, finding;parallel, Gray, Machines, memory, model;dynamic, Paragon;Meiko, primitives;distributed, problem;workstation, Programming, redistribution;load, research, scientific, SP-1;Intel, systems;parallel, T3D;IBM},
	doi = {10.1109/IPPS.1996.508072},
	author = {Bader, D.A. and JaJa, Joseph F.}
}
