GPU Computing

For computationally challenging problems in business and scientific research, GPGPU (General-purpose computing on graphics processing units) represent a technological breakthrough that can deliver significant benefits in performance. Highly parallel, many-core architectures proposed by vendors of low-cost graphics card such as AMD or NVIDIA provide means to parallelize scientific code to an extent that could enable faster financial trades, faster design of more aerodynamic cars or development of new drugs at lower cost.

Since Moore's Lawe is nearly at the end, there is an inevitable shift towards many-core processors and massive parallelizm. Such an approach can be considered as one of the biggest advances in computing in recent history. All processors from all the major vendors will become many-core designs over the next few years. It is still unlcear which direction will be selected by the business and user community, e.g. many identical mainstream CPU cores or a heterogeneous mix of different kinds of core. Still, it is unavoidable that there will be lots of cores in each processor. A natural consequence of this change is that most software and algorithms will need redesigning.

Vratis is one the companies that are active in GPU computing since the early adoption of high-level languages such as CUDA or OpenCL. We have been working in the field of acceleration of scientific code for several years now and offer two products that accelerate sparse linear algebra and computational fluid dynamics:

SpeedIT is a library of iterative solvers and preconditioners that accelerate solving large system of linear equations. Official Page

Arael is a 3D FVM-based transient and steady-state solver for incompressible, laminar flows. Read more

Our products are being develop with a group of post-docs from Polish universities and in collaboration with research institutions and companies such as NVIDIA, Engys or IconCFD. The products are well received by the market and are competitive in terms of performance and quality.

NVIDIA Tesla Video Success Stories

Art, Science & GPU Tokyo Institute of Technology Builds Tesla GPU Cluster University of Illinois at Urbana-Champaign Using GPUs for VMD Temple University GPUs and Surfactant Modeling Sandia National Lab GPUs for LAMMPS NVIDIA Tesla 20 Series Code Named "Fermi" University of Maryland GPUs Deliver 25x Speed Up Oxford University Observes 50X Faster Finance Calculations with GPUs University of Illinois UC Parallel Programing with CUDA FFA on Revolutionizing the Search for New Oil and Gas Fields Ansys FEA and CUDA Mathematica and CUDA

Computational Fluid Dynamics

Computational fluid dynamics, usually abbreviated as CFD, is a branch of fluid mechanics that uses numerical methods and algorithms to solve and analyze problems that involve fluid flows. Computers are used to perform the calculations required to simulate the interaction of liquids and gases with surfaces defined by boundary conditions. With high-speed supercomputers, better solutions can be achieved. Ongoing research yields software that improves the accuracy and speed of complex simulation scenarios such as transonic or turbulent flows. Initial validation of such software is performed using a wind tunnel with the final validation coming in flight tests.

Live Cell Imaging

Live cell imaging takes advantage of microscopy or high content screening systems to study living cells. The scientists from various research fields such as cell and cancer biology analyze generated images or time lapse movies to understand biological functions of cells or cell structures. A massive amount of generated data require automated or semi-automated analysis of data in a user-friendly manner.

Vratis has been working on such a system and has a solution that addresses requirements of biologists. See technical description of the product Picolin for more details.

Sparse Linear Algebra

In Numerical Analysis, the solution to ordinary and/or partial differential equation often leads to systems of linear equations of type Ax=b. Such an equation is usually obtained during the discretization process. The solution of such system is crucial in various scientific problems that rely on discretization schemes such as Finite Element Method, Finite Volume Method or Finite Difference Method. They are widely used in domains such as Computional Fluid Dynamics, computational physics or chemistry. Typical matrices have thousands or even millions of rows and columns and are very sparse, with an average number of non-zero elements per row rarely exceeding 100. In some cases the pattern of nonzero elements is quite regular (e.g. for problems resulting from discretization of partial differential equations on regular grids), but the most interesting—and difficult—matrices are those whose distribution of nonzero elements appears to be random.

Since direct methods for solving such systems of equations require a reasonable amount of memory, one employs often iterative solvers that require less memory and still provide a reliable results. The performance of iterative solvers such as Conjugate Gradient or BiConjugate Gradient strongly depend on the performance of Sparse Matrix-Vector Multiplication (SpMV) operation that is invoked in each solver iteration many times.

Therefore, engineers at Vratis took a lot of effort to optimize this operation for a given GPU architecture. As a result, we ended up with one of the fastest SpMV algorithms worldwide. Efficient SpMV allowed us for building iterative solvers with the similar peak performance.

See SpeedIT for more details.