Legacy scientific codes are often repurposed to fit adaptive needs, but making such code adaptive without changing the original source programs can be challenging. Adaptive Code Collage (ACC) meets this challenge usin...
详细信息
Legacy scientific codes are often repurposed to fit adaptive needs, but making such code adaptive without changing the original source programs can be challenging. Adaptive Code Collage (ACC) meets this challenge using function-call interception in a language-neutral way at link time, transparently "catching" and redirecting function calls.
Use of the Python language in scientific computing has always been characterized by the coexistence of interpreted Python code and compiled native code, written in languages like C or Fortran. This column takes a fres...
详细信息
Use of the Python language in scientific computing has always been characterized by the coexistence of interpreted Python code and compiled native code, written in languages like C or Fortran. This column takes a fresh look at the problem and introduces Pythran, a new optimization tool designed to efficiently handle unmodified Python code.
Binding processes are difficult to sample with molecular dynamics (MD) simulations. In particular, the state space exploration is often incomplete. Evaluating the molecular interaction energy on a grid circumvents thi...
详细信息
Binding processes are difficult to sample with molecular dynamics (MD) simulations. In particular, the state space exploration is often incomplete. Evaluating the molecular interaction energy on a grid circumvents this problem but is heavily limited by state space dimensionality. Here, we make the first steps towards a low-dimensional grid-based model of molecular binding. We discretize the state space of relative positions and orientations of the two molecules under the rigid body assumption. The corresponding program is published as the Python package molgri. For the rotational component of the grids, we test algorithms based on Euler angles, polyhedra and quaternions, of which the polyhedra-based are the most uniform. The program outputs a sequence of molecular structures that can be easily processed by standard MD programs to calculate grid point energies. We demonstrate the grid-based approach on two molecular systems: a water dimer and a coiled-coil protein interacting with a chloride anion. For the second system we relax the rigid-body assumption and improve the accuracy of the grid point energies by an energy minimization. In both cases, oriented bonding patterns and energies confirm expectations from chemical intuition and MD simulations. We also demonstrate how analysis of energy contributions on a grid can be performed and demonstrate that electrostatically driven association is sufficiently resolved by point-energy calculations. Overall, grid-based models of molecular binding are potentially a powerful complement to molecular sampling approaches, and we see the potential to expand the method to quantum chemistry and flexible docking applications.
Although novel architectures such as cell processors, graphics processors, and FPGAs are growing in popularity, conventional microprocessor designs pack a punch in a small footprint and are widely supported by commodi...
详细信息
Although novel architectures such as cell processors, graphics processors, and FPGAs are growing in popularity, conventional microprocessor designs pack a punch in a small footprint and are widely supported by commodity operating system and development tools.
Although there are a lot of robust and effective scientific libraries in Java, the utilization of these libraries in pure Java is difficult and cumbersome, especially for the average scientist that does not expertise ...
详细信息
Although there are a lot of robust and effective scientific libraries in Java, the utilization of these libraries in pure Java is difficult and cumbersome, especially for the average scientist that does not expertise in software development. We illustrate that ScalaLab presents an easier and productive MATLAB like front end. Also, the main strengths and weaknesses of the core Java libraries of ScalaLab are elaborated. Since performance is of paramount importance for scientific computation, the article discusses extensively performance aspects of the ScalaLab environment. Also, Java bytecode performance is compared to native code.
Matplotlib is a 2D graphics package used for Python for application development, interactive scripting, and publication-quality image generation across user interfaces and operating systems.
Matplotlib is a 2D graphics package used for Python for application development, interactive scripting, and publication-quality image generation across user interfaces and operating systems.
Although LAPACK is a powerful library its utilization is difficult. JLAPACK, a Java translation obtained automatically from the Fortran LAPACK sources, retains exactly the same difficult to use interface of LAPACK rou...
详细信息
Although LAPACK is a powerful library its utilization is difficult. JLAPACK, a Java translation obtained automatically from the Fortran LAPACK sources, retains exactly the same difficult to use interface of LAPACK routines. The MTJ library implements an object oriented Java interface to JLAPACK that hides many complicated details. ScalaLab exploits the flexibility of the Scala language to present an even more friendly and convenient interface to the powerful but complicated JLAPACK library. The article describes the interfacing of the low-level JLAPACK routines within the ScalaLab environment. This is performed rather easily by exploiting well suited features of the Scala language. Also, the paper demonstrates the convenience of using JLAPACK routines for linear algebra operations from within ScalaLab.
Intel Cilk Plus extends C and C++ to enable writing composable deterministic parallel software that can exploit both the thread and vector parallelism commonly available in modern hardware.
Intel Cilk Plus extends C and C++ to enable writing composable deterministic parallel software that can exploit both the thread and vector parallelism commonly available in modern hardware.
In the Python world, NumPy arrays are the standard representation for numerical data and enable efficient implementation of numerical computations in a high-level language. As this effort shows, NumPy performance can ...
详细信息
In the Python world, NumPy arrays are the standard representation for numerical data and enable efficient implementation of numerical computations in a high-level language. As this effort shows, NumPy performance can be improved through three techniques: vectorizing calculations, avoiding copying data in memory, and minimizing operation counts.
暂无评论