Navigation

Department of Computer Science

College Navigation

College Navigation

Content Header

Software

These pages document the software installed in computer scinece software repository at the university of Houston. The repository contains a number of software libraries which can be used in many different applications on a variety of computer platforms existing in the department. There are several important reasons in taking advantage of these libraries when writing an application code. These reasons include:

  • Availability
    There are several extensive serial and parallel scientific software libraries such as BLAS, LAPACK, and PETSci that are installed on variety of computing platforms. In addition, there are several smaller specialized libraries available that contain routines for specific problems such as Fast Fourier Transforms and Random Number Generators. Therefore, whatever platform you are running your code on there is probably a library installed or one can be installed that contains the routine you need.
  • Maturity
    Many of these software libraries have been in use and under development for several decades now. Over this time, many errors in the routines have been fixed and more powerful, new, and specialized routines have been added. Thus, not only are the number of routines available growing but the existing ones keep getting better.
  • Scalability and Performance
    Today's numerical libraries are extremely well written making them efficient on two levels: good single processor design (especially cache use) and effective use of multiple processors. Idle processors and interprocessor communication is kept to a minimum, work is distributed as evenly as possible among the processors (load balance), and communication is often occurring simultaneously with calculations (latency hiding). If you were to write your own routine, it probably would not perform as well.
  • Extensive Coverage
    At one time, parallel numerical library routines were limited to only linear algebra calculations. Now, you can find routines that perform quite a number of diverse mathematical tasks. Chances are if there is a numerical task that you need in your program, there is a library routine available to do it.
  • Standardized API
    Many of the libraries that have been around long enough have well accepted or standardized application programming interface (API) adopted by many software developers includeing the highly optimized libraries developed by the hardware vendors. Adherence to these standards will, in many cases, ensure portable performance of your code.

Software by Category

Linear Algebra

Numerical linear algebra (NLA), and in particular the solution of systems of linear equations, linear least squares problems, and eigenvalue problems, is essential and often the most computationally intensive part in many scientific computations. A hierarchically structured programming approach in which the higher-level operations are constructed using sets of low-level kernels, has been the method of choice for most of the available numerical linear algebra packages. The repetitive structure of most of the NLA procedures has been the initial motivation for this approach and proven functionality over the years has provided additional stimulus for development of hierarchically organized high-performance linear algebra routines.

The following is a list of installed linear algebra libraries:

  • BLAS
  • Parallel Basic Linear Algebra Subprograms (PBLAS)
  • LAPACK
  • ScaLAPACK
  • ATLAS
  • AZTEC
  • MATLAB

Communication Libraries

Message-passing programming is essential to distributed memory parallel systems. Communication libraries provide pre-built functionalities of inter-process communication (IPC) within a node or across the network. Most non-propriatary communication libraries are built on top of UNIX RPC (remote procedure call) that access low level TCP and UDP layers of services.

Fast Fourier Transforms

A fast Fourier transform (FFT) is an efficient algorithm to compute the discrete Fourier transform (DFT) and its inverse. There are many distinct FFT algorithms involving a wide range of mathematics, from simple complex-number arithmetic to group theory and number theory

Numerical Solution of PDEs

In general, partial differential equations are much more difficult to solve analytically than are ordinary differential equations. They may sometimes be solved using a Bäcklund transformation, characteristics, Green's function, integral transform, Lax pair, separation of variables, or--when all else fails (which it frequently does)--numerical methods such as finite differences or finite elements. One of the best tools on the market for Parallel Solutions of Partial Differential Equations (PDE) is the Portable Extensible Toolkit for Scientific computation, or PETSc. The scientific calculations in this library correspond to those which can be expressed in terms of PDE's representing laws of physics. The PETSc library was developed by the Mathematical and Computational Science Division at Argonne National Laboratories.

Bioinformatics

IMSL Numerical Libraries

The IMSL Numerical Libraries have been the cornerstone of high-performance and deep computing as well as predictive analytics applications in science, technical and business environments for well over three decades. These embeddable mathematical and statistical algorithms, written in C, C#, Java, and Fortran, are used in a broad range of applications -- from programs that help airplanes fly to allowing people to predict the weather, to those that enable innovative ways to study the human genome as well as applications that predict stock market behavior and provide risk management and portfolio optimization. The IMSL Libraries are regarded as the most sophisticated, flexible, scalable and highly accessible technology available for numerical analysis in the most important mainstream programming environments in use today. For More information, please Visit IMSL Libraries Website

PV-Wave

PV-WAVE is an array oriented fourth-generation programming language used to build and deploy VDA applications.

  • Manipulate and visualize simple to complex datasets
  • Detect and display patterns, trends, anomalies and other vital information
  • Deliver powerful image and signal processing, data import and export, 3-D surface, plot, histogram, contour, animation, color editor and a database table display
  • Incorporate sophisticated analysis routines based on the industry-standard IMSL Numerical Libraries for reliable and precise numerical analysis

For more information about the PV - Family of products please visit PV-Waves's Website