167 research outputs found

    X10 for high-performance scientific computing

    No full text
    High performance computing is a key technology that enables large-scale physical simulation in modern science. While great advances have been made in methods and algorithms for scientific computing, the most commonly used programming models encourage a fragmented view of computation that maps poorly to the underlying computer architecture. Scientific applications typically manifest physical locality, which means that interactions between entities or events that are nearby in space or time are stronger than more distant interactions. Linear-scaling methods exploit physical locality by approximating distant interactions, to reduce computational complexity so that cost is proportional to system size. In these methods, the computation required for each portion of the system is different depending on that portion’s contribution to the overall result. To support productive development, application programmers need programming models that cleanly map aspects of the physical system being simulated to the underlying computer architecture while also supporting the irregular workloads that arise from the fragmentation of a physical system. X10 is a new programming language for high-performance computing that uses the asynchronous partitioned global address space (APGAS) model, which combines explicit representation of locality with asynchronous task parallelism. This thesis argues that the X10 language is well suited to expressing the algorithmic properties of locality and irregular parallelism that are common to many methods for physical simulation. The work reported in this thesis was part of a co-design effort involving researchers at IBM and ANU in which two significant computational chemistry codes were developed in X10, with an aim to improve the expressiveness and performance of the language. The first is a Hartree–Fock electronic structure code, implemented using the novel Resolution of the Coulomb Operator approach. The second evaluates electrostatic interactions between point charges, using either the smooth particle mesh Ewald method or the fast multipole method, with the latter used to simulate ion interactions in a Fourier Transform Ion Cyclotron Resonance mass spectrometer. We compare the performance of both X10 applications to state-of-the-art software packages written in other languages. This thesis presents improvements to the X10 language and runtime libraries for managing and visualizing the data locality of parallel tasks, communication using active messages, and efficient implementation of distributed arrays. We evaluate these improvements in the context of computational chemistry application examples. This work demonstrates that X10 can achieve performance comparable to established programming languages when running on a single core. More importantly, X10 programs can achieve high parallel efficiency on a multithreaded architecture, given a divide-and-conquer pattern parallel tasks and appropriate use of worker-local data. For distributed memory architectures, X10 supports the use of active messages to construct local, asynchronous communication patterns which outperform global, synchronous patterns. Although point-to-point active messages may be implemented efficiently, productive application development also requires collective communications; more work is required to integrate both forms of communication in the X10 language. The exploitation of locality is the key insight in both linear-scaling methods and the APGAS programming model; their combination represents an attractive opportunity for future co-design efforts

    Efficient coarse-grained brownian dynamics simulations for dna and lipid bilayer membrane with hydrodynamic interactions

    Get PDF
    The coarse-grained molecular dynamics (CGMD) or Brownian dynamics (BD) simulation is a particle-based approach that has been applied to a wide range of biological problems that involve interactions with surrounding fluid molecules or the so-called hydrodynamic interactions (HIs). From simple biological systems such as a single DNA macromolecule to large and complicated systems, for instances, vesicles and red blood cells (RBCs), the numerical results have shown outstanding agreements with experiments and continuum modeling by adopting Stokesian dynamics and explicit solvent model. Finally, when combined with fast algorithms such as the fast multipole method (FMM) which has nearly optimal complexity in the total number of CG particles, the resulting method is parallelizable, scalable to large systems, and stable for large time step size, thus making the long-time large-scale BD simulation within practical reach. This will be useful for the study of a large collection of molecules or cells immersed in the fluids. This dissertation can be divided into three main subjects: (1) An efficient algorithm is proposed to simulate the motion of a single DNA molecule in linear flows. The algorithm utilizes the integrating factor method to cope with the effect of the linear flow of the surrounding fluid and applies the Metropolis method (MM) in [N. Bou-Rabee, A. Donev, and E. Vanden-Eijnden, Multiscale Model. Simul. 12, 781 (2014)] to achieve more efficient BD simulation. More importantly, this proposed method permits much larger time step size than methods in previous literature while still maintaining the stability of the BD simulation, which is advantageous for long-time BD simulation. The numerical results on λ-DNA agree very well with both experimental data and previous simulation results. (2) Lipid bilayer membranes have been extensively studied by CGMD simulations. Numerical efficiencies have been reported in the cases of aggressive coarse-graining, where several lipids are coarse-grained into a particle of size 4 ~ 6 nm so that there is only one particle in the thickness direction. In [H. Yuan et al., Phys. Rev. E, 82, 011905 (2010)], Yuan et al. proposed a pair-potential between these one-particle-thick coarse-grained lipid particles to capture the mechanical properties of a lipid bilayer membrane, such as gel-fluid-gas phase transitions of lipids, diffusion, and bending rigidity. This dissertation provides a detailed implementation of this interaction potential in LAMMPS to simulate large-scale lipid systems such as a giant unilamellar vesicle (GUV) and RBCs. Moreover, this work also considers the effect of cytoskeleton on the lipid membrane dynamics as a model for RBC dynamics, and incorporates coarse-grained water molecules to account for hydrodynamic interactions. (3) An action field method for lipid bilayer membrane model is introduced where several lipid molecules are represented by a Janus particle with corresponding orientation pointing from lipid head to lipid tail. With this level of coarse-grained modeling, as the preliminary setup, the lipid tails occupy a half sphere and the lipid heads take the other half. An action field is induced from lipid-lipid interactions and exists everywhere in the computational domain. Therefore, a hydrophobic attraction energy can be described from utilizing the variational approach and its minimizer with respect to the action field is the so-called screened Laplace equation. For the numerical method, the well-known integral equation method (IEM) has great capability to solve exterior screened Laplace equation with Dirichlet boundary conditions. Finally, one then can obtain the lipid dynamics to validate the self-assembly property and other physical properties of lipid bilayer membrane. This approach combines continuum modeling with CGMD and gives a different perspective to the membrane energy model from the traditional Helfrich membrane free energy

    User Manual for MOLSCAT, BOUND and FIELD, Version 2020.0: programs for quantum scattering properties and bound states of interacting pairs of atoms and molecules

    Full text link
    MOLSCAT is a general-purpose package for performing non-reactive quantum scattering calculations for atomic and molecular collisions using coupled-channel methods. Simple atom-molecule and molecule-molecule collision types are coded internally and additional ones may be handled with plug-in routines. Plug-in routines may include external magnetic, electric or photon fields (and combinations of them). Simple interaction potentials are coded internally and more complicated ones may be handled with plug-in routines. BOUND is a general-purpose package for performing calculations of bound-state energies in weakly bound atomic and molecular systems using coupled-channel methods. It solves the same sets of coupled equations as \MOLSCAT, and can use the same plug-in routines if desired, but with different boundary conditions. FIELD is a development of BOUND that locates external fields at which a bound state exists with a specified energy. One important use is to locate the positions of magnetically tunable Feshbach resonance positions in ultracold collisions. Versions of these programs before version 2019.0 were released separately. However, there is a significant degree of overlap between their internal structures and usage specifications. This manual therefore describes all three, with careful identification of parts that are specific to one or two of the programs.Comment: 206 pages. Program source code available from https://github.com/molscat/molscat This is the full program documentation for the programs described in the journal papers Comp. Phys. Commun. 241, 1-8 (2019) (arXiv:1811.09111) and Comp. Phys. Commun. 241, 9-16 (2019) (arXiv:1811.09584). There is significant text overlap between some parts of the documentation and the (much shorter) journal paper
    • …
    corecore