18,949 research outputs found
Extending a serial 3D two-phase CFD code to parallel execution over MPI by using the PETSc library for domain decomposition
To leverage the last two decades' transition in High-Performance Computing
(HPC) towards clusters of compute nodes bound together with fast interconnects,
a modern scalable CFD code must be able to efficiently distribute work amongst
several nodes using the Message Passing Interface (MPI). MPI can enable very
large simulations running on very large clusters, but it is necessary that the
bulk of the CFD code be written with MPI in mind, an obstacle to parallelizing
an existing serial code.
In this work we present the results of extending an existing two-phase 3D
Navier-Stokes solver, which was completely serial, to a parallel execution
model using MPI. The 3D Navier-Stokes equations for two immiscible
incompressible fluids are solved by the continuum surface force method, while
the location of the interface is determined by the level-set method.
We employ the Portable Extensible Toolkit for Scientific Computing (PETSc)
for domain decomposition (DD) in a framework where only a fraction of the code
needs to be altered. We study the strong and weak scaling of the resulting
code. Cases are studied that are relevant to the fundamental understanding of
oil/water separation in electrocoalescers.Comment: 8 pages, 6 figures, final version for to the CFD 2014 conferenc
Using the High Productivity Language Chapel to Target GPGPU Architectures
It has been widely shown that GPGPU architectures offer large performance gains compared to their traditional CPU counterparts for many applications. The downside to these architectures is that the current programming models present numerous challenges to the programmer: lower-level languages, explicit data movement, loss of portability, and challenges in performance optimization. In this paper, we present novel methods and compiler transformations that increase productivity by enabling users to easily program GPGPU architectures using the high productivity programming language Chapel. Rather than resorting to different parallel libraries or annotations for a given parallel platform, we leverage a language that has been designed from first principles to address the challenge of programming for parallelism and locality. This also has the advantage of being portable across distinct classes of parallel architectures, including desktop multicores, distributed memory clusters, large-scale shared memory, and now CPU-GPU hybrids. We present experimental results from the Parboil benchmark suite which demonstrate that codes written in Chapel achieve performance comparable to the original versions implemented in CUDA.NSF CCF 0702260Cray Inc. Cray-SRA-2010-016962010-2011 Nvidia Research Fellowshipunpublishednot peer reviewe
Recommended from our members
Computational Strategies for Scalable Genomics Analysis.
The revolution in next-generation DNA sequencing technologies is leading to explosive data growth in genomics, posing a significant challenge to the computing infrastructure and software algorithms for genomics analysis. Various big data technologies have been explored to scale up/out current bioinformatics solutions to mine the big genomics data. In this review, we survey some of these exciting developments in the applications of parallel distributed computing and special hardware to genomics. We comment on the pros and cons of each strategy in the context of ease of development, robustness, scalability, and efficiency. Although this review is written for an audience from the genomics and bioinformatics fields, it may also be informative for the audience of computer science with interests in genomics applications
- …